31 #include "params/SEWorkload.hh"
39 Workload(
p), memPools(page_shift)
43 SEWorkload::setSystem(System *sys)
45 Workload::setSystem(sys);
47 AddrRangeList memories = sys->getPhysMem().getConfAddrRanges();
48 const auto &m5op_range = sys->m5opRange();
50 if (m5op_range.valid())
51 memories -= m5op_range;
53 memPools.populate(memories);
59 memPools.serialize(cp);
65 memPools.unserialize(cp);
75 SEWorkload::allocPhysPages(
int npages,
int pool_id)
77 return memPools.allocPhysPages(npages, pool_id);
81 SEWorkload::memSize(
int pool_id)
const
83 return memPools.memSize(pool_id);
87 SEWorkload::freeMemSize(
int pool_id)
const
89 return memPools.freeMemSize(pool_id);
SEWorkload(const Params &p, Addr page_shift)
virtual void syscall(ThreadContext *tc)
ThreadContext is the external interface to all thread state for anything outside of the CPU.
virtual Process * getProcessPtr()=0
std::list< AddrRange > AddrRangeList
Convenience typedef for a collection of address ranges.
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
std::ostream CheckpointOut
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
void unserialize(ThreadContext &tc, CheckpointIn &cp)
void serialize(const ThreadContext &tc, CheckpointOut &cp)
Thread context serialization helpers.