Merge zizzer.eecs.umich.edu:/bk/m5
[gem5.git] / kern / system_events.cc
index 91daf53ca4e80339cfabf9ade0174d0f609e3a80..eb21afcd1dce3dc89fe91308a3b25d6b55de9b26 100644 (file)
@@ -27,9 +27,9 @@
  */
 
 #include "cpu/exec_context.hh"
-#include "cpu/base_cpu.hh"
-#include "cpu/full_cpu/bpred.hh"
-#include "cpu/full_cpu/full_cpu.hh"
+#include "cpu/base.hh"
+#include "encumbered/cpu/full/bpred.hh"
+#include "encumbered/cpu/full/cpu.hh"
 #include "kern/kernel_stats.hh"
 #include "kern/system_events.hh"
 #include "sim/system.hh"
@@ -70,4 +70,19 @@ void
 IdleStartEvent::process(ExecContext *xc)
 {
     xc->kernelStats->setIdleProcess(xc->regs.ipr[AlphaISA::IPR_PALtemp23]);
+    remove();
+}
+
+void
+InterruptStartEvent::process(ExecContext *xc)
+{
+    xc->kernelStats->mode(Kernel::interrupt);
+}
+
+void
+InterruptEndEvent::process(ExecContext *xc)
+{
+    // We go back to kernel, if we are user, inside the rti
+    // pal code we will get switched to user because of the ICM write
+    xc->kernelStats->mode(Kernel::kernel);
 }