gem5  v20.1.0.0
Protected Member Functions | Friends | List of all members
TimingResponseProtocol Class Referenceabstract

#include <timing.hh>

Inheritance diagram for TimingResponseProtocol:
ResponsePort AddrMapper::MapperResponsePort Bridge::BridgeResponsePort CommMonitor::MonitorResponsePort DRAMSim2::MemoryPort DRAMsim3::MemoryPort LdsState::CuSidePort MemCheckerMonitor::MonitorResponsePort QueuedResponsePort sc_gem5::Gem5ToTlmBridge< BITWIDTH >::BridgeResponsePort SerialLink::SerialLinkResponsePort SimpleCache::CPUSidePort SimpleMemobj::CPUSidePort SimpleMemory::MemoryPort SlavePort TLBCoalescer::CpuSidePort TokenResponsePort X86ISA::GpuTLB::CpuSidePort

Protected Member Functions

bool sendResp (TimingRequestProtocol *peer, PacketPtr pkt)
 Attempt to send a timing response to the peer by calling its corresponding receive function. More...
 
void sendSnoopReq (TimingRequestProtocol *peer, PacketPtr pkt)
 Attempt to send a timing snoop request packet to the peer by calling its corresponding receive function. More...
 
void sendRetryReq (TimingRequestProtocol *peer)
 Send a retry to the peer that previously attempted a sendTimingReq to this protocol and failed. More...
 
void sendRetrySnoopResp (TimingRequestProtocol *peer)
 Send a retry to the peer that previously attempted a sendTimingSnoopResp to this peer and failed. More...
 
virtual bool recvTimingReq (PacketPtr pkt)=0
 Receive a timing request from the peer. More...
 
virtual bool tryTiming (PacketPtr pkt)=0
 Availability request from the peer. More...
 
virtual bool recvTimingSnoopResp (PacketPtr pkt)=0
 Receive a timing snoop response from the peer. More...
 
virtual void recvRespRetry ()=0
 Called by the peer if sendTimingResp was called on this protocol (causing recvTimingResp to be called on the peer) and was unsuccessful. More...
 

Friends

class TimingRequestProtocol
 

Detailed Description

Definition at line 122 of file timing.hh.

Member Function Documentation

◆ recvRespRetry()

virtual void TimingResponseProtocol::recvRespRetry ( )
protectedpure virtual

◆ recvTimingReq()

virtual bool TimingResponseProtocol::recvTimingReq ( PacketPtr  pkt)
protectedpure virtual

◆ recvTimingSnoopResp()

virtual bool TimingResponseProtocol::recvTimingSnoopResp ( PacketPtr  pkt)
protectedpure virtual

◆ sendResp()

bool TimingResponseProtocol::sendResp ( TimingRequestProtocol peer,
PacketPtr  pkt 
)
protected

Attempt to send a timing response to the peer by calling its corresponding receive function.

If the send does not succeed, as indicated by the return value, then the sender must wait for a recvRespRetry at which point it can re-issue a sendTimingResp.

Parameters
peerPeer to send the packet to.
pktPacket to send.
Returns
If the send was succesful or not.

Definition at line 77 of file timing.cc.

References Packet::isResponse(), and TimingRequestProtocol::recvTimingResp().

Referenced by ResponsePort::sendTimingResp().

◆ sendRetryReq()

void TimingResponseProtocol::sendRetryReq ( TimingRequestProtocol peer)
protected

Send a retry to the peer that previously attempted a sendTimingReq to this protocol and failed.

Definition at line 92 of file timing.cc.

References TimingRequestProtocol::recvReqRetry().

Referenced by ResponsePort::sendRetryReq().

◆ sendRetrySnoopResp()

void TimingResponseProtocol::sendRetrySnoopResp ( TimingRequestProtocol peer)
protected

Send a retry to the peer that previously attempted a sendTimingSnoopResp to this peer and failed.

Definition at line 98 of file timing.cc.

References TimingRequestProtocol::recvRetrySnoopResp().

Referenced by ResponsePort::sendRetrySnoopResp().

◆ sendSnoopReq()

void TimingResponseProtocol::sendSnoopReq ( TimingRequestProtocol peer,
PacketPtr  pkt 
)
protected

Attempt to send a timing snoop request packet to the peer by calling its corresponding receive function.

Snoop requests always succeed and hence no return value is needed.

Parameters
peerPeer to send the packet to.
pktPacket to send.

Definition at line 84 of file timing.cc.

References Packet::isRequest(), and TimingRequestProtocol::recvTimingSnoopReq().

Referenced by ResponsePort::sendTimingSnoopReq().

◆ tryTiming()

virtual bool TimingResponseProtocol::tryTiming ( PacketPtr  pkt)
protectedpure virtual

Friends And Related Function Documentation

◆ TimingRequestProtocol

friend class TimingRequestProtocol
friend

Definition at line 124 of file timing.hh.


The documentation for this class was generated from the following files:

Generated on Wed Sep 30 2020 14:02:33 for gem5 by doxygen 1.8.17