Automated merge with ssh://repo.gem5.org/gem5
[gem5.git] / src / sim / stat_control.cc
index 83861c18599565bc54a19f9351316691e0bc2316..7cf77174f176480c6b968005d2396d2fe4c6fe80 100644 (file)
@@ -39,7 +39,6 @@
 #include "base/hostinfo.hh"
 #include "base/statistics.hh"
 #include "base/time.hh"
-
 #include "config/the_isa.hh"
 #if THE_ISA == NO_ISA
 #include "arch/noisa/cpu_dummy.hh"
@@ -48,6 +47,7 @@
 #endif
 
 #include "sim/eventq.hh"
+#include "sim/stat_control.hh"
 
 using namespace std;
 
@@ -64,23 +64,25 @@ struct SimTicksReset : public Callback
 {
     void process()
     {
-        statTime.set();
-        startTick = curTick;
+        statTime.setTimer();
+        startTick = curTick();
     }
 };
 
 double
 statElapsedTime()
 {
-    Time now(true);
+    Time now;
+    now.setTimer();
+
     Time elapsed = now - statTime;
-    return elapsed();
+    return elapsed;
 }
 
 Tick
 statElapsedTicks()
 {
-    return curTick - startTick;
+    return curTick() - startTick;
 }
 
 SimTicksReset simTicksReset;
@@ -164,7 +166,7 @@ initSimStats()
     static Global global;
 }
 
-class _StatEvent : public Event
+class StatEvent : public Event
 {
   private:
     bool dump;
@@ -172,10 +174,10 @@ class _StatEvent : public Event
     Tick repeat;
 
   public:
-    _StatEvent(bool _dump, bool _reset, Tick _repeat)
-        : Event(Stat_Event_Pri), dump(_dump), reset(_reset), repeat(_repeat)
+    StatEvent(bool _dump, bool _reset, Tick _repeat)
+        : Event(Stat_Event_Pri, AutoDelete),
+          dump(_dump), reset(_reset), repeat(_repeat)
     {
-        setFlags(AutoDelete);
     }
 
     virtual void
@@ -188,16 +190,15 @@ class _StatEvent : public Event
             Stats::reset();
 
         if (repeat) {
-            Event *event = new _StatEvent(dump, reset, repeat);
-            mainEventQueue.schedule(event, curTick + repeat);
+            Stats::schedStatEvent(dump, reset, curTick() + repeat, repeat);
         }
     }
 };
 
 void
-StatEvent(bool dump, bool reset, Tick when, Tick repeat)
+schedStatEvent(bool dump, bool reset, Tick when, Tick repeat)
 {
-    Event *event = new _StatEvent(dump, reset, repeat);
+    Event *event = new StatEvent(dump, reset, repeat);
     mainEventQueue.schedule(event, when);
 }