-/* Pick the right models for CPU, net and workstation, and call their model_init_preparse */
-void surf_config_models_setup()
-{
- const char *workstation_model_name;
- const char *vm_workstation_model_name;
- int workstation_id = -1;
- int vm_workstation_id = -1;
- char *network_model_name = NULL;
- char *cpu_model_name = NULL;
- int storage_id = -1;
- char *storage_model_name = NULL;
-
- workstation_model_name =
- xbt_cfg_get_string(_sg_cfg_set, "workstation/model");
- vm_workstation_model_name =
- xbt_cfg_get_string(_sg_cfg_set, "vm_workstation/model");
- network_model_name = xbt_cfg_get_string(_sg_cfg_set, "network/model");
- cpu_model_name = xbt_cfg_get_string(_sg_cfg_set, "cpu/model");
- storage_model_name = xbt_cfg_get_string(_sg_cfg_set, "storage/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 ((!xbt_cfg_is_default_value(_sg_cfg_set, "network/model") ||
- !xbt_cfg_is_default_value(_sg_cfg_set, "cpu/model")) &&
- xbt_cfg_is_default_value(_sg_cfg_set, "workstation/model")) {
- XBT_INFO("Switching workstation model to compound since you changed the network and/or cpu model(s)");
- workstation_model_name = "compound";
- xbt_cfg_set_string(_sg_cfg_set, "workstation/model", workstation_model_name);
- }
-
- XBT_DEBUG("Workstation model: %s", workstation_model_name);
- workstation_id =
- find_model_description(surf_workstation_model_description,
- workstation_model_name);
- if (!strcmp(workstation_model_name, "compound")) {
- int network_id = -1;
- int cpu_id = -1;
-
- xbt_assert(cpu_model_name,
- "Set a cpu model to use with the 'compound' workstation model");
-
- xbt_assert(network_model_name,
- "Set a network model to use with the 'compound' workstation model");
-
- if(surf_cpu_model_init_preparse){
- surf_cpu_model_init_preparse();
- } else {
- cpu_id =
- find_model_description(surf_cpu_model_description, cpu_model_name);
- surf_cpu_model_description[cpu_id].model_init_preparse();
- }
-
- network_id =
- find_model_description(surf_network_model_description,
- network_model_name);
- surf_network_model_description[network_id].model_init_preparse();
- }
-
- XBT_DEBUG("Call workstation_model_init");
- surf_workstation_model_description[workstation_id].model_init_preparse();
-
- XBT_DEBUG("Call vm_workstation_model_init");
- vm_workstation_id = find_model_description(surf_vm_workstation_model_description,
- vm_workstation_model_name);
- surf_vm_workstation_model_description[vm_workstation_id].model_init_preparse();
-
- XBT_DEBUG("Call storage_model_init");
- storage_id = find_model_description(surf_storage_model_description, storage_model_name);
- surf_storage_model_description[storage_id].model_init_preparse();
-
-}
-