xbt_dict_preinit();
}
+static void _surf_cfg_cb__surf_network_fullduplex(const char *name, int pos)
+{
+ sg_network_fullduplex = xbt_cfg_get_int(_surf_cfg_set, name);
+}
+
#ifdef HAVE_GTNETS
static void _surf_cfg_cb__gtnets_jitter(const char *name, int pos){
sg_gtnets_jitter = xbt_cfg_get_double(_surf_cfg_set, name);
/* 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');
"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);
+ default_value_int = 0;
+ xbt_cfg_register(&_surf_cfg_set, "fullduplex",
+ "Update the constraint set propagating recursively to others constraints",
+ xbt_cfgelm_int, &default_value_int, 0, 1, _surf_cfg_cb__surf_network_fullduplex, 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");
+ /* Check whether we use a net/cpu model differing from the default ones, in which case
+ * we should switch to the "compound" workstation model to correctly dispatch stuff to
+ * the right net/cpu models.
+ */
if ((strcmp(network_model_name,"LV08") || strcmp(cpu_model_name,"Cas01"))
&& !strcmp(workstation_model_name, "CLM03")){
const char *val = "compound";