X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/be25aefab9c2c610e764c6b3ddd0df1c2c9a4797..c94898122fc054483e0e4b0313cd52f385582d2a:/src/surf/workstation.c diff --git a/src/surf/workstation.c b/src/surf/workstation.c index 7318d82c32..4a33095771 100644 --- a/src/surf/workstation.c +++ b/src/surf/workstation.c @@ -17,24 +17,18 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_workstation, surf, surf_model_t surf_workstation_model = NULL; -static void workstation_free(void *workstation) -{ - free(((workstation_CLM03_t) workstation)->name); - free(workstation); -} - static workstation_CLM03_t workstation_new(const char *name, void *cpu, void *card) { workstation_CLM03_t workstation = xbt_new0(s_workstation_CLM03_t, 1); - workstation->model = surf_workstation_model; - workstation->name = xbt_strdup(name); + workstation->generic_resource.model = surf_workstation_model; + workstation->generic_resource.name = xbt_strdup(name); workstation->cpu = cpu; workstation->network_card = card; xbt_dict_set(surf_model_resource_set(surf_workstation_model), name, - workstation, workstation_free); + workstation, surf_resource_free); return workstation; } @@ -54,11 +48,6 @@ void create_workstations(void) } } -static const char *get_resource_name(void *resource_id) -{ - return ((workstation_CLM03_t) resource_id)->name; -} - static int resource_used(void *resource_id) { THROW_IMPOSSIBLE; /* This model does not implement parallel tasks */ @@ -151,14 +140,14 @@ static void update_resource_state(void *id, static surf_action_t execute(void *workstation, double size) { - return surf_cpu_model->extension.cpu. - execute(((workstation_CLM03_t) workstation)->cpu, size); + return surf_cpu_model->extension. + cpu.execute(((workstation_CLM03_t) workstation)->cpu, size); } static surf_action_t action_sleep(void *workstation, double duration) { - return surf_cpu_model->extension.cpu. - sleep(((workstation_CLM03_t) workstation)->cpu, duration); + return surf_cpu_model->extension. + cpu.sleep(((workstation_CLM03_t) workstation)->cpu, duration); } static void action_suspend(surf_action_t action) @@ -214,35 +203,35 @@ static surf_action_t communicate(void *workstation_src, void *workstation_dst, double size, double rate) { - return surf_network_model->extension.network. - communicate(((workstation_CLM03_t) workstation_src)->network_card, - ((workstation_CLM03_t) workstation_dst)->network_card, size, - rate); + return surf_network_model->extension. + network.communicate(((workstation_CLM03_t) workstation_src)->network_card, + ((workstation_CLM03_t) workstation_dst)->network_card, + size, rate); } static e_surf_cpu_state_t get_state(void *workstation) { - return surf_cpu_model->extension.cpu. - get_state(((workstation_CLM03_t) workstation)->cpu); + return surf_cpu_model->extension. + cpu.get_state(((workstation_CLM03_t) workstation)->cpu); } static double get_speed(void *workstation, double load) { - return surf_cpu_model->extension.cpu. - get_speed(((workstation_CLM03_t) workstation)->cpu, load); + return surf_cpu_model->extension. + cpu.get_speed(((workstation_CLM03_t) workstation)->cpu, load); } static double get_available_speed(void *workstation) { - return surf_cpu_model->extension.cpu. - get_available_speed(((workstation_CLM03_t) - workstation)->cpu); + return surf_cpu_model->extension. + cpu.get_available_speed(((workstation_CLM03_t) + workstation)->cpu); } static xbt_dict_t get_properties(void *workstation) { - return surf_cpu_model-> - get_properties(((workstation_CLM03_t) workstation)->cpu); + return surf_cpu_model->get_properties(((workstation_CLM03_t) workstation)-> + cpu); } static surf_action_t execute_parallel_task(int workstation_nb, @@ -260,22 +249,19 @@ static const void **get_route(void *src, void *dst) { workstation_CLM03_t workstation_src = (workstation_CLM03_t) src; workstation_CLM03_t workstation_dst = (workstation_CLM03_t) dst; - return surf_network_model->extension.network. - get_route(workstation_src->network_card, workstation_dst->network_card); + return surf_network_model->extension.network.get_route(workstation_src-> + network_card, + workstation_dst-> + network_card); } static int get_route_size(void *src, void *dst) { workstation_CLM03_t workstation_src = (workstation_CLM03_t) src; workstation_CLM03_t workstation_dst = (workstation_CLM03_t) dst; - return surf_network_model->extension.network. - get_route_size(workstation_src->network_card, - workstation_dst->network_card); -} - -static const char *get_link_name(const void *link) -{ - return surf_network_model->extension.network.get_link_name(link); + return surf_network_model->extension. + network.get_route_size(workstation_src->network_card, + workstation_dst->network_card); } static double get_link_bandwidth(const void *link) @@ -296,19 +282,14 @@ static int link_shared(const void *link) static void finalize(void) { surf_model_exit(surf_workstation_model); - - free(surf_workstation_model); surf_workstation_model = NULL; } static void surf_workstation_model_init_internal(void) { - surf_workstation_model = xbt_new0(s_surf_model_t, 1); - - surf_model_init(surf_workstation_model); + surf_workstation_model = surf_model_init(); /* surf_workstation_model->extension_private = xbt_new0(s_surf_workstation_model_extension_private_t,1); */ - surf_workstation_model->get_resource_name = get_resource_name; surf_workstation_model->action_get_state = surf_action_get_state; surf_workstation_model->action_get_start_time = surf_action_get_start_time; surf_workstation_model->action_get_finish_time = @@ -350,7 +331,6 @@ static void surf_workstation_model_init_internal(void) surf_workstation_model->extension.workstation.get_route = get_route; surf_workstation_model->extension.workstation.get_route_size = get_route_size; - surf_workstation_model->extension.workstation.get_link_name = get_link_name; surf_workstation_model->extension.workstation.get_link_bandwidth = get_link_bandwidth; surf_workstation_model->extension.workstation.get_link_latency =