summaryrefslogtreecommitdiff
path: root/src/cpu/pc_event.cc
diff options
context:
space:
mode:
authorAndreas Sandberg <Andreas.Sandberg@ARM.com>2013-04-22 13:20:31 -0400
committerAndreas Sandberg <Andreas.Sandberg@ARM.com>2013-04-22 13:20:31 -0400
commit5f2361f3afb5c8d15e0a5f262a0f8a7942084563 (patch)
tree7f8fc4f091569baeb0de62e3f081c28534aa6110 /src/cpu/pc_event.cc
parente8381142b061fbdf2f22d958f1c7559e9ffb3bd8 (diff)
downloadgem5-5f2361f3afb5c8d15e0a5f262a0f8a7942084563.tar.xz
arm: Enable support for triggering a sim panic on kernel panics
Add the options 'panic_on_panic' and 'panic_on_oops' to the LinuxArmSystem SimObject. When these option are enabled, the simulator panics when the guest kernel panics or oopses. Enable panic on panic and panic on oops in ARM-based test cases.
Diffstat (limited to 'src/cpu/pc_event.cc')
-rw-r--r--src/cpu/pc_event.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/cpu/pc_event.cc b/src/cpu/pc_event.cc
index c957fe4d5..837b17e34 100644
--- a/src/cpu/pc_event.cc
+++ b/src/cpu/pc_event.cc
@@ -158,3 +158,15 @@ sched_break_pc(Addr addr)
}
}
+
+PanicPCEvent::PanicPCEvent(PCEventQueue *q, const std::string &desc, Addr pc)
+ : PCEvent(q, desc, pc)
+{
+}
+
+void
+PanicPCEvent::process(ThreadContext *tc)
+{
+ StringWrap name(tc->getCpuPtr()->name() + ".panic_event");
+ panic(descr());
+}