+static surf_action_t action_sleep(void *cpu, double duration)
+{
+ surf_action_cpu_Cas01_t action = NULL;
+
+ action = (surf_action_cpu_Cas01_t) execute(cpu, 1.0);
+ action->generic_action.max_duration = duration;
+ lmm_update_variable_weight(maxmin_system, action->variable, 0.0);
+
+ return (surf_action_t) action;
+}
+
+static void action_suspend(surf_action_t action)
+{
+ lmm_update_variable_weight(maxmin_system,
+ ((surf_action_cpu_Cas01_t) action)->variable, 0.0);
+}
+
+static void action_resume(surf_action_t action)
+{
+ lmm_update_variable_weight(maxmin_system,
+ ((surf_action_cpu_Cas01_t) action)->variable, 1.0);
+}
+
+static int action_is_suspended(surf_action_t action)
+{
+ return (lmm_get_variable_weight(((surf_action_cpu_Cas01_t) action)->variable) == 0.0);
+}
+
+static void action_set_max_duration(surf_action_t action, double duration)
+{
+ action->max_duration = duration;
+}
+