X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/41964ff94baca68cd488f6f7181b90c1ed547781..02305db551e2a0804a3fd7b24622be6b12285572:/src/surf/workstation_KCCFLN05.c diff --git a/src/surf/workstation_KCCFLN05.c b/src/surf/workstation_KCCFLN05.c index 5803d35988..3e0aa33724 100644 --- a/src/surf/workstation_KCCFLN05.c +++ b/src/surf/workstation_KCCFLN05.c @@ -389,6 +389,11 @@ static int action_network_KCCFLN05_free(surf_action_t action) return 0; } +static void action_network_KCCFLN05_use(surf_action_t action) +{ + action->using++; +} + static double share_network_KCCFLN05_resources(double now) { s_surf_action_network_KCCFLN05_t action; @@ -526,6 +531,11 @@ static int network_KCCFLN05_action_is_suspended(surf_action_t action) return (lmm_get_variable_weight(((surf_action_network_KCCFLN05_t) action)->variable) == 0.0); } +static void network_KCCFLN05_action_set_max_duration(surf_action_t action, double duration) +{ + action->max_duration = duration; +} + /***************** CPU ****************/ static int action_cpu_KCCFLN05_free(surf_action_t action) { @@ -540,6 +550,11 @@ static int action_cpu_KCCFLN05_free(surf_action_t action) return 0; } +static void action_cpu_KCCFLN05_use(surf_action_t action) +{ + action->using++; +} + static void action_cpu_KCCFLN05_change_state(surf_action_t action, e_surf_action_state_t state) { @@ -554,13 +569,6 @@ static void action_cpu_KCCFLN05_change_state(surf_action_t action, return; } -/* #define WARNING(format, ...) (fprintf(stderr, "[%s , %s : %d] ", __FILE__, __FUNCTION__, __LINE__),\ */ -/* fprintf(stderr, format, ## __VA_ARGS__), \ */ -/* fprintf(stderr, "\n")) */ -/* #define VOIRP(expr) WARNING(" {" #expr " = %p }", expr) */ -/* #define VOIRD(expr) WARNING(" {" #expr " = %d }", expr) */ -/* #define VOIRG(expr) WARNING(" {" #expr " = %lg }", expr) */ - static double share_cpu_KCCFLN05_resources(double now) { s_surf_action_cpu_KCCFLN05_t s_cpu_action; @@ -722,6 +730,11 @@ static int cpu_KCCFLN05_action_is_suspended(surf_action_t action) return (lmm_get_variable_weight(((surf_action_cpu_KCCFLN05_t) action)->variable) == 0.0); } +static void cpu_KCCFLN05_action_set_max_duration(surf_action_t action, double duration) +{ + action->max_duration = duration; +} + /************* workstation ************/ static void action_change_state(surf_action_t action, e_surf_action_state_t state) @@ -805,6 +818,16 @@ static int action_is_suspended(surf_action_t action) DIE_IMPOSSIBLE; } +static void action_set_max_duration(surf_action_t action, double duration) +{ + if(action->resource_type==(surf_resource_t)surf_network_resource) + surf_network_resource->common_public->set_max_duration(action,duration); + else if(action->resource_type==(surf_resource_t)surf_cpu_resource) + surf_cpu_resource->common_public->set_max_duration(action,duration); + else DIE_IMPOSSIBLE; +} + + /**************************************/ /********* Module creation ***********/ /**************************************/ @@ -858,6 +881,7 @@ static void cpu_KCCFLN05_resource_init_internal(void) surf_cpu_resource->common_public->action_get_state = surf_action_get_state; surf_cpu_resource->common_public->action_free = action_cpu_KCCFLN05_free; + surf_cpu_resource->common_public->action_use = action_cpu_KCCFLN05_use; surf_cpu_resource->common_public->action_cancel = NULL; surf_cpu_resource->common_public->action_recycle = NULL; surf_cpu_resource->common_public->action_change_state = action_cpu_KCCFLN05_change_state; @@ -946,6 +970,7 @@ static void network_KCCFLN05_resource_init_internal(void) surf_network_resource->common_public->action_get_state = surf_action_get_state; surf_network_resource->common_public->action_free = action_network_KCCFLN05_free; + surf_network_resource->common_public->action_use = action_network_KCCFLN05_use; surf_network_resource->common_public->action_cancel = NULL; surf_network_resource->common_public->action_recycle = NULL; surf_network_resource->common_public->action_change_state = action_network_KCCFLN05_change_state; @@ -1032,6 +1057,7 @@ static void workstation_KCCFLN05_resource_init_internal(void) surf_workstation_resource->common_public->suspend = action_suspend; surf_workstation_resource->common_public->resume = action_resume; surf_workstation_resource->common_public->is_suspended = action_is_suspended; + surf_workstation_resource->common_public->set_max_duration = action_set_max_duration; surf_workstation_resource->extension_public->execute = execute_KCCFLN05; /*FIXME*//* surf_workstation_resource->extension_public->sleep = action_sleep; */