40 #ifndef __MEM_QPORT_HH__
41 #define __MEM_QPORT_HH__
169 #endif // __MEM_QPORT_HH__
A MasterPort is a specialisation of a BaseMasterPort, which implements the default protocol for the t...
MemObject & owner
A reference to the MemObject that owns this port.
void retry()
Retry sending a packet from the queue.
Declaration of a simple PacketQueue that is associated with a port on which it attempts to send packe...
QueuedMasterPort(const std::string &name, MemObject *owner, ReqPacketQueue &req_queue, SnoopRespPacketQueue &snoop_resp_queue, PortID id=InvalidPortID)
Create a QueuedPort with a given name, owner, and a supplied implementation of two packet queues...
void schedSendTiming(PacketPtr pkt, Tick when, bool force_order=false)
Add a packet to the transmit list, and schedule a send event.
const PortID InvalidPortID
void recvRespRetry()
Called by the master port if sendTimingResp was called on this slave port (causing recvTimingResp to ...
void recvRetrySnoopResp()
Called by the slave port if sendTimingSnoopResp was called on this master port (causing recvTimingSno...
const std::string name() const
Return port name (for DPRINTF).
virtual ~QueuedSlavePort()
The QueuedMasterPort combines two queues, a request queue and a snoop response queue, that both share the same port.
void recvReqRetry()
Called by the slave port if sendTimingReq was called on this master port (causing recvTimingReq to be...
A queued port is a port that has an infinite queue for outgoing packets and thus decouples the module...
A SlavePort is a specialisation of a port.
uint64_t Tick
Tick count type.
bool checkFunctional(PacketPtr pkt)
Check the list of buffered packets against the supplied functional request.
SnoopRespPacketQueue & snoopRespQueue
Packet queue used to store outgoing snoop responses.
bool checkFunctional(PacketPtr pkt)
Check the list of buffered packets against the supplied functional request.
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
QueuedSlavePort(const std::string &name, MemObject *owner, RespPacketQueue &resp_queue, PortID id=InvalidPortID)
Create a QueuedPort with a given name, owner, and a supplied implementation of a packet queue...
ReqPacketQueue & reqQueue
Packet queue used to store outgoing requests.
void schedTimingReq(PacketPtr pkt, Tick when)
Schedule the sending of a timing request.
const PortID id
A numeric identifier to distinguish ports in a vector, and set to InvalidPortID in case this port is ...
RespPacketQueue & respQueue
Packet queue used to store outgoing responses.
The MemObject class extends the ClockedObject with accessor functions to get its master and slave por...
virtual ~QueuedMasterPort()
void schedTimingResp(PacketPtr pkt, Tick when, bool force_order=false)
Schedule the sending of a timing response.
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
bool checkFunctional(PacketPtr pkt)
Check the list of buffered packets against the supplied functional request.
void schedTimingSnoopResp(PacketPtr pkt, Tick when, bool force_order=false)
Schedule the sending of a timing snoop response.