gem5 v24.0.0.0
|
A virtual base opaque structure used to hold state associated with the packet (e.g., an MSHR), specific to a SimObject that sees the packet. More...
#include <packet.hh>
Public Member Functions | |
SenderState () | |
virtual | ~SenderState () |
Public Attributes | |
SenderState * | predecessor |
A virtual base opaque structure used to hold state associated with the packet (e.g., an MSHR), specific to a SimObject that sees the packet.
A pointer to this state is returned in the packet's response so that the SimObject in question can quickly look up the state needed to process it. A specific subclass would be derived from this to carry state specific to a particular sending device.
As multiple SimObjects may add their SenderState throughout the memory system, the SenderStates create a stack, where a SimObject can add a new Senderstate, as long as the predecessing SenderState is restored when the response comes back. For this reason, the predecessor should always be populated with the current SenderState of a packet before modifying the senderState field in the request packet.
|
inlinevirtual |
Reimplemented in gem5::ProtocolTester::SenderState.
SenderState* gem5::Packet::SenderState::predecessor |
Definition at line 470 of file packet.hh.
Referenced by gem5::LdsState::countBankConflicts(), gem5::Packet::findNextSenderState(), gem5::Packet::popSenderState(), gem5::Packet::pushSenderState(), gem5::AddrMapper::recvTimingResp(), gem5::CommMonitor::recvTimingResp(), and gem5::MemCheckerMonitor::recvTimingResp().