/* Actions and resources are higly connected structures... */
typedef struct surf_action *surf_action_t;
/* Actions and resources are higly connected structures... */
typedef struct surf_action *surf_action_t;
xbt_maxmin_float_t remains; /* How much of that cost remains to
* be done in the currently running task */
xbt_heap_float_t start; /* start time */
xbt_maxmin_float_t remains; /* How much of that cost remains to
* be done in the currently running task */
xbt_heap_float_t start; /* start time */
*surf_cpu_resource_extension_private_t;
typedef struct surf_cpu_resource_extension_public {
surf_action_t(*execute) (void *cpu, xbt_maxmin_float_t size);
*surf_cpu_resource_extension_private_t;
typedef struct surf_cpu_resource_extension_public {
surf_action_t(*execute) (void *cpu, xbt_maxmin_float_t size);
- surf_action_t(*wait) (void *cpu, xbt_maxmin_float_t size);
+ surf_action_t(*sleep) (void *cpu, xbt_maxmin_float_t duration);
+ void (*suspend) (surf_action_t action);
+ void (*resume) (surf_action_t action);
e_surf_cpu_state_t(*get_state) (void *cpu);
} s_surf_cpu_resource_extension_public_t,
*surf_cpu_resource_extension_public_t;
e_surf_cpu_state_t(*get_state) (void *cpu);
} s_surf_cpu_resource_extension_public_t,
*surf_cpu_resource_extension_public_t;
*surf_workstation_resource_extension_private_t;
typedef struct surf_workstation_resource_extension_public {
surf_action_t(*execute) (void *workstation, xbt_maxmin_float_t size);
*surf_workstation_resource_extension_private_t;
typedef struct surf_workstation_resource_extension_public {
surf_action_t(*execute) (void *workstation, xbt_maxmin_float_t size);
e_surf_cpu_state_t(*get_state) (void *workstation);
surf_action_t(*communicate) (void *workstation_src,
void *workstation_dst,
e_surf_cpu_state_t(*get_state) (void *workstation);
surf_action_t(*communicate) (void *workstation_src,
void *workstation_dst,