X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/77c0d30a89c96cbbce808326e6da24bc690961ec..d7fe15f62820f53f48d0f894212373fac36e449b:/src/surf/surf.c diff --git a/src/surf/surf.c b/src/surf/surf.c index 88800695c5..166c13403d 100644 --- a/src/surf/surf.c +++ b/src/surf/surf.c @@ -125,15 +125,8 @@ const char *surf_action_state_names[6] = { "SURF_ACTION_NOT_IN_THE_SYSTEM" }; -int surf_network_model_description_size = 3 -#ifdef HAVE_GTNETS - + 1 -#endif -#ifdef HAVE_SDP - + 1 -#endif - ; -s_surf_model_description_t surf_network_model_description[] = { +s_surf_model_description_t surf_network_model_description[surf_network_model_description_size] = { + {"Constant", NULL, surf_network_model_init_Constant}, {"CM02", NULL, surf_network_model_init_CM02}, #ifdef HAVE_GTNETS {"GTNets", NULL, surf_network_model_init_GTNETS}, @@ -145,17 +138,14 @@ s_surf_model_description_t surf_network_model_description[] = { {"Vegas", NULL, surf_network_model_init_Vegas} }; -int surf_cpu_model_description_size = 1; -s_surf_model_description_t surf_cpu_model_description[] = { +s_surf_model_description_t surf_cpu_model_description[surf_cpu_model_description_size] = { {"Cas01", NULL, surf_cpu_model_init_Cas01}, }; -int surf_workstation_model_description_size = 4; -s_surf_model_description_t surf_workstation_model_description[] = { - {"CLM03", NULL, surf_workstation_model_init_CLM03}, - {"KCCFLN05", NULL, surf_workstation_model_init_KCCFLN05}, - {"compound", NULL, surf_workstation_model_init_compound}, - {"ptask_L07", NULL, surf_workstation_model_init_ptask_L07} +s_surf_model_description_t surf_workstation_model_description[surf_workstation_model_description_size] = { + {"CLM03", NULL, surf_workstation_model_init_CLM03, create_workstations}, + {"compound", NULL, surf_workstation_model_init_compound, create_workstations}, + {"ptask_L07", NULL, surf_workstation_model_init_ptask_L07, NULL} }; void update_model_description(s_surf_model_description_t * table, @@ -311,6 +301,24 @@ void surf_action_set_data(surf_action_t action, void *data) action->data = data; } +XBT_LOG_EXTERNAL_CATEGORY(surf_cpu); +XBT_LOG_EXTERNAL_CATEGORY(surf_kernel); +XBT_LOG_EXTERNAL_CATEGORY(surf_lagrange); +XBT_LOG_EXTERNAL_CATEGORY(surf_lagrange_dichotomy); +XBT_LOG_EXTERNAL_CATEGORY(surf_maxmin); +XBT_LOG_EXTERNAL_CATEGORY(surf_network); +XBT_LOG_EXTERNAL_CATEGORY(surf_parse); +XBT_LOG_EXTERNAL_CATEGORY(surf_timer); +XBT_LOG_EXTERNAL_CATEGORY(surf_workstation); + +#ifdef HAVE_SDP + XBT_LOG_EXTERNAL_CATEGORY(surf_sdp_out); + XBT_LOG_EXTERNAL_CATEGORY(surf_sdp); +#endif +#ifdef HAVE_GTNETS + XBT_LOG_EXTERNAL_CATEGORY(surf_network_gtnets); +#endif + void surf_init(int *argc, char **argv) { int i, j; @@ -318,6 +326,25 @@ void surf_init(int *argc, char **argv) const char *initial_path; + /* Connect our log channels: that must be done manually under windows */ + XBT_LOG_CONNECT(surf_cpu, surf); + XBT_LOG_CONNECT(surf_kernel, surf); + XBT_LOG_CONNECT(surf_lagrange, surf); + XBT_LOG_CONNECT(surf_lagrange_dichotomy, surf_lagrange); + XBT_LOG_CONNECT(surf_maxmin, surf); + XBT_LOG_CONNECT(surf_network, surf); + XBT_LOG_CONNECT(surf_parse, surf); + XBT_LOG_CONNECT(surf_timer, surf); + XBT_LOG_CONNECT(surf_workstation, surf); + +#ifdef HAVE_SDP + XBT_LOG_CONNECT(surf_sdp_out, surf); + XBT_LOG_CONNECT(surf_sdp, surf); +#endif +#ifdef HAVE_GTNETS + XBT_LOG_CONNECT(surf_network_gtnets, surf); +#endif + xbt_init(argc, argv); if (!surf_path) { @@ -354,10 +381,10 @@ void surf_init(int *argc, char **argv) static char *path_name = NULL; FILE *surf_fopen(const char *name, const char *mode) { - int i; + unsigned int iter; char *path = NULL; FILE *file = NULL; - int path_name_len = 0; /* don't count '\0' */ + unsigned int path_name_len = 0; /* don't count '\0' */ xbt_assert0(name, "Need a non-NULL file name"); @@ -374,12 +401,16 @@ FILE *surf_fopen(const char *name, const char *mode) path_name = xbt_new0(char, path_name_len + 1); } - xbt_dynar_foreach(surf_path, i, path) { + xbt_dynar_foreach(surf_path, iter, path) { if (path_name_len < strlen(path) + strlen(name) + 1) { path_name_len = strlen(path) + strlen(name) + 1; /* plus '/' */ path_name = xbt_realloc(path_name, path_name_len + 1); } + #ifdef WIN32 + sprintf(path_name, "%s\\%s", path, name); + #else sprintf(path_name, "%s/%s", path, name); + #endif file = fopen(path_name, mode); if (file) return file; @@ -390,10 +421,10 @@ FILE *surf_fopen(const char *name, const char *mode) void surf_exit(void) { - int i; + unsigned int iter; surf_model_t model = NULL; - xbt_dynar_foreach(model_list, i, model) { + xbt_dynar_foreach(model_list, iter, model) { model->common_private->finalize(); } @@ -417,6 +448,9 @@ void surf_exit(void) free(path_name); path_name = NULL; } + surf_parse_free_callbacks(); + xbt_dict_free(&route_table); + NOW=0; /* Just in case the user plans to restart the simulation afterward */ xbt_exit(); } @@ -431,7 +465,7 @@ double surf_solve(void) surf_model_object_t model_obj = NULL; surf_model_t model = NULL; tmgr_trace_event_t event = NULL; - int i; + unsigned int iter; if (first_run) { DEBUG0 @@ -447,7 +481,7 @@ double surf_solve(void) update_resource_state(model_obj, event, value); } } - xbt_dynar_foreach(model_list, i, model) { + xbt_dynar_foreach(model_list, iter, model) { model->common_private->update_actions_state(NOW, 0.0); } first_run = 0; @@ -457,7 +491,7 @@ double surf_solve(void) min = -1.0; DEBUG0("Looking for next action end"); - xbt_dynar_foreach(model_list, i, model) { + xbt_dynar_foreach(model_list, iter, model) { DEBUG1("Running for Resource [%s]", model->common_public->name); model_next_action_end = model->common_private->share_resources(NOW); @@ -500,7 +534,7 @@ double surf_solve(void) NOW = NOW + min; - xbt_dynar_foreach(model_list, i, model) { + xbt_dynar_foreach(model_list, iter, model) { model->common_private->update_actions_state(NOW, min); }