gem5  v20.0.0.2
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
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::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::IntMasterPort< 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 397 of file packet.hh.

Constructor & Destructor Documentation

◆ SenderState()

Packet::SenderState::SenderState ( )
inline

Definition at line 400 of file packet.hh.

◆ ~SenderState()

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

Definition at line 401 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 Mon Jun 8 2020 15:45:26 for gem5 by doxygen 1.8.13