X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/aeecb4a229ff5617422483d5945c875dce84ac0e..509e8eaf9d87061013538f79a0fba44865c58c0a:/src/surf/cpu.c diff --git a/src/surf/cpu.c b/src/surf/cpu.c index e2883b9e43..17663c570e 100644 --- a/src/surf/cpu.c +++ b/src/surf/cpu.c @@ -170,11 +170,6 @@ static void action_cancel(surf_action_t action) return; } -static void action_recycle(surf_action_t action) -{ - DIE_IMPOSSIBLE; -} - static void action_change_state(surf_action_t action, e_surf_action_state_t state) { @@ -191,7 +186,7 @@ static void action_change_state(surf_action_t action, static double share_resources(double now) { s_surf_action_cpu_Cas01_t action; - return generic_maxmin_share_resources(surf_cpu_model->common_public->states. + return generic_maxmin_share_resources(surf_cpu_model->common_public.states. running_action_set, xbt_swag_offset(action, variable), cpu_maxmin_system, lmm_solve); @@ -202,10 +197,10 @@ static void update_actions_state(double now, double delta) surf_action_cpu_Cas01_t action = NULL; surf_action_cpu_Cas01_t next_action = NULL; xbt_swag_t running_actions = - surf_cpu_model->common_public->states.running_action_set; + surf_cpu_model->common_public.states.running_action_set; /* FIXME: UNUSED xbt_swag_t failed_actions = - surf_cpu_model->common_public->states.failed_action_set; + surf_cpu_model->common_public.states.failed_action_set; */ xbt_swag_foreach_safe(action, next_action, running_actions) { @@ -287,10 +282,10 @@ static surf_action_t execute(void *cpu, double size) if (CPU->state_current == SURF_CPU_ON) action->generic_action.state_set = - surf_cpu_model->common_public->states.running_action_set; + surf_cpu_model->common_public.states.running_action_set; else action->generic_action.state_set = - surf_cpu_model->common_public->states.failed_action_set; + surf_cpu_model->common_public.states.failed_action_set; xbt_swag_insert(action, action->generic_action.state_set); @@ -400,14 +395,11 @@ static void finalize(void) xbt_dict_free(&cpu_set); lmm_system_free(cpu_maxmin_system); cpu_maxmin_system = NULL; - xbt_swag_free(surf_cpu_model->common_public->states.ready_action_set); - xbt_swag_free(surf_cpu_model->common_public->states.running_action_set); - xbt_swag_free(surf_cpu_model->common_public->states.failed_action_set); - xbt_swag_free(surf_cpu_model->common_public->states.done_action_set); + + surf_model_exit((surf_model_t) surf_cpu_model); + xbt_swag_free(running_action_set_that_does_not_need_being_checked); running_action_set_that_does_not_need_being_checked = NULL; - free(surf_cpu_model->common_public); - free(surf_cpu_model->common_private); free(surf_cpu_model->extension_public); free(surf_cpu_model); @@ -420,38 +412,27 @@ static void surf_cpu_model_init_internal(void) surf_cpu_model = xbt_new0(s_surf_cpu_model_t, 1); - surf_cpu_model->common_private = xbt_new0(s_surf_model_private_t, 1); - surf_cpu_model->common_public = xbt_new0(s_surf_model_public_t, 1); + surf_model_init((surf_model_t) surf_cpu_model); surf_cpu_model->extension_public = xbt_new0(s_surf_cpu_model_extension_public_t, 1); - surf_cpu_model->common_public->states.ready_action_set = - xbt_swag_new(xbt_swag_offset(action, state_hookup)); - surf_cpu_model->common_public->states.running_action_set = - xbt_swag_new(xbt_swag_offset(action, state_hookup)); - surf_cpu_model->common_public->states.failed_action_set = - xbt_swag_new(xbt_swag_offset(action, state_hookup)); - surf_cpu_model->common_public->states.done_action_set = - xbt_swag_new(xbt_swag_offset(action, state_hookup)); - running_action_set_that_does_not_need_being_checked = xbt_swag_new(xbt_swag_offset(action, state_hookup)); - surf_cpu_model->common_public->name_service = name_service; - surf_cpu_model->common_public->get_resource_name = get_resource_name; - surf_cpu_model->common_public->action_get_state = surf_action_get_state; - surf_cpu_model->common_public->action_get_start_time = + surf_cpu_model->common_public.name_service = name_service; + surf_cpu_model->common_public.get_resource_name = get_resource_name; + surf_cpu_model->common_public.action_get_state = surf_action_get_state; + surf_cpu_model->common_public.action_get_start_time = surf_action_get_start_time; - surf_cpu_model->common_public->action_get_finish_time = + surf_cpu_model->common_public.action_get_finish_time = surf_action_get_finish_time; - surf_cpu_model->common_public->action_free = action_free; - surf_cpu_model->common_public->action_use = action_use; - surf_cpu_model->common_public->action_cancel = action_cancel; - surf_cpu_model->common_public->action_recycle = action_recycle; - surf_cpu_model->common_public->action_change_state = action_change_state; - surf_cpu_model->common_public->action_set_data = surf_action_set_data; - surf_cpu_model->common_public->name = "CPU"; + surf_cpu_model->common_public.action_free = action_free; + surf_cpu_model->common_public.action_use = action_use; + surf_cpu_model->common_public.action_cancel = action_cancel; + surf_cpu_model->common_public.action_change_state = action_change_state; + surf_cpu_model->common_public.action_set_data = surf_action_set_data; + surf_cpu_model->common_public.name = "CPU"; surf_cpu_model->common_private->resource_used = resource_used; surf_cpu_model->common_private->share_resources = share_resources; @@ -460,11 +441,11 @@ static void surf_cpu_model_init_internal(void) update_resource_state; surf_cpu_model->common_private->finalize = finalize; - surf_cpu_model->common_public->suspend = action_suspend; - surf_cpu_model->common_public->resume = action_resume; - surf_cpu_model->common_public->is_suspended = action_is_suspended; - surf_cpu_model->common_public->set_max_duration = action_set_max_duration; - surf_cpu_model->common_public->set_priority = action_set_priority; + surf_cpu_model->common_public.suspend = action_suspend; + surf_cpu_model->common_public.resume = action_resume; + surf_cpu_model->common_public.is_suspended = action_is_suspended; + surf_cpu_model->common_public.set_max_duration = action_set_max_duration; + surf_cpu_model->common_public.set_priority = action_set_priority; surf_cpu_model->extension_public->execute = execute; surf_cpu_model->extension_public->sleep = action_sleep; @@ -472,7 +453,7 @@ static void surf_cpu_model_init_internal(void) surf_cpu_model->extension_public->get_speed = get_speed; surf_cpu_model->extension_public->get_available_speed = get_available_speed; /*manage the properties of the cpu */ - surf_cpu_model->common_public->get_properties = get_properties; + surf_cpu_model->common_public.get_properties = get_properties; if (!cpu_set) cpu_set = xbt_dict_new();