Go to the documentation of this file.
28 #ifndef __SIM_WORKLOAD_HH__
29 #define __SIM_WORKLOAD_HH__
36 #include "params/Workload.hh"
60 : statistics::
Group(parent,
"inst"),
62 "number of arm instructions executed"),
64 "number of quiesce instructions executed")
108 panic(
"syscall() not implemented.");
114 warn(
"Unhandled workload event.");
130 template <
class T,
typename... Args>
133 const std::string &desc, Args... args)
140 std::forward<Args>(args)...);
147 return addFuncEvent<T>(
symtab, lbl, lbl);
150 template <
class T,
typename... Args>
155 T *
e = addFuncEvent<T>(
symtab, lbl, std::forward<Args>(args)...);
156 panic_if(!
e,
"Failed to find symbol '%s'", lbl);
164 #endif // __SIM_WORKLOAD_HH__
This is a simple scalar statistic, like a counter.
WorkloadStats(Workload *workload)
gem5::Workload::WorkloadStats stats
virtual Addr getEntry() const =0
InstStats(statistics::Group *parent)
const_iterator end() const
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.
virtual loader::Arch getArch() const =0
ThreadContext is the external interface to all thread state for anything outside of the CPU.
virtual void event(ThreadContext *tc)
T * addFuncEventOrPanic(const loader::SymbolTable &symtab, const char *lbl, Args... args)
const Params & params() const
#define ADD_STAT(n,...)
Convenience macro to add a stat to a statistics group.
std::set< ThreadContext * > threads
Abstract superclass for simulation objects.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
bool trapToGdb(int signal, ContextID ctx_id)
virtual const loader::SymbolTable & symtab(ThreadContext *tc)=0
T * addFuncEvent(const loader::SymbolTable &symtab, const char *lbl)
const_iterator find(Addr address) const
Search for a symbol by its address.
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...
void startup() override
startup() is the final initialization call before simulation.
virtual void replaceThreadContext(ThreadContext *tc)
int ContextID
Globally unique thread context ID.
statistics::Scalar quiesce
virtual Addr fixFuncEventAddr(Addr addr) const
Workload(const WorkloadParams ¶ms)
virtual void setSystem(System *sys)
virtual void registerThreadContext(ThreadContext *tc)
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
virtual bool insertSymbol(const loader::Symbol &symbol)=0
virtual void syscall(ThreadContext *tc)
#define panic(...)
This implements a cprintf based panic() function.
gem5::Workload::WorkloadStats::InstStats instStats
Generated on Wed Jul 28 2021 12:10:29 for gem5 by doxygen 1.8.17