xbt_dict_set(surf_model_resource_set(surf_cpu_model), name, cpu,
surf_resource_free);
-#ifdef HAVE_TRACING
- TRACE_surf_host_declaration(name, cpu->core * cpu->power_scale * cpu->power_peak);
-#endif
return cpu;
}
static void cpu_define_callbacks(const char *file)
{
- surf_parse_reset_parser();
surfxml_add_callback(STag_surfxml_host_cb_list, parse_cpu_init);
surfxml_add_callback(ETag_surfxml_platform_cb_list, &add_traces_cpu);
}
if (action->category)
xbt_free(action->category);
#endif
- free(action);
+ surf_action_free(&action);
return 1;
}
return 0;
lmm_variable_getvalue
(action->variable), now - delta,
delta);
+ TRACE_last_timestamp_to_dump = now-delta;
#endif
double_update(&(action->generic_action.remains),
lmm_variable_getvalue(action->variable) * delta);
XBT_OUT;
}
+#ifdef HAVE_TRACING
+static void cpu_action_set_category(surf_action_t action, const char *category)
+{
+ XBT_IN2("(%p,%s)", action, category);
+ action->category = xbt_strdup (category);
+ XBT_OUT;
+}
+#endif
+
static double cpu_action_get_remains(surf_action_t action)
{
XBT_IN1("(%p)", action);
surf_cpu_model->is_suspended = cpu_action_is_suspended;
surf_cpu_model->set_max_duration = cpu_action_set_max_duration;
surf_cpu_model->set_priority = cpu_action_set_priority;
+#ifdef HAVE_TRACING
+ surf_cpu_model->set_category = cpu_action_set_category;
+#endif
surf_cpu_model->get_remains = cpu_action_get_remains;
surf_cpu_model->extension.cpu.execute = cpu_execute;