Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
fix the way to bypass the cpu_im without hard coding the model
authorcoldpeace <coldpeace@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Tue, 13 Jul 2010 09:06:25 +0000 (09:06 +0000)
committercoldpeace <coldpeace@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Tue, 13 Jul 2010 09:06:25 +0000 (09:06 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@8019 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/include/surf/surf.h
src/surf/cpu_im.c

index 41ebfa0..ee6a3b6 100644 (file)
@@ -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"
 
index f1b2b8c..67ef5a5 100644 (file)
@@ -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);
+}