gem5  v22.0.0.2
Public Member Functions | Public Attributes | List of all members
gem5::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 gem5::Packet::SenderState:
gem5::AddrMapper::AddrMapperSenderState gem5::AMDGPUInterruptHandler::SenderState gem5::AMDGPUMemoryManager::GPUMemPort::SenderState gem5::ArmISA::TableWalker::TableWalkerState gem5::CommMonitor::CommMonitorSenderState gem5::ComputeUnit::DataPort::SenderState gem5::ComputeUnit::DTLBPort::SenderState gem5::ComputeUnit::ITLBPort::SenderState gem5::ComputeUnit::LDSPort::SenderState gem5::ComputeUnit::ScalarDataPort::SenderState gem5::ComputeUnit::ScalarDTLBPort::SenderState gem5::ComputeUnit::SQCPort::SenderState gem5::DmaPort::DmaReqState gem5::GarnetSyntheticTraffic::GarnetSyntheticTrafficSenderState gem5::GpuTranslationState gem5::ItsProcess gem5::MemCheckerMonitor::MemCheckerMonitorSenderState gem5::minor::Fetch1::FetchRequest gem5::minor::LSQ::LSQRequest gem5::o3::LSQ::LSQRequest gem5::Packet::PrintReqState gem5::ProtocolTester::SenderState gem5::QueueEntry gem5::RiscvISA::Walker::WalkerSenderState gem5::ruby::AbstractController::SenderState gem5::ruby::RubyPort::SenderState gem5::RubyTester::SenderState gem5::SMMUProcess gem5::SysBridge::SysBridgeSenderState gem5::TimingSimpleCPU::SplitFragmentSenderState gem5::TimingSimpleCPU::SplitMainSenderState gem5::VegaISA::Walker::WalkerSenderState gem5::X86ISA::IntRequestPort< Device >::OnCompletion gem5::X86ISA::Walker::WalkerSenderState sc_gem5::TlmToGem5Bridge< BITWIDTH >::TlmSenderState

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 465 of file packet.hh.

Constructor & Destructor Documentation

◆ SenderState()

gem5::Packet::SenderState::SenderState ( )
inline

Definition at line 468 of file packet.hh.

◆ ~SenderState()

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

Reimplemented in gem5::ProtocolTester::SenderState.

Definition at line 469 of file packet.hh.

Member Data Documentation

◆ predecessor

SenderState* gem5::Packet::SenderState::predecessor

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

Generated on Thu Jul 28 2022 13:33:08 for gem5 by doxygen 1.8.17