-/**************************************/
-/************* CPU object *************/
-/**************************************/
-
-/************ workstation creation *********/
-static void workstation_free(void *workstation)
-{
- free(((workstation_KCCFLN05_t)workstation)->name);
- xbt_dynar_free(&(((workstation_KCCFLN05_t)workstation)->incomming_communications));
- xbt_dynar_free(&(((workstation_KCCFLN05_t)workstation)->outgoing_communications));
- free(workstation);
-}
-
-static workstation_KCCFLN05_t workstation_new(const char *name,
- double power_scale,
- double power_initial,
- tmgr_trace_t power_trace,
- e_surf_cpu_state_t state_initial,
- tmgr_trace_t state_trace,
- double interference_send,
- double interference_recv,
- double interference_send_recv,
- double max_outgoing_rate)
-{
- workstation_KCCFLN05_t workstation = xbt_new0(s_workstation_KCCFLN05_t, 1);
-
- workstation->resource = (surf_resource_t) surf_workstation_resource;
- workstation->name = xbt_strdup(name);
- workstation->id = nb_workstation++;
-
- workstation->power_scale = power_scale;
- xbt_assert0(workstation->power_scale>0,"Power has to be >0");
-
- workstation->power_current = power_initial;
- if (power_trace)
- workstation->power_event =
- tmgr_history_add_trace(history, power_trace, 0.0, 0, workstation);
-
- workstation->state_current = state_initial;
- if (state_trace)
- workstation->state_event =
- tmgr_history_add_trace(history, state_trace, 0.0, 0, workstation);
-
- workstation->interference_send=interference_send;
- workstation->interference_recv=interference_recv;
- workstation->interference_send_recv=interference_send_recv;
-
- workstation->constraint =
- lmm_constraint_new(maxmin_system_cpu_KCCFLN05, workstation,
- workstation->power_current * workstation->power_scale);
- if(max_outgoing_rate>0)
- workstation->bus=
- lmm_constraint_new(maxmin_system_cpu_KCCFLN05, workstation,
- max_outgoing_rate);
-
- workstation->incomming_communications =
- xbt_dynar_new(sizeof(surf_action_network_KCCFLN05_t),NULL);
- workstation->outgoing_communications =
- xbt_dynar_new(sizeof(surf_action_network_KCCFLN05_t),NULL);
-
- xbt_dict_set(workstation_set, name, workstation, workstation_free);
-
- return workstation;
-}