gem5  v20.1.0.0
Public Member Functions | Public Attributes | List of all members
Packet::SenderState Struct Reference

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>

Inheritance diagram for Packet::SenderState:
AbstractController::SenderState AddrMapper::AddrMapperSenderState CommMonitor::CommMonitorSenderState ComputeUnit::DataPort::SenderState ComputeUnit::DTLBPort::SenderState ComputeUnit::ITLBPort::SenderState ComputeUnit::LDSPort::SenderState ComputeUnit::ScalarDataPort::SenderState ComputeUnit::ScalarDTLBPort::SenderState ComputeUnit::SQCPort::SenderState DmaPort::DmaReqState GarnetSyntheticTraffic::GarnetSyntheticTrafficSenderState ItsProcess LSQ< Impl >::LSQSenderState MemCheckerMonitor::MemCheckerMonitorSenderState Minor::Fetch1::FetchRequest Minor::LSQ::LSQRequest Packet::PrintReqState QueueEntry RiscvISA::Walker::WalkerSenderState RubyPort::SenderState RubyTester::SenderState sc_gem5::TlmToGem5Bridge< BITWIDTH >::TlmSenderState SMMUProcess TimingSimpleCPU::SplitFragmentSenderState TimingSimpleCPU::SplitMainSenderState X86ISA::GpuTLB::TranslationState X86ISA::IntRequestPort< Device >::OnCompletion X86ISA::Walker::WalkerSenderState

Public Member Functions

 SenderState ()
 
virtual ~SenderState ()
 

Public Attributes

SenderStatepredecessor
 

Detailed Description

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.

Definition at line 431 of file packet.hh.

Constructor & Destructor Documentation

◆ SenderState()

Packet::SenderState::SenderState ( )
inline

Definition at line 434 of file packet.hh.

◆ ~SenderState()

virtual Packet::SenderState::~SenderState ( )
inlinevirtual

Definition at line 435 of file packet.hh.

Member Data Documentation

◆ predecessor

SenderState* Packet::SenderState::predecessor

The documentation for this struct was generated from the following file:

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