X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/242fde5e8077f8193db4df5f262a9672085c8d8a..6270ece7967b322385bbff766ee5f882ba1ef2a2:/src/surf/cpu_interface.cpp diff --git a/src/surf/cpu_interface.cpp b/src/surf/cpu_interface.cpp index 23929b021b..0513ad6517 100644 --- a/src/surf/cpu_interface.cpp +++ b/src/surf/cpu_interface.cpp @@ -1,10 +1,11 @@ -/* Copyright (c) 2013-2014. The SimGrid Team. +/* Copyright (c) 2013-2015. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ #include "cpu_interface.hpp" +#include "plugins/energy.hpp" XBT_LOG_EXTERNAL_CATEGORY(surf_kernel); XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_cpu, surf, @@ -30,19 +31,6 @@ surf_callback(void, Cpu*) cpuDestructedCallbacks; surf_callback(void, Cpu*, e_surf_resource_state_t, e_surf_resource_state_t) cpuStateChangedCallbacks; surf_callback(void, CpuAction*, e_surf_action_state_t, e_surf_action_state_t) cpuActionStateChangedCallbacks; -void cpu_parse_init(sg_platf_host_cbarg_t host){ - surf_cpu_model_pm->createCpu( - host->id, - host->power_peak, - host->pstate, - host->power_scale, - host->power_trace, - host->core_amount, - host->initial_state, - host->state_trace, - host->properties); -} - void cpu_add_traces(){ surf_cpu_model_pm->addTraces(); } @@ -142,29 +130,30 @@ void CpuModel::updateActionsStateFull(double now, double delta) ************/ Cpu::Cpu(){ - surf_callback_emit(cpuCreatedCallbacks, this); } + Cpu::Cpu(Model *model, const char *name, xbt_dict_t props, - int core, double powerPeak, double powerScale) - : Resource(model, name, props) + int core, double powerPeak, double powerScale, + e_surf_resource_state_t stateInitial) + : Resource(model, name, props, stateInitial) , m_core(core) , m_powerPeak(powerPeak) , m_powerScale(powerScale) , p_constraintCore(NULL) , p_constraintCoreId(NULL) { - surf_callback_emit(cpuCreatedCallbacks, this); + } Cpu::Cpu(Model *model, const char *name, xbt_dict_t props, - lmm_constraint_t constraint, int core, double powerPeak, double powerScale) - : Resource(model, name, props, constraint) + lmm_constraint_t constraint, int core, double powerPeak, + double powerScale, e_surf_resource_state_t stateInitial) + : Resource(model, name, props, constraint, stateInitial) , m_core(core) , m_powerPeak(powerPeak) , m_powerScale(powerScale) { - surf_callback_emit(cpuCreatedCallbacks, this); /* At now, we assume that a VM does not have a multicore CPU. */ if (core > 1) xbt_assert(model == surf_cpu_model_pm); @@ -184,6 +173,16 @@ Cpu::Cpu(Model *model, const char *name, xbt_dict_t props, } } +Cpu::Cpu(Model *model, const char *name, xbt_dict_t props, + lmm_constraint_t constraint, int core, double powerPeak, double powerScale) +: Cpu(model, name, props, constraint, core, powerPeak, powerScale, SURF_RESOURCE_ON) +{} + +Cpu::Cpu(Model *model, const char *name, xbt_dict_t props, + int core, double powerPeak, double powerScale) +: Cpu(model, name, props, core, powerPeak, powerScale, SURF_RESOURCE_ON) +{} + Cpu::~Cpu(){ surf_callback_emit(cpuDestructedCallbacks, this); if (p_constraintCoreId){ @@ -223,6 +222,7 @@ void Cpu::setState(e_surf_resource_state_t state) Resource::setState(state); surf_callback_emit(cpuStateChangedCallbacks, this, old, state); } + /********** * Action * **********/