// model->set_max_duration = ws_action_set_max_duration;
model->set_priority = ws_action_set_priority;
model->set_bound = ws_action_set_bound;
+ model->set_affinity = ws_action_set_affinity;
// #ifdef HAVE_TRACING
// model->set_category = ws_action_set_category;
// #endif
DIE_IMPOSSIBLE;
}
+void ws_action_set_affinity(surf_action_t action, void *workstation, unsigned long mask)
+{
+ if (action->model_obj->type == SURF_MODEL_TYPE_NETWORK)
+ DIE_IMPOSSIBLE;
+ else if (action->model_obj->type == SURF_MODEL_TYPE_CPU)
+ action->model_obj->set_affinity(action, workstation, mask);
+ else
+ DIE_IMPOSSIBLE;
+}
+
#ifdef HAVE_TRACING
static void ws_action_set_category(surf_action_t action, const char *category)
{
model->set_max_duration = ws_action_set_max_duration;
model->set_priority = ws_action_set_priority;
model->set_bound = ws_action_set_bound;
+ model->set_affinity = ws_action_set_affinity;
#ifdef HAVE_TRACING
model->set_category = ws_action_set_category;
#endif
void ws_action_set_priority(surf_action_t action, double priority);
void ws_action_set_bound(surf_action_t action, double bound);
+void ws_action_set_affinity(surf_action_t action, void *workstation, unsigned long mask);
surf_action_t ws_execute(void *workstation, double size);
surf_action_t ws_action_sleep(void *workstation, double duration);