diff options
author | Ali Saidi <saidi@eecs.umich.edu> | 2004-09-03 14:12:59 -0400 |
---|---|---|
committer | Ali Saidi <saidi@eecs.umich.edu> | 2004-09-03 14:12:59 -0400 |
commit | af620e118709e1a5272661c94641c3adf19fa524 (patch) | |
tree | 3b8919d166664a2a3c7d6c09c919bb554d4f02c2 /kern/system_events.cc | |
parent | 8efb592e0b8a51056d75565cb970a99ef895ada5 (diff) | |
download | gem5-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.cc | 14 |
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); +} |