sim, arch, base: Refactor the base remote GDB class.
[gem5.git] / src / sim / sub_system.hh
index 6e35be676926ca40df1b0f7424f5633cc374e9de..e2e75be5264a350face59b2510160bfaef29f6d3 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
 #ifndef __SIM_SUB_SYSTEM_HH__
 #define __SIM_SUB_SYSTEM_HH__
 
+#include <vector>
+
 #include "params/SubSystem.hh"
-#include "sim/power/thermal_domain.hh"
 #include "sim/sim_object.hh"
 
+class PowerModel;
+
 /**
  * The SubSystem simobject does nothing, it is just a container for
  * other simobjects used by the configuration system
@@ -58,6 +61,17 @@ class SubSystem : public SimObject
   public:
     typedef SubSystemParams Params;
     SubSystem(const Params *p);
+
+    double getDynamicPower() const;
+
+    double getStaticPower() const;
+
+    void registerPowerProducer(PowerModel *pm) {
+        powerProducers.push_back(pm);
+    }
+
+  protected:
+    std::vector<PowerModel*> powerProducers;
 };
 
 #endif