Go to the documentation of this file.
38 #ifndef __MEM_ADDR_MAPPER_HH__
39 #define __MEM_ADDR_MAPPER_HH__
42 #include "params/AddrMapper.hh"
43 #include "params/RangeAddrMapper.hh"
269 #endif //__MEM_ADDR_MAPPER_HH__
bool recvTimingSnoopResp(PacketPtr pkt)
std::vector< AddrRange > remappedRanges
This contains a list of ranges that addresses should be remapped to.
A ResponsePort is a specialization of a port.
void recvFunctional(PacketPtr pkt)
Receive a functional request packet from the peer.
Addr remapAddr(Addr addr) const
This function does the actual remapping of one address to another.
bool recvTimingReq(PacketPtr pkt)
bool recvTimingSnoopResp(PacketPtr pkt)
Receive a timing snoop response from the peer.
virtual Addr remapAddr(Addr addr) const =0
This function does the actual remapping of one address to another.
const PortID InvalidPortID
bool recvTimingResp(PacketPtr pkt)
bool isSnooping() const
Determine if this request port is snooping or not.
Tick recvAtomic(PacketPtr pkt)
Receive an atomic request packet from the peer.
~AddrMapperSenderState()
Destructor.
void recvTimingSnoopReq(PacketPtr pkt)
Receive a timing snoop request from the peer.
void recvFunctionalSnoop(PacketPtr pkt)
uint64_t Tick
Tick count type.
An address mapper changes the packet addresses in going from the response port side of the mapper to ...
void init() override
init() is called after all C++ SimObjects have been created and all ports are connected.
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
Tick recvAtomicSnoop(PacketPtr pkt)
Receive an atomic snoop request packet from our peer.
bool recvTimingResp(PacketPtr pkt)
Receive a timing response from the peer.
std::vector< AddrRange > originalRanges
This contains a list of ranges the should be remapped.
Tick recvAtomic(PacketPtr pkt)
AddrRangeList getAddrRanges() const
Get a list of the non-overlapping address ranges the owner is responsible for.
void recvFunctionalSnoop(PacketPtr pkt)
Receive a functional snoop request packet from the peer.
Tick recvAtomicSnoop(PacketPtr pkt)
A virtual base opaque structure used to hold state associated with the packet (e.g....
void recvTimingSnoopReq(PacketPtr pkt)
Ports are used to interface objects to each other.
MapperResponsePort(const std::string &_name, AddrMapper &_mapper)
AddrRangeList getAddrRanges() const
void recvReqRetry()
Called by the peer if sendTimingReq was called on this peer (causing recvTimingReq to be called on th...
A RequestPort is a specialisation of a Port, which implements the default protocol for the three diff...
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
const Params * params() const
AddrMapper(const AddrMapperParams *params)
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port with a given name and index.
MapperResponsePort cpuSidePort
Instance of response port, i.e.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
MapperRequestPort memSidePort
Instance of request port, facing the memory side.
virtual AddrRangeList getAddrRanges() const =0
void recvRangeChange()
Called to receive an address range change from the peer response port.
Range address mapper that maps a set of original ranges to a set of remapped ranges,...
MapperRequestPort(const std::string &_name, AddrMapper &_mapper)
RangeAddrMapper(const RangeAddrMapperParams *p)
void recvFunctional(PacketPtr pkt)
Addr origAddr
The original address the packet was destined for.
void recvRespRetry()
Called by the peer if sendTimingResp was called on this protocol (causing recvTimingResp to be called...
bool recvTimingReq(PacketPtr pkt)
Receive a timing request from the peer.
AddrMapperSenderState(Addr _origAddr)
Construct a new sender state to remember the original address.
Abstract superclass for simulation objects.
Generated on Wed Sep 30 2020 14:02:12 for gem5 by doxygen 1.8.17