ARM: Implement WFE/WFI/SEV semantics.
[gem5.git] / src / base / debug.hh
index ced6b4f488402130b84e6d8c87228a1795347873..d43117e71e7dffca39cc417a954faad025e9db17 100644 (file)
@@ -44,6 +44,7 @@ class Flag
   protected:
     const char *_name;
     const char *_desc;
+    std::vector<Flag *> _kids;
 
   public:
     Flag(const char *name, const char *desc);
@@ -51,6 +52,7 @@ class Flag
 
     std::string name() const { return _name; }
     std::string desc() const { return _desc; }
+    std::vector<Flag *> kids() { return _kids; }
 
     virtual void enable() = 0;
     virtual void disable() = 0;
@@ -77,7 +79,12 @@ class SimpleFlag : public Flag
 class CompoundFlag : public SimpleFlag
 {
   protected:
-    std::vector<Flag *> flags;
+    void
+    addFlag(Flag &f)
+    {
+        if (&f != NULL)
+            _kids.push_back(&f);
+    }
 
   public:
     CompoundFlag(const char *name, const char *desc,
@@ -99,13 +106,6 @@ class CompoundFlag : public SimpleFlag
         addFlag(f15); addFlag(f16); addFlag(f17); addFlag(f18); addFlag(f19);
     }
 
-    void
-    addFlag(Flag &f)
-    {
-        if (&f != NULL)
-            flags.push_back(&f);
-    }
-
     void enable();
     void disable();
 };