28 #ifndef __SIM_KERNEL_WORKLOAD_HH__ 29 #define __SIM_KERNEL_WORKLOAD_HH__ 37 #include "params/KernelWorkload.hh" 103 return kernelSymtab->
insert(symbol);
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);
144 #endif // __SIM_KERNEL_WORKLOAD_HH__ bool insertSymbol(const Loader::Symbol &symbol) override
Loader::SymbolTable * kernelSymtab
KernelWorkloadParams Params
std::vector< Loader::ObjectFile * > extras
void unserialize(CheckpointIn &cp) override
Unserialize an object.
T * addKernelFuncEvent(const char *lbl, Args... args)
Add a function-based event to a kernel symbol.
const Params & params() const
ThreadContext is the external interface to all thread state for anything outside of the CPU...
Addr _loadAddrMask
Mask that should be anded for binary/symbol loading.
Loader::ObjectFile * kernelObj
Loader::MemoryImage image
void initState() override
initState() is called on each SimObject when not restoring from a checkpoint.
bool insert(const Symbol &symbol)
const std::string commandLine
Addr loadAddrMask() const
const Loader::SymbolTable * symtab(ThreadContext *tc) override
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,16,32,64}_t.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
T * addKernelFuncEventOrPanic(const char *lbl, Args... args)
void serialize(CheckpointOut &cp) const override
Serialize an object.
std::ostream CheckpointOut
Addr loadAddrOffset() const
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...
Addr _loadAddrOffset
Offset that should be used for binary/symbol loading.
KernelWorkload(const Params &p)
Addr getEntry() const override
Loader::Arch getArch() const override