+static void _surf_cfg_cb_contexts_parallel_mode(const char *name, int pos)
+{
+ const char* mode_name = xbt_cfg_get_string(_surf_cfg_set, name);
+ if (!strcmp(mode_name, "posix")) {
+ SIMIX_context_set_parallel_mode(XBT_PARMAP_POSIX);
+ }
+ else if (!strcmp(mode_name, "futex")) {
+ SIMIX_context_set_parallel_mode(XBT_PARMAP_FUTEX);
+ }
+ else if (!strcmp(mode_name, "busy_wait")) {
+ SIMIX_context_set_parallel_mode(XBT_PARMAP_BUSY_WAIT);
+ }
+ else {
+ XBT_WARN("Command line setting of the parallel synchronization mode should "
+ "be one of \"posix\", \"futex\" or \"busy_wait\"");
+ }
+}
+
+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_die("Setting of whether to use coordinate cannot be disabled once set.");
+ } else {
+ xbt_die("Command line setting of whether to use coordinates must be either \"yes\" or \"no\"");
+ }
+}
+
+static void _surf_cfg_cb__surf_network_crosstraffic(const char *name,