- // Copy the power peak array:
- p_speedPeakList = xbt_dynar_new(sizeof(double), nullptr);
- unsigned long n = xbt_dynar_length(speedPeakList);
- for (unsigned long i = 0; i != n; ++i) {
- double value = xbt_dynar_get_as(speedPeakList, i, double);
- xbt_dynar_push(p_speedPeakList, &value);
- }
-
- m_pstate = pstate;
-}
-
-Cpu::Cpu(Model *model, simgrid::Host *host, lmm_constraint_t constraint,
- xbt_dynar_t speedPeakList, int pstate,
- int core, double speedPeak,
- double speedScale, e_surf_resource_state_t stateInitial)
- : Resource(model, host->getName().c_str(), constraint, stateInitial)
- , m_core(core)
- , m_speedPeak(speedPeak)
- , m_speedScale(speedScale)
- , m_host(host)
-{
- host->extension_set(Cpu::EXTENSION_ID, this);
+ speed_.peak = xbt_dynar_get_as(speedPerPstate, 0/*pstate*/, double);
+ speed_.scale = 1;
+ host->pimpl_cpu = this;
+ xbt_assert(speed_.scale > 0, "Speed of host %s must be >0", host->name().c_str());