40 #ifndef __MEM_ADDR_MAPPER_HH__
41 #define __MEM_ADDR_MAPPER_HH__
44 #include "params/AddrMapper.hh"
45 #include "params/RangeAddrMapper.hh"
273 #endif //__MEM_ADDR_MAPPER_HH__
A MasterPort is a specialisation of a BaseMasterPort, which implements the default protocol for the t...
MapperMasterPort masterPort
Instance of master port, facing the memory side.
Tick recvAtomic(PacketPtr pkt)
Receive an atomic request packet from the master port.
AddrMapper(const AddrMapperParams *params)
void recvFunctionalSnoop(PacketPtr pkt)
Receive a functional snoop request packet from the slave port.
Addr origAddr
The original address the packet was destined for.
void recvRangeChange()
Called to receive an address range change from the peer slave port.
Tick recvAtomicSnoop(PacketPtr pkt)
void recvTimingSnoopReq(PacketPtr pkt)
~AddrMapperSenderState()
Destructor.
MapperSlavePort slavePort
Instance of slave port, i.e.
const PortID InvalidPortID
bool recvTimingResp(PacketPtr pkt)
Receive a timing response from the slave port.
void recvRespRetry()
Called by the master port if sendTimingResp was called on this slave port (causing recvTimingResp to ...
const Params * params() const
A SlavePort is a specialisation of a port.
AddrRangeList getAddrRanges() const
A BaseSlavePort is a protocol-agnostic slave port, responsible only for the structural connection to ...
MapperSlavePort(const std::string &_name, AddrMapper &_mapper)
bool recvTimingSnoopResp(PacketPtr pkt)
Receive a timing snoop response from the master port.
std::vector< AddrRange > originalRanges
This contains a list of ranges the should be remapped.
virtual void init()
init() is called after all C++ SimObjects have been created and all ports are connected.
RangeAddrMapper(const RangeAddrMapperParams *p)
void recvReqRetry()
Called by the slave port if sendTimingReq was called on this master port (causing recvTimingReq to be...
uint64_t Tick
Tick count type.
void recvFunctional(PacketPtr pkt)
Tick recvAtomicSnoop(PacketPtr pkt)
Receive an atomic snoop request packet from the slave port.
virtual AddrRangeList getAddrRanges() const =0
bool recvTimingReq(PacketPtr pkt)
virtual Addr remapAddr(Addr addr) const =0
This function does the actual remapping of one address to another.
bool recvTimingResp(PacketPtr pkt)
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...
bool recvTimingSnoopResp(PacketPtr pkt)
A virtual base opaque structure used to hold state associated with the packet (e.g., an MSHR), specific to a MemObject that sees the packet.
bool isSnooping() const
Determine if this master port is snooping or not.
AddrRangeList getAddrRanges() const
Get a list of the non-overlapping address ranges the owner is responsible for.
Addr remapAddr(Addr addr) const
This function does the actual remapping of one address to another.
MapperMasterPort(const std::string &_name, AddrMapper &_mapper)
An address mapper changes the packet addresses in going from the slave port side of the mapper to the...
void recvTimingSnoopReq(PacketPtr pkt)
Receive a timing snoop request from the slave port.
Tick recvAtomic(PacketPtr pkt)
The MemObject class extends the ClockedObject with accessor functions to get its master and slave por...
A BaseMasterPort is a protocol-agnostic master port, responsible only for the structural connection t...
Range address mapper that maps a set of original ranges to a set of remapped ranges, where a specific range is of the same size (original and remapped), only with an offset.
AddrMapperSenderState(Addr _origAddr)
Construct a new sender state to remember the original address.
void recvFunctional(PacketPtr pkt)
Receive a functional request packet from the master port.
virtual BaseMasterPort & getMasterPort(const std::string &if_name, PortID idx=InvalidPortID)
Get a master port with a given name and index.
void recvFunctionalSnoop(PacketPtr pkt)
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
virtual BaseSlavePort & getSlavePort(const std::string &if_name, PortID idx=InvalidPortID)
Get a slave port with a given name and index.
bool recvTimingReq(PacketPtr pkt)
Receive a timing request from the master port.
std::vector< AddrRange > remappedRanges
This contains a list of ranges that addresses should be remapped to.