diff options
Diffstat (limited to 'kern/linux/linux_system.cc')
-rw-r--r-- | kern/linux/linux_system.cc | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/kern/linux/linux_system.cc b/kern/linux/linux_system.cc index 70f5fb783..bc2753908 100644 --- a/kern/linux/linux_system.cc +++ b/kern/linux/linux_system.cc @@ -28,10 +28,11 @@ /** * @file - * linux_system.cc 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" @@ -121,13 +122,15 @@ LinuxSystem::LinuxSystem(const string _name, const uint64_t _init_param, #endif skipIdeDelay50msEvent = new SkipFuncEvent(&pcEventQueue, - "ide_delay_50ms"); + "ide_delay_50ms"); skipDelayLoopEvent = new LinuxSkipDelayLoopEvent(&pcEventQueue, "calibrate_delay"); skipCacheProbeEvent = new SkipFuncEvent(&pcEventQueue, - "determine_cpu_caches"); + "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() |