summaryrefslogtreecommitdiff
path: root/src/arch/arm/ArmSystem.py
diff options
context:
space:
mode:
authorAndreas Sandberg <andreas.sandberg@arm.com>2016-06-20 14:39:49 +0100
committerAndreas Sandberg <andreas.sandberg@arm.com>2016-06-20 14:39:49 +0100
commit37bb0d0fb30a3548173253b0f19861a7ee4f8fce (patch)
treeee2e89b4a804e4bcaca76c0f38a359c1f5bab3c0 /src/arch/arm/ArmSystem.py
parent60fb5e79f358b7d0784e4cfae4df9ec196e47f19 (diff)
downloadgem5-37bb0d0fb30a3548173253b0f19861a7ee4f8fce.tar.xz
kern, arm: Dump dmesg on kernel panic/oops
Add helper functions to dump the guest kernel's dmesg buffer to a text file in m5out. This functionality is split into two parts. First, a dmesg dump function that can be used in other places: void Linux::dumpDmesg(ThreadContext *, std::ostream &) This function is used to implement two PCEvents: DmesgDumpEvent and KernelPanic event. The only difference between the two is that the latter produces a gem5 panic instead of a warning in addition to dumping the kernel log. Change-Id: I6d2af1d666ace57124089648ea906f6c787ac63c Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Gabor Dozsa <gabor.dozsa@arm.com>
Diffstat (limited to 'src/arch/arm/ArmSystem.py')
-rw-r--r--src/arch/arm/ArmSystem.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/arch/arm/ArmSystem.py b/src/arch/arm/ArmSystem.py
index adbf2093e..ac04a56e4 100644
--- a/src/arch/arm/ArmSystem.py
+++ b/src/arch/arm/ArmSystem.py
@@ -98,6 +98,14 @@ class LinuxArmSystem(GenericArmSystem):
type = 'LinuxArmSystem'
cxx_header = "arch/arm/linux/system.hh"
+ @classmethod
+ def export_method_cxx_predecls(cls, code):
+ code('#include "arch/arm/linux/system.hh"')
+
+ @classmethod
+ def export_methods(cls, code):
+ code('''void dumpDmesg();''')
+
class FreebsdArmSystem(GenericArmSystem):
type = 'FreebsdArmSystem'
cxx_header = "arch/arm/freebsd/system.hh"