xbt_dynar_push(surf_path, &path);
}
+/* callback to decide if we want to use the model-checking */
+#include "xbt_modinter.h"
+int _surf_do_model_check = 0; /* this variable is used accros the lib */
+
+static void _surf_cfg_cb_model_check(const char *name, int pos) {
+ _surf_do_model_check = 1;
+ /* Tell modules using mallocators that they shouldn't. MC don't like them */
+ xbt_fifo_preinit();
+ xbt_dict_preinit();
+}
#ifdef HAVE_GTNETS
static void _surf_cfg_cb__gtnets_jitter(const char *name, int pos){
/* create the config set, register what should be and parse the command line*/
void surf_config_init(int *argc, char **argv)
{
-
- /* Create the configuration support */
- if (_surf_init_status == 0) { /* Only create stuff if not already inited */
- _surf_init_status = 1;
-
char *description = xbt_malloc(1024), *p = description;
char *default_value;
double double_default_value;
int default_value_int;
int i;
+ /* Create the configuration support */
+ if (_surf_init_status == 0) { /* Only create stuff if not already inited */
+ _surf_init_status = 1;
+
sprintf(description, "The model to use for the CPU. Possible values: ");
p = description;
while (*(++p) != '\0');
"Update the constraint set propagating recursively to others constraints",
xbt_cfgelm_int, &default_value_int, 0, 1, _surf_cfg_cb__surf_maxmin_selective_update, NULL);
+ /* do model-check */
+ default_value_int = 0;
+ xbt_cfg_register(&_surf_cfg_set, "model-check",
+ "Activate the model-checking of the \"simulated\" system (EXPERIMENTAL -- msg only for now)",
+ xbt_cfgelm_int, &default_value_int, 0, 1, _surf_cfg_cb_model_check, NULL);
+
#ifdef HAVE_GTNETS
xbt_cfg_register(&_surf_cfg_set, "gtnets_jitter",
"Double value to oscillate the link latency, uniformly in random interval [-latency*gtnets_jitter,latency*gtnets_jitter)", xbt_cfgelm_double,
{
char *workstation_model_name;
int workstation_id = -1;
-
+ char *network_model_name = NULL;
+ char *cpu_model_name = NULL;
surf_timer_model_init(platform_file);
workstation_model_name =
xbt_cfg_get_string(_surf_cfg_set, "workstation/model");
- char *network_model_name = xbt_cfg_get_string(_surf_cfg_set, "network/model");
- char *cpu_model_name = xbt_cfg_get_string(_surf_cfg_set, "cpu/model");
+ network_model_name = xbt_cfg_get_string(_surf_cfg_set, "network/model");
+ cpu_model_name = xbt_cfg_get_string(_surf_cfg_set, "cpu/model");
- if ((strcmp(network_model_name,"LV08") || strcmp(cpu_model_name,"Cas01"))
+ if ((strcmp(network_model_name,"LV08") || strcmp(network_model_name,"SMPI") || strcmp(cpu_model_name,"Cas01"))
&& !strcmp(workstation_model_name, "CLM03")){
const char *val = "compound";
INFO0("Switching workstation model to compound since you changed the network and/or cpu model(s)");