return;
if (!strcmp(optim, "TI")) {
- surf_cpu_model = new CpuTiModel();
+ surf_cpu_model_init_ti();
return;
}
CpuCas01Model::CpuCas01Model() : CpuModel("cpu")
{
- CpuCas01ActionLmm action;
+ ActionPtr action;
+ ActionLmmPtr actionlmm;
char *optim = xbt_cfg_get_string(_sg_cfg_set, "cpu/optim");
int select = xbt_cfg_get_boolean(_sg_cfg_set, "cpu/maxmin_selective_update");
}
cpu_running_action_set_that_does_not_need_being_checked =
- xbt_swag_new(xbt_swag_offset(action, p_stateHookup));
+ xbt_swag_new(xbt_swag_offset(*action, p_stateHookup));
if (p_updateMechanism == UM_LAZY) {
shareResources = &CpuCas01Model::shareResourcesLazy;
if (p_updateMechanism == UM_LAZY) {
p_actionHeap = xbt_heap_new(8, NULL);
xbt_heap_set_update_callback(p_actionHeap, surf_action_lmm_update_index_heap);
- ActionLmmPtr _actionlmm;
- CpuCas01ActionLmmPtr _actioncpu;
- int j = xbt_swag_offset(*_actionlmm, p_actionListHookup);
- int k = xbt_swag_offset(*_actioncpu, p_actionListHookup);
- j = ((char *)&( (*_actionlmm).p_actionListHookup ) - (char *)(_actionlmm));
- k = ((char *)&( (*_actioncpu).p_actionListHookup ) - (char *)(_actioncpu));
- void *toto = &(*_actionlmm).p_actionListHookup;
- void *tata = _actionlmm;
- ActionLmm aieu;
- ActionLmmPtr actionBase = &aieu;
- void *actionBaseVoid = actionBase;
- void *actionBaseCVoid = static_cast<void*>(actionBase);
- ActionLmmPtr actionBaseVoidBase = (ActionLmmPtr)actionBaseVoid;
- ActionLmmPtr actionBaseCVoidCBase = static_cast<ActionLmmPtr>(actionBaseCVoid);
- p_modifiedSet = xbt_swag_new(xbt_swag_offset(*_actionlmm, p_actionListHookup));
+ p_modifiedSet = xbt_swag_new(xbt_swag_offset(*actionlmm, p_actionListHookup));
p_maxminSystem->keep_track = p_modifiedSet;
}
}
host->state_trace,
host->properties);
}
+
CpuCas01LmmPtr CpuCas01Model::createResource(const char *name, double power_peak, double power_scale,
tmgr_trace_t power_trace, int core,
e_surf_resource_state_t state_initial,
xbt_assert(core > 0, "Invalid number of cores %d", core);
cpu = new CpuCas01Lmm(this, name, power_peak, power_scale, power_trace, core, state_initial, state_trace, cpu_properties);
- xbt_lib_set(host_lib, name, SURF_CPU_LEVEL, cpu);
+ xbt_lib_set(host_lib, name, SURF_CPU_LEVEL, static_cast<ResourcePtr>(cpu));
- return (CpuCas01LmmPtr) xbt_lib_get_elm_or_null(host_lib, name);;
+ return (CpuCas01LmmPtr) xbt_lib_get_elm_or_null(host_lib, name);
}
double CpuCas01Model::shareResourcesFull(double now)
{
- CpuCas01ActionLmm action;
- Model::shareResourcesMaxMin(p_runningActionSet,
- xbt_swag_offset(action, p_variable),
+ return Model::shareResourcesMaxMin(p_runningActionSet,
p_maxminSystem, lmm_solve);
- return 0;
}
void CpuCas01Model::addTraces()
/* connect all traces relative to hosts */
xbt_dict_foreach(trace_connect_list_host_avail, cursor, trace_name, elm) {
tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
- CpuCas01LmmPtr host = (CpuCas01LmmPtr) surf_cpu_resource_priv(surf_cpu_resource_by_name(elm));
+ CpuCas01LmmPtr host = static_cast<CpuCas01LmmPtr>(surf_cpu_resource_priv(surf_cpu_resource_by_name(elm)));
xbt_assert(host, "Host %s undefined", elm);
xbt_assert(trace, "Trace %s undefined", trace_name);
host->p_stateEvent =
- tmgr_history_add_trace(history, trace, 0.0, 0, (ResourcePtr) host);
+ tmgr_history_add_trace(history, trace, 0.0, 0, static_cast<ResourcePtr>(host));
}
xbt_dict_foreach(trace_connect_list_power, cursor, trace_name, elm) {
tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
- CpuCas01LmmPtr host = (CpuCas01LmmPtr) surf_cpu_resource_priv(surf_cpu_resource_by_name(elm));
+ CpuCas01LmmPtr host = dynamic_cast<CpuCas01LmmPtr>(static_cast<ResourcePtr>(surf_cpu_resource_priv(surf_cpu_resource_by_name(elm))));
xbt_assert(host, "Host %s undefined", elm);
xbt_assert(trace, "Trace %s undefined", trace_name);
host->p_powerEvent =
- tmgr_history_add_trace(history, trace, 0.0, 0, (ResourcePtr) host);
+ tmgr_history_add_trace(history, trace, 0.0, 0, static_cast<ResourcePtr>(host));
}
}
return;
}
-CpuActionPtr CpuCas01Lmm::execute(double size)
+ActionPtr CpuCas01Lmm::execute(double size)
{
XBT_IN("(%s,%g)", m_name, size);
return action;
}
-CpuActionPtr CpuCas01Lmm::sleep(double duration)
+ActionPtr CpuCas01Lmm::sleep(double duration)
{
if (duration > 0)
duration = MAX(duration, MAXMIN_PRECISION);
XBT_IN("(%s,%g)", m_name, duration);
- CpuCas01ActionLmmPtr action = (CpuCas01ActionLmmPtr) execute(1.0);
+ CpuCas01ActionLmmPtr action = dynamic_cast<CpuCas01ActionLmmPtr>(execute(1.0));
// FIXME: sleep variables should not consume 1.0 in lmm_expand
action->m_maxDuration = duration;
// this is necessary for a variable with weight 0 since such
// variables are ignored in lmm and we need to set its max_duration
// correctly at the next call to share_resources
- xbt_swag_insert_at_head(action, surf_cpu_model->p_modifiedSet);
+ xbt_swag_insert_at_head(static_cast<ActionLmmPtr>(action), surf_cpu_model->p_modifiedSet);
}
XBT_OUT();