-CpuCas01Lmm::CpuCas01Lmm(CpuCas01ModelPtr model, const char *name, double powerPeak,
- double powerScale, tmgr_trace_t powerTrace, int core,
- e_surf_resource_state_t stateInitial, tmgr_trace_t stateTrace,
- xbt_dict_t properties) :
- CpuLmm(model, name, properties), Resource(model, name, properties) {
- m_powerPeak = powerPeak;
- m_powerScale = powerScale;
+CpuCas01::CpuCas01(CpuCas01Model *model, const char *name, xbt_dynar_t speedPeak,
+ int pstate, double speedScale, tmgr_trace_t speedTrace, int core,
+ e_surf_resource_state_t stateInitial, tmgr_trace_t stateTrace,
+ xbt_dict_t properties)
+: Cpu(model, name, properties,
+ lmm_constraint_new(model->getMaxminSystem(), this, core * speedScale * xbt_dynar_get_as(speedPeak, pstate, double)),
+ core, xbt_dynar_get_as(speedPeak, pstate, double), speedScale,
+ stateInitial) {
+ p_speedEvent = NULL;
+
+ // Copy the power peak array:
+ p_speedPeakList = xbt_dynar_new(sizeof(double), nullptr);
+ unsigned long n = xbt_dynar_length(speedPeak);
+ for (unsigned long i = 0; i != n; ++i) {
+ double value = xbt_dynar_get_as(speedPeak, i, double);
+ xbt_dynar_push(p_speedPeakList, &value);
+ }
+
+ m_pstate = pstate;
+
+ XBT_DEBUG("CPU create: peak=%f, pstate=%d", m_speedPeak, m_pstate);
+