fix stat name
[gem5.git] / kern / kernel_stats.hh
index 7b931ef79089840728d6e0fdf03bcec2f86eb9b7..02d78e4d9546359bfc69f918d119e70670eac1a4 100644 (file)
 #include <string>
 #include <vector>
 
+#include "cpu/static_inst.hh"
+
 class BaseCPU;
 class ExecContext;
 class FnEvent;
 // What does kernel stats expect is included?
-class StaticInstBase;
 class System;
-enum Fault;
 
 namespace Kernel {
 
@@ -105,7 +105,7 @@ class Binning
 
     cpu_mode themode;
     void palSwapContext(ExecContext *xc);
-    void execute(ExecContext *xc, const StaticInstBase *inst);
+    void execute(ExecContext *xc, StaticInstPtr inst);
     void call(ExecContext *xc, Stats::MainBin *myBin);
     void changeMode(cpu_mode mode);
 
@@ -123,6 +123,7 @@ class Binning
 
 class Statistics : public Serializable
 {
+  private:
     friend class Binning;
 
   private:
@@ -175,7 +176,13 @@ class Statistics : public Serializable
     void ivlb() { _ivlb++; }
     void ivle() { _ivle++; }
     void hwrei() { _hwrei++; }
-    void fault(Fault fault) { _faults[fault]++; }
+    void fault(Fault fault)
+    {
+            if(fault == NoFault) _faults[0]++;
+            else if(fault == MachineCheckFault) _faults[2]++;
+            else if(fault == AlignmentFault) _faults[7]++;
+            else _faults[fault->id]++;
+    }// FIXME: When there are no generic system fault objects, this will go back to _faults[fault]++; }
     void swpipl(int ipl);
     void mode(cpu_mode newmode);
     void context(Addr oldpcbb, Addr newpcbb);