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