summaryrefslogtreecommitdiff
path: root/kern/system_events.cc
diff options
context:
space:
mode:
authorAli Saidi <saidi@eecs.umich.edu>2004-09-03 14:12:59 -0400
committerAli Saidi <saidi@eecs.umich.edu>2004-09-03 14:12:59 -0400
commitaf620e118709e1a5272661c94641c3adf19fa524 (patch)
tree3b8919d166664a2a3c7d6c09c919bb554d4f02c2 /kern/system_events.cc
parent8efb592e0b8a51056d75565cb970a99ef895ada5 (diff)
downloadgem5-af620e118709e1a5272661c94641c3adf19fa524.tar.xz
added system option to bin interrupt code seperately.
arch/alpha/ev5.cc: set the mode explictly rather than having a bool user/notuser cpu/simple_cpu/simple_cpu.hh: there is no class Kernel kern/kernel_stats.cc: use cpu_mode_num kern/kernel_stats.hh: add interrupt mode and use cpu_mode_num rather than constant kern/linux/linux_system.cc: kern/linux/linux_system.hh: kern/system_events.cc: kern/system_events.hh: add events to change the mode to/from interrupt sim/system.cc: sim/system.hh: add a pal symbol table --HG-- extra : convert_revision : 9d30e826b72122062a5ea12d094f94760e75c66a
Diffstat (limited to 'kern/system_events.cc')
-rw-r--r--kern/system_events.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/kern/system_events.cc b/kern/system_events.cc
index 91daf53ca..b6526d193 100644
--- a/kern/system_events.cc
+++ b/kern/system_events.cc
@@ -71,3 +71,17 @@ IdleStartEvent::process(ExecContext *xc)
{
xc->kernelStats->setIdleProcess(xc->regs.ipr[AlphaISA::IPR_PALtemp23]);
}
+
+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);
+}