summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--SConscript1
-rw-r--r--kern/linux/linux_system.cc14
-rw-r--r--kern/linux/printk.cc1
3 files changed, 12 insertions, 4 deletions
diff --git a/SConscript b/SConscript
index d1f4bc0b7..60e703e9b 100644
--- a/SConscript
+++ b/SConscript
@@ -259,6 +259,7 @@ full_system_sources = Split('''
kern/linux/linux_events.cc
kern/linux/linux_syscalls.cc
kern/linux/linux_system.cc
+ kern/linux/printk.cc
kern/tru64/dump_mbuf.cc
kern/tru64/printf.cc
kern/tru64/tru64_events.cc
diff --git a/kern/linux/linux_system.cc b/kern/linux/linux_system.cc
index ab1355637..bc2753908 100644
--- a/kern/linux/linux_system.cc
+++ b/kern/linux/linux_system.cc
@@ -28,10 +28,11 @@
/**
* @file
- * loads the linux kernel, console, pal and patches certain functions.
- * The symbol tables are loaded so that traces can show the executing
- * function and we can skip functions. Various delay loops are skipped
- * and their final values manually computed to speed up boot time.
+ * This code loads the linux kernel, console, pal and patches certain
+ * functions. The symbol tables are loaded so that traces can show
+ * the executing function and we can skip functions. Various delay
+ * loops are skipped and their final values manually computed to speed
+ * up boot time.
*/
#include "base/loader/aout_object.hh"
@@ -129,6 +130,8 @@ LinuxSystem::LinuxSystem(const string _name, const uint64_t _init_param,
skipCacheProbeEvent = new SkipFuncEvent(&pcEventQueue,
"determine_cpu_caches");
+ debugPrintkEvent = new DebugPrintkEvent(&pcEventQueue, "dprintk");
+
Addr addr = 0;
/**
@@ -236,6 +239,9 @@ LinuxSystem::LinuxSystem(const string _name, const uint64_t _init_param,
if (kernelSymtab->findAddress("determine_cpu_caches", addr))
skipCacheProbeEvent->schedule(addr+sizeof(MachInst));
+
+ if (kernelSymtab->findAddress("dprintk", addr))
+ debugPrintkEvent->schedule(addr+sizeof(MachInst)*2);
}
LinuxSystem::~LinuxSystem()
diff --git a/kern/linux/printk.cc b/kern/linux/printk.cc
index 5aaa7abe2..fc7c171bc 100644
--- a/kern/linux/printk.cc
+++ b/kern/linux/printk.cc
@@ -34,6 +34,7 @@
#include "sim/host.hh"
#include "targetarch/arguments.hh"
#include "targetarch/vtophys.hh"
+#include "kern/linux/printk.hh"
using namespace std;