sim, arch, base: Refactor the base remote GDB class.
[gem5.git] / src / sim / sub_system.cc
index 771590cf71c2de4310a0b8357b7632576cf8b368..2ccdc6bddc04d2eb2f27bbc4525d941787f8c2d5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014 ARM Limited
+ * Copyright (c) 2014-2016 ARM Limited
  * All rights reserved
  *
  * The license below extends only to copyright in the software and shall
  * Authors: Geoffrey Blake
  */
 
-#include "params/SubSystem.hh"
 #include "sim/sub_system.hh"
+
+#include "params/SubSystem.hh"
+#include "sim/power/power_model.hh"
 #include "sim/power/thermal_domain.hh"
 
 SubSystem::SubSystem(const Params *p)
@@ -49,6 +51,24 @@ SubSystem::SubSystem(const Params *p)
         p->thermal_domain->setSubSystem(this);
 }
 
+double
+SubSystem::getDynamicPower() const
+{
+    double ret = 0.0f;
+    for (auto &obj: powerProducers)
+        ret += obj->getDynamicPower();
+    return ret;
+}
+
+double
+SubSystem::getStaticPower() const
+{
+    double ret = 0.0f;
+    for (auto &obj: powerProducers)
+        ret += obj->getStaticPower();
+    return ret;
+}
+
 SubSystem *
 SubSystemParams::create()
 {