41#ifndef __KERN_LINUX_EVENTS_HH__
42#define __KERN_LINUX_EVENTS_HH__
49#include "debug/DebugPrintf.hh"
63template <
typename ABI,
typename Base>
71 if (debug::DebugPrintf) {
76 return printk(str, tc, format_ptr, args);
78 invokeSimcall<ABI>(tc, func);
100 const std::string &_fname) :
121 const std::string &_fname) :
135template <
typename ABI,
typename Base>
156 uint64_t mult, uint64_t
div) :
169 invokeSimcall<ABI>(tc, call_udelay);
ThreadContext is the external interface to all thread state for anything outside of the CPU.
void process(ThreadContext *tc) override
Dump the guest kernel's dmesg buffer to a file in gem5's output directory and print a warning.
void process(ThreadContext *tc) override
DmesgDump(PCEventScope *s, const std::string &desc, Addr addr, const std::string &_fname)
Dump the guest kernel's dmesg buffer to a file in gem5's output directory and panic.
KernelPanic(PCEventScope *s, const std::string &desc, Addr addr, const std::string &_fname)
void process(ThreadContext *tc) override
A class to skip udelay() and related calls in the kernel.
void process(ThreadContext *tc) override
SkipUDelay(PCEventScope *s, const std::string &desc, Addr addr, uint64_t mult, uint64_t div)
uint64_t argMultToNs
Value to multiple arg by to create ns.
uint64_t argDivToNs
Value to divide arg by to create ns.
void onUDelay(ThreadContext *tc, uint64_t div, uint64_t mul, uint64_t time)
int printk(std::string &str, ThreadContext *tc, Addr format_ptr, PrintkVarArgs args)
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.