49 #ifndef __ABSTRACT_MEMORY_HH__
50 #define __ABSTRACT_MEMORY_HH__
53 #include "params/AbstractMemory.hh"
146 bool isLLSC = pkt->
isLLSC();
203 void init()
override;
322 #endif //__ABSTRACT_MEMORY_HH__
void functionalAccess(PacketPtr pkt)
Perform an untimed memory read or write without changing anything but the memory itself.
bool isNull() const
See if this is a null memory that should never store data and always return zero. ...
Addr start() const
Get the start address of the range.
virtual ~AbstractMemory()
ContextID contextId() const
Accessor function for context ID.
void addLockedAddr(LockedAddr addr)
Add a locked address to allow for checkpointing.
const Params * params() const
void setExtraData(uint64_t extraData)
Accessor function for store conditional return value.
bool matchesContext(Request *req) const
LockedAddr(Addr _addr, int _cid)
Locked address class that represents a physical address and a context id.
bool writeOK(PacketPtr pkt)
AbstractMemory(const AbstractMemory &)
Stats::Formula bwRead
Read bandwidth from this memory.
Stats::Vector numWrites
Number of write requests.
A vector of scalar stats.
bool isConfReported() const
Should this memory be passed to the kernel and part of the OS physical memory layout.
bool checkLockedAddrList(PacketPtr pkt)
const ContextID contextId
The AddrRange class encapsulates an address range, and supports a number of tests to check if two ran...
Stats::Vector bytesWritten
Number of bytes written to this memory.
static Addr mask(Addr paddr)
AbstractMemoryParams Params
System * system() const
read the system pointer Implemented for completeness with the setter
AddrRange getAddrRange() const
Get the address range.
void access(PacketPtr pkt)
Perform an untimed memory access and update all the state (e.g.
Stats::Vector bytesRead
Number of total bytes read from this memory.
Stats::Formula bwTotal
Total bandwidth from this memory.
const RequestPtr req
A pointer to the original request.
bool isKvmMap() const
When shadow memories are in use, KVM may want to make one or the other, but cannot map both into the ...
std::list< LockedAddr > lockedAddrList
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
uint64_t size() const
Get the memory size.
void trackLoadLocked(PacketPtr pkt)
Stats::Vector bytesInstRead
Number of instruction bytes read from this memory.
Addr start() const
Get the start address.
Stats::Vector numOther
Number of other requests.
void regStats() override
Register Statistics.
void init() override
Initialise this memory.
void setBackingStore(uint8_t *pmem_addr)
Set the host memory backing store to be used by this memory controller.
The MemObject class extends the ClockedObject with accessor functions to get its master and slave por...
System * _system
Pointor to the System object.
const SimObjectParams * _params
Cached copy of the object parameters.
An abstract memory represents a contiguous block of physical memory, with an associated address range...
bool isInAddrMap() const
Some memories are used as shadow memories or should for other reasons not be part of the global addre...
AbstractMemory & operator=(const AbstractMemory &)
void system(System *sys)
Set the system pointer on this memory This can't be done via a python parameter because the system ne...
Stats::Formula bwWrite
Write bandwidth from this memory.
const std::list< LockedAddr > & getLockedAddrList() const
Get the list of locked addresses to allow checkpointing.
Stats::Formula bwInstRead
Read bandwidth from this memory.
Addr size() const
Get the size of the address range.
int ContextID
Globally unique thread context ID.
const bool confTableReported
Stats::Vector numReads
Number of read requests.
static const Addr Addr_Mask