X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/247d96de592ac1fcd59411032c6528f238764516..b82c39e1bcdca7cad4c88dd56a131d2b4268166a:/src/surf/surf_config.c diff --git a/src/surf/surf_config.c b/src/surf/surf_config.c index 293a32ae62..0b7da099cc 100644 --- a/src/surf/surf_config.c +++ b/src/surf/surf_config.c @@ -20,6 +20,12 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_config, surf, xbt_cfg_t _surf_cfg_set = NULL; +int _surf_init_status = 0; /* 0: beginning of time (config cannot be changed yet); + 1: initialized: cfg_set created (config can now be changed); + 2: configured: command line parsed and config part of platform file was integrated also, platform construction ongoing or done. + (Config cannot be changed anymore!) */ + + /* Parse the command line, looking for options */ static void surf_config_cmd_line(int *argc, char **argv) { @@ -81,16 +87,13 @@ static void surf_config_cmd_line(int *argc, char **argv) argv[j] = NULL; *argc = j; } - if (shall_exit) + if (shall_exit) { + _surf_init_status=1; // get everything cleanly cleaned on exit exit(0); + } } -int _surf_init_status = 0; /* 0: beginning of time (config cannot be changed yet); - 1: initialized: cfg_set created (config can now be changed); - 2: configured: command line parsed and config part of platform file was integrated also, platform construction ongoing or done. - (Config cannot be changed anymore!) */ - /* callback of the workstation/model variable */ static void _surf_cfg_cb__workstation_model(const char *name, int pos) { @@ -254,6 +257,7 @@ static void _surf_cfg_cb_context_factory(const char *name, int pos) { static void _surf_cfg_cb_context_stack_size(const char *name, int pos) { + smx_context_stack_size_was_set = 1; smx_context_stack_size = xbt_cfg_get_int(_surf_cfg_set, name) * 1024; } @@ -490,54 +494,54 @@ void surf_config_init(int *argc, char **argv) #ifdef HAVE_MC /* do model-checking */ - default_value_int = 0; xbt_cfg_register(&_surf_cfg_set, "model-check", "Verify the system through model-checking instead of simulating it (EXPERIMENTAL)", - xbt_cfgelm_int, &default_value_int, 0, 1, + xbt_cfgelm_int, NULL, 0, 1, _surf_cfg_cb_model_check, NULL); + xbt_cfg_setdefault_int(_surf_cfg_set, "model-check", 0); /* do stateful model-checking */ - default_value_int = 0; xbt_cfg_register(&_surf_cfg_set, "model-check/checkpoint", "Specify the amount of steps between checkpoints during stateful model-checking (default: 0 => stateless verification). " "If value=1, one checkpoint is saved for each step => faster verification, but huge memory consumption; higher values are good compromises between speed and memory consumption.", - xbt_cfgelm_int, &default_value_int, 0, 1, + xbt_cfgelm_int, NULL, 0, 1, _mc_cfg_cb_checkpoint, NULL); + xbt_cfg_setdefault_int(_surf_cfg_set, "model-check/checkpoint", 0); /* do liveness model-checking */ - default_value = xbt_strdup(""); xbt_cfg_register(&_surf_cfg_set, "model-check/property", "Specify the name of the file containing the property. It must be the result of the ltl2ba program.", - xbt_cfgelm_string, &default_value, 0, 1, + xbt_cfgelm_string, NULL, 0, 1, _mc_cfg_cb_property, NULL); + xbt_cfg_setdefault_string(_surf_cfg_set, "model-check/property", ""); /* Specify the kind of model-checking reduction */ - default_value = xbt_strdup("unset"); xbt_cfg_register(&_surf_cfg_set, "model-check/reduction", "Specify the kind of exploration reduction (either none or DPOR)", - xbt_cfgelm_string, &default_value, 0, 1, + xbt_cfgelm_string, NULL, 0, 1, _mc_cfg_cb_reduce, NULL); + xbt_cfg_setdefault_string(_surf_cfg_set, "model-check/reduction", "dpor"); /* Enable/disable timeout for wait requests with model-checking */ - default_value_int = 1; xbt_cfg_register(&_surf_cfg_set, "model-check/timeout", "Enable/Disable timeout for wait requests", - xbt_cfgelm_int, &default_value, 0, 1, + xbt_cfgelm_int, NULL, 0, 1, _mc_cfg_cb_timeout, NULL); + xbt_cfg_setdefault_int(_surf_cfg_set, "model-check/timeout", 0); /* Set max depth exploration */ - default_value_int = 1000; xbt_cfg_register(&_surf_cfg_set, "model-check/max_depth", "Specify the max depth of exploration (default : 1000)", - xbt_cfgelm_int, &default_value, 0, 1, + xbt_cfgelm_int, NULL, 0, 1, _mc_cfg_cb_max_depth, NULL); - - /* Set number of visited state stored in stateful mode */ - default_value_int = 0; - xbt_cfg_register(&_surf_cfg_set, "model-check/stateful", - "Specify the number of visited state stored in stateful mode. If value=5, the last 5 visited states are stored", - xbt_cfgelm_int, &default_value, 0, 1, - _mc_cfg_cb_stateful, NULL); + xbt_cfg_setdefault_int(_surf_cfg_set, "model-check/max_depth", 1000); + + /* Set number of visited state stored for state comparison reduction*/ + xbt_cfg_register(&_surf_cfg_set, "model-check/visited", + "Specify the number of visited state stored for state comparison reduction. If value=5, the last 5 visited states are stored", + xbt_cfgelm_int, NULL, 0, 1, + _mc_cfg_cb_visited, NULL); + xbt_cfg_setdefault_int(_surf_cfg_set, "model-check/visited", 0); #endif /* do verbose-exit */