28#ifndef __SIM_KERNEL_WORKLOAD_HH__
29#define __SIM_KERNEL_WORKLOAD_HH__
37#include "params/KernelWorkload.hh"
126 template <
class T,
typename... Args>
130 return addFuncEvent<T>(
kernelSymtab, lbl, std::forward<Args>(args)...);
133 template <
class T,
typename... Args>
137 T *
e = addFuncEvent<T>(
kernelSymtab, lbl, std::forward<Args>(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
std::vector< loader::ObjectFile * > extras
Addr getEntry() const override
ThreadContext is the external interface to all thread state for anything outside of the CPU.
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 Arm Limited All rights reserved.
std::ostream CheckpointOut
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.