41#ifndef __KERN_LINUX_EVENTS_HH__
42#define __KERN_LINUX_EVENTS_HH__
49#include "debug/DebugPrintf.hh"
50#include "enums/KernelPanicOopsBehaviour.hh"
64template <
typename ABI,
typename Base>
72 if (debug::DebugPrintf) {
77 return printk(str, tc, format_ptr, args);
101 const std::string &_fname,
102 const KernelPanicOopsBehaviour _behaviour)
118template <
typename ABI,
typename Base>
139 uint64_t mult, uint64_t
div) :
ThreadContext is the external interface to all thread state for anything outside of the CPU.
void process(ThreadContext *tc) override
Specify what to do on a Linux Kernel Panic or Oops.
PanicOrOopsEvent(PCEventScope *s, const std::string &desc, Addr addr, const std::string &_fname, const KernelPanicOopsBehaviour _behaviour)
KernelPanicOopsBehaviour behaviour
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)
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Ret invokeSimcall(ThreadContext *tc, std::function< Ret(ThreadContext *, Args...)> target)