From 5d1ee7face499527e065d2425b6efced376906c0 Mon Sep 17 00:00:00 2001 From: coldpeace Date: Tue, 13 Jul 2010 09:06:25 +0000 Subject: [PATCH] fix the way to bypass the cpu_im without hard coding the model git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@8019 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- src/include/surf/surf.h | 14 ++++++++--- src/surf/cpu_im.c | 54 +++++++++++++++++++++++------------------ 2 files changed, 42 insertions(+), 26 deletions(-) diff --git a/src/include/surf/surf.h b/src/include/surf/surf.h index 41ebfa021a..ee6a3b669f 100644 --- a/src/include/surf/surf.h +++ b/src/include/surf/surf.h @@ -154,6 +154,7 @@ XBT_PUBLIC_DATA(routing_t) used_routing; e_surf_resource_state_t(*get_state) (void *cpu); double (*get_speed) (void *cpu, double load); double (*get_available_speed) (void *cpu); + void (*init_bypass)(const char* id,double power); } s_surf_model_extension_cpu_t; /* Network model */ @@ -323,6 +324,11 @@ XBT_PUBLIC(void) surf_cpu_model_init_ti(const char *filename); */ XBT_PUBLIC(void) surf_cpu_model_init_Cas01_im(const char *filename); +/**brief Initialise the cpu_im model bypassing the parser + * + */ +XBT_PUBLIC(void) surf_cpu_model_init_bypass_im(const char*id,double power); + /** \brief The list of all available cpu model models * \ingroup SURF_models */ @@ -330,6 +336,11 @@ XBT_PUBLIC_DATA(s_surf_model_description_t) surf_cpu_model_description[]; XBT_PUBLIC(void) create_workstations(void); +/**\brief create new host bypass the parser + * + */ + + /** \brief The network model * \ingroup SURF_models * @@ -628,9 +639,6 @@ XBT_PUBLIC_DATA(xbt_dict_t) trace_connect_list_latency; XBT_PUBLIC(double) get_cpu_power(const char *power); -/* used to byPass XML ( interact direclty with cpu and avoid callback ) */ -XBT_PUBLIC(void) surf_cpu_init_im_bypass(char* name,double power); - #include "surf/surf_resource.h" #include "surf/surf_resource_lmm.h" diff --git a/src/surf/cpu_im.c b/src/surf/cpu_im.c index f1b2b8cf34..67ef5a50f0 100644 --- a/src/surf/cpu_im.c +++ b/src/surf/cpu_im.c @@ -505,6 +505,32 @@ static void cpu_im_action_update_index_heap(void *action, int i) ((surf_action_cpu_Cas01_im_t) action)->index_heap = i; } +static void cpu_im_init_bypass(const char* id,double power) +{ + /* FIXME + * the hard coded value must be passed as argument of the lua function + * depending on the number of arguments the user pass to function + * we'd affect it to the corresponding value + */ + double power_peak = 0.0; + double power_scale = 0.0; + tmgr_trace_t power_trace = NULL; + //FIXME : hard coded value + e_surf_resource_state_t state_initial = SURF_RESOURCE_ON; + tmgr_trace_t state_trace = NULL; + power_peak = power; + //FIXME : hard coded value !!! + surf_parse_get_double(&power_scale, "1.0"); + power_trace = tmgr_trace_new(""); + + //state_trace = tmgr_trace_new(A_surfxml_host_state_file); + current_property_set = xbt_dict_new(); + cpu_im_new(xbt_strdup(id), power_peak, power_scale, + power_trace, state_initial, state_trace, current_property_set); + +} + + static void cpu_im_finalize(void) { void *cpu; @@ -563,6 +589,7 @@ static void surf_cpu_im_model_init_internal(void) surf_cpu_model->extension.cpu.get_state = cpu_im_get_state; surf_cpu_model->extension.cpu.get_speed = cpu_im_get_speed; surf_cpu_model->extension.cpu.get_available_speed = cpu_im_get_available_speed; + surf_cpu_model->extension.cpu.init_bypass = cpu_im_init_bypass; if (!cpu_im_maxmin_system) { sg_maxmin_selective_update = 1; @@ -597,27 +624,8 @@ void surf_cpu_model_init_Cas01_im(const char *filename) xbt_dynar_push(model_list, &surf_cpu_model); } -void surf_cpu_im_init_bypass(char* id,double power) +void surf_cpu_model_init_bypass_im(const char* id,double power) { - /* FIXME - * the hard coded value must be passed as argument of the lua function - * depending on the number of arguments the user pass to function - * we'd affect it to the corresponding value - */ - double power_peak = 0.0; - double power_scale = 0.0; - tmgr_trace_t power_trace = NULL; - //FIXME : hard coded value - e_surf_resource_state_t state_initial = SURF_RESOURCE_ON; - tmgr_trace_t state_trace = NULL; - power_peak = power; - //FIXME : hard coded value !!! - surf_parse_get_double(&power_scale, "1.0"); - power_trace = tmgr_trace_new(""); - - //state_trace = tmgr_trace_new(A_surfxml_host_state_file); - current_property_set = xbt_dict_new(); - cpu_im_new(xbt_strdup(id), power_peak, power_scale, - power_trace, state_initial, state_trace, current_property_set); - - } + return surf_cpu_model->extension.cpu. + init_bypass(id,power); +} -- 2.20.1