From: Arnaud Giersch Date: Wed, 18 May 2011 08:45:00 +0000 (+0200) Subject: Apply "coordinates" config option in surf_config, and not in xbt/config. X-Git-Tag: v3_6_rc3~20 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/683aac6d72f45118eccef0de232f251fc99be59c Apply "coordinates" config option in surf_config, and not in xbt/config. --- diff --git a/src/surf/surf_config.c b/src/surf/surf_config.c index f7d686ec9a..fbbfc7aebf 100644 --- a/src/surf/surf_config.c +++ b/src/surf/surf_config.c @@ -9,6 +9,7 @@ #include "xbt/config.h" #include "xbt/str.h" #include "surf/surf_private.h" +#include "surf/surf_routing.h" /* COORD_HOST_LEVEL and COORD_ASR_LEVEL */ #include "simix/context.h" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_config, surf, @@ -220,6 +221,23 @@ static void _surf_cfg_cb_contexts_parallel_threshold(const char *name, int pos) SIMIX_context_set_parallel_threshold(xbt_cfg_get_int(_surf_cfg_set, name)); } +static void _surf_cfg_cb__surf_network_coordinates(const char *name, + int pos) +{ + char *val = xbt_cfg_get_string(_surf_cfg_set, name); + if (!strcmp(val, "yes")) { + if (!COORD_HOST_LEVEL) { + COORD_HOST_LEVEL = xbt_lib_add_level(host_lib,xbt_dynar_free_voidp); + COORD_ASR_LEVEL = xbt_lib_add_level(as_router_lib,xbt_dynar_free_voidp); + } + } else if (!strcmp(val, "no")) { + if (COORD_HOST_LEVEL) + XBT_WARN("Cannot disable CMD prop coordinates, once set."); + } else { + XBT_WARN("Setting CMD prop coordinates must be \"yes\" or \"no\""); + } +} + static void _surf_cfg_cb__surf_network_fullduplex(const char *name, int pos) { @@ -397,6 +415,13 @@ void surf_config_init(int *argc, char **argv) xbt_cfgelm_int, &default_value_int, 1, 1, _surf_cfg_cb_contexts_parallel_threshold, NULL); + default_value = xbt_strdup("no"); + xbt_cfg_register(&_surf_cfg_set, "coordinates", + "\"yes\" or \"no\" (FIXME: document)", + xbt_cfgelm_string, &default_value, 1, 1, + _surf_cfg_cb__surf_network_coordinates, NULL); + xbt_cfg_setdefault_string(_surf_cfg_set, "coordinates", default_value); + default_value_int = 0; xbt_cfg_register(&_surf_cfg_set, "fullduplex", "Activate the interferences between uploads and downloads for fluid max-min models (LV08, CM03)", diff --git a/src/xbt/config.c b/src/xbt/config.c index 0e532308ef..4aa81d751d 100644 --- a/src/xbt/config.c +++ b/src/xbt/config.c @@ -18,12 +18,6 @@ #include "xbt/peer.h" #include "xbt/config.h" /* prototypes of this module */ -#include "surf/surf_routing.h" /* COORD_HOST_LEVEL and COORD_ASR_LEVEL */ - -xbt_lib_t host_lib; -int COORD_HOST_LEVEL; //Coordinates level -xbt_lib_t as_router_lib; -int COORD_ASR_LEVEL; //Coordinates level XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_cfg, xbt, "configuration support"); @@ -656,18 +650,6 @@ void xbt_cfg_set_parse(xbt_cfg_t cfg, const char *options) } *(val++) = '\0'; - if (!strcmp(name,"coordinates")){ - if(!strcmp(val,"yes") && !COORD_HOST_LEVEL){ - XBT_INFO("Configuration change: Set '%s' to '%s'", name, val); - COORD_HOST_LEVEL = xbt_lib_add_level(host_lib,xbt_dynar_free_voidp); - COORD_ASR_LEVEL = xbt_lib_add_level(as_router_lib,xbt_dynar_free_voidp); - free(optionlist_cpy); - return; - } - if(strcmp(val,"yes")) - xbt_die("Setting CMD prop coordinates must be \"yes\""); - } - if (strncmp(name, "contexts/", strlen("contexts/"))) XBT_INFO("Configuration change: Set '%s' to '%s'", name, val);