+static void surf_workstation_model_init_internal(void)
+{
+ surf_workstation_model = surf_model_init();
+
+ surf_workstation_model->name = "Workstation";
+ surf_workstation_model->action_unref = action_unref;
+ surf_workstation_model->action_cancel = action_cancel;
+ surf_workstation_model->action_state_set = ws_action_state_set;
+
+ surf_workstation_model->model_private->resource_used = resource_used;
+ surf_workstation_model->model_private->share_resources = share_resources;
+ surf_workstation_model->model_private->update_actions_state =
+ update_actions_state;
+ surf_workstation_model->model_private->update_resource_state =
+ update_resource_state;
+ surf_workstation_model->model_private->finalize = finalize;
+
+ surf_workstation_model->suspend = action_suspend;
+ surf_workstation_model->resume = action_resume;
+ surf_workstation_model->is_suspended = action_is_suspended;
+ surf_workstation_model->set_max_duration = action_set_max_duration;
+ surf_workstation_model->set_priority = action_set_priority;
+
+ surf_workstation_model->extension.workstation.execute = execute;
+ surf_workstation_model->extension.workstation.sleep = action_sleep;
+ surf_workstation_model->extension.workstation.get_state = get_state;
+ surf_workstation_model->extension.workstation.get_speed = get_speed;
+ surf_workstation_model->extension.workstation.get_available_speed =
+ get_available_speed;
+
+ surf_workstation_model->extension.workstation.communicate = communicate;
+ surf_workstation_model->extension.workstation.get_route = get_route;
+ surf_workstation_model->extension.workstation.execute_parallel_task =
+ execute_parallel_task;
+ surf_workstation_model->extension.workstation.get_link_bandwidth =
+ get_link_bandwidth;
+ surf_workstation_model->extension.workstation.get_link_latency =
+ get_link_latency;
+ surf_workstation_model->extension.workstation.link_shared = link_shared;
+ surf_workstation_model->extension.workstation.get_properties = get_properties;
+}