| 
    gem5
    
   | 
 
Internal class to bridge between an incoming snoop response from a slave port and forwarding it through an outgoing slave port. More...
#include <coherent_xbar.hh>
  
 Public Member Functions | |
| SnoopRespPort (QueuedSlavePort &slave_port, CoherentXBar &_xbar) | |
| Create a snoop response port that mirrors a given slave port.  More... | |
| void | sendRetryResp () | 
| Override the sending of retries and pass them on through the mirrored slave port.  More... | |
| void | recvReqRetry () | 
| Provided as necessary.  More... | |
| bool | recvTimingResp (PacketPtr pkt) | 
| Provided as necessary.  More... | |
  Public Member Functions inherited from MasterPort | |
| MasterPort (const std::string &name, MemObject *owner, PortID id=InvalidPortID) | |
| Master port.  More... | |
| virtual | ~MasterPort () | 
| void | bind (BaseSlavePort &slave_port) | 
| Bind this master port to a slave port.  More... | |
| void | unbind () | 
| Unbind this master port and the associated slave port.  More... | |
| Tick | sendAtomic (PacketPtr pkt) | 
| Send an atomic request packet, where the data is moved and the state is updated in zero time, without interleaving with other memory accesses.  More... | |
| void | sendFunctional (PacketPtr pkt) | 
| Send a functional request packet, where the data is instantly updated everywhere in the memory system, without affecting the current state of any block or moving the block.  More... | |
| bool | sendTimingReq (PacketPtr pkt) | 
| Attempt to send a timing request to the slave port by calling its corresponding receive function.  More... | |
| bool | sendTimingSnoopResp (PacketPtr pkt) | 
| Attempt to send a timing snoop response packet to the slave port by calling its corresponding receive function.  More... | |
| virtual bool | isSnooping () const | 
| Determine if this master port is snooping or not.  More... | |
| AddrRangeList | getAddrRanges () const | 
| Get the address ranges of the connected slave port.  More... | |
| void | printAddr (Addr a) | 
| Inject a PrintReq for the given address to print the state of that address throughout the memory system.  More... | |
  Public Member Functions inherited from BaseMasterPort | |
| BaseSlavePort & | getSlavePort () const | 
| bool | isConnected () const | 
  Public Member Functions inherited from Port | |
| const std::string | name () const | 
| Return port name (for DPRINTF).  More... | |
| PortID | getId () const | 
| Get the port id.  More... | |
Private Attributes | |
| QueuedSlavePort & | slavePort | 
| The port which we mirror internally.  More... | |
Additional Inherited Members | |
  Protected Member Functions inherited from MasterPort | |
| virtual Tick | recvAtomicSnoop (PacketPtr pkt) | 
| Receive an atomic snoop request packet from the slave port.  More... | |
| virtual void | recvFunctionalSnoop (PacketPtr pkt) | 
| Receive a functional snoop request packet from the slave port.  More... | |
| virtual void | recvTimingSnoopReq (PacketPtr pkt) | 
| Receive a timing snoop request from the slave port.  More... | |
| virtual void | recvRetrySnoopResp () | 
| Called by the slave port if sendTimingSnoopResp was called on this master port (causing recvTimingSnoopResp to be called on the slave port) and was unsuccesful.  More... | |
| virtual void | recvRangeChange () | 
| Called to receive an address range change from the peer slave port.  More... | |
  Protected Member Functions inherited from BaseMasterPort | |
| BaseMasterPort (const std::string &name, MemObject *owner, PortID id=InvalidPortID) | |
| virtual | ~BaseMasterPort () | 
  Protected Member Functions inherited from Port | |
| Port (const std::string &_name, MemObject &_owner, PortID _id) | |
| Abstract base class for ports.  More... | |
| virtual | ~Port () | 
| Virtual destructor due to inheritance.  More... | |
  Protected Attributes inherited from BaseMasterPort | |
| BaseSlavePort * | _baseSlavePort | 
  Protected Attributes inherited from Port | |
| const PortID | id | 
| A numeric identifier to distinguish ports in a vector, and set to InvalidPortID in case this port is not part of a vector.  More... | |
| MemObject & | owner | 
| A reference to the MemObject that owns this port.  More... | |
Internal class to bridge between an incoming snoop response from a slave port and forwarding it through an outgoing slave port.
It is effectively a dangling master port.
Definition at line 212 of file coherent_xbar.hh.
      
  | 
  inline | 
Create a snoop response port that mirrors a given slave port.
Definition at line 225 of file coherent_xbar.hh.
      
  | 
  inlinevirtual | 
Provided as necessary.
Implements MasterPort.
Definition at line 241 of file coherent_xbar.hh.
References panic.
      
  | 
  inlinevirtual | 
Provided as necessary.
Implements MasterPort.
Definition at line 246 of file coherent_xbar.hh.
References panic.
      
  | 
  inlinevirtual | 
Override the sending of retries and pass them on through the mirrored slave port.
Reimplemented from MasterPort.
Definition at line 233 of file coherent_xbar.hh.
References SlavePort::sendRetrySnoopResp(), and slavePort.
      
  | 
  private | 
The port which we mirror internally.
Definition at line 218 of file coherent_xbar.hh.
Referenced by sendRetryResp().