static void cpu_im_define_callbacks(const char *file)
{
+
surf_parse_reset_parser();
surfxml_add_callback(STag_surfxml_host_cb_list, parse_cpu_im_init);
surfxml_add_callback(ETag_surfxml_platform_cb_list, &cpu_im_add_traces_cpu);
static void cpu_im_action_resume(surf_action_t action)
{
+
XBT_IN1("(%p)", action);
if (((surf_action_lmm_t) action)->suspended != 2) {
lmm_update_variable_weight(cpu_im_maxmin_system,
((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;
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;
cpu_im_define_callbacks(filename);
xbt_dynar_push(model_list, &surf_cpu_model);
}
+
+void surf_cpu_model_init_bypass_im(const char* id,double power)
+{
+ return surf_cpu_model->extension.cpu.
+ init_bypass(id,power);
+}