28#ifndef __SIM_KERNEL_WORKLOAD_HH__
29#define __SIM_KERNEL_WORKLOAD_HH__
37#include "params/KernelWorkload.hh"
126 template <
class T,
typename... Args>
133 template <
class T,
typename... Args>
138 panic_if(!
e,
"Failed to find kernel symbol '%s'", lbl);
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,...
loader::SymbolTable kernelSymtab
const std::string commandLine
void serialize(CheckpointOut &cp) const override
Serialize an object.
loader::Arch getArch() const override
const loader::SymbolTable & symtab(ThreadContext *tc) override
Addr loadAddrMask() const
ByteOrder byteOrder() const override
void initState() override
initState() is called on each SimObject when not restoring from a checkpoint.
loader::ObjectFile * kernelObj
void unserialize(CheckpointIn &cp) override
Unserialize an object.
bool insertSymbol(const loader::Symbol &symbol) override
T * addKernelFuncEventOrPanic(const char *lbl, Args... args)
T * addKernelFuncEvent(const char *lbl, Args... args)
Add a function-based event to a kernel symbol.
Addr _loadAddrOffset
Offset that should be used for binary/symbol loading.
Addr _loadAddrMask
Mask that should be anded for binary/symbol loading.
loader::MemoryImage image
Addr loadAddrOffset() const
KernelWorkload(const Params &p)
std::vector< loader::ObjectFile * > extras
Addr getEntry() const override
ThreadContext is the external interface to all thread state for anything outside of the CPU.
T * addFuncEvent(const loader::SymbolTable &symtab, const char *lbl, const std::string &desc, Args... args)
Add a function-based event to the given function, to be looked up in the specified symbol table.
ByteOrder getByteOrder() const
bool insert(const Symbol &symbol)
Insert a new symbol in the table if it does not already exist.
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
std::ostream CheckpointOut
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.