/*
- * Copyright (c) 2012-2014 ARM Limited
+ * Copyright (c) 2012-2014, 2019 ARM Limited
* All rights reserved
*
* The license below extends only to copyright in the software and shall
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * Authors: Vasileios Spiliopoulos
- * Akash Bagdia
*/
#include "sim/voltage_domain.hh"
#include <algorithm>
#include "base/statistics.hh"
+#include "base/trace.hh"
#include "debug/VoltageDomain.hh"
#include "params/VoltageDomain.hh"
#include "sim/sim_object.hh"
VoltageDomain::VoltageDomain(const Params *p)
- : SimObject(p), voltageOpPoints(p->voltage), _perfLevel(0)
+ : SimObject(p), voltageOpPoints(p->voltage), _perfLevel(0), stats(*this)
{
fatal_if(voltageOpPoints.empty(), "DVFS: Empty set of voltages for "\
"voltage domain %s\n", name());
}
}
-void
-VoltageDomain::regStats()
-{
- SimObject::regStats();
-
- currentVoltage
- .method(this, &VoltageDomain::voltage)
- .name(params()->name + ".voltage")
- .desc("Voltage in Volts")
- ;
-}
-
VoltageDomain *
VoltageDomainParams::create()
{
UNSERIALIZE_SCALAR(_perfLevel);
perfLevel(_perfLevel);
}
+
+VoltageDomain::VoltageDomainStats::VoltageDomainStats(VoltageDomain &vd)
+ : Stats::Group(&vd),
+ ADD_STAT(voltage, "Voltage in Volts")
+{
+ voltage.method(&vd, &VoltageDomain::voltage);
+}