gem5  v21.2.1.1
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::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::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::TimingSimpleCPU::SplitFragmentSenderState gem5::TimingSimpleCPU::SplitMainSenderState gem5::X86ISA::GpuTLB::TranslationState gem5::X86ISA::IntRequestPort< Device >::OnCompletion gem5::X86ISA::Walker::WalkerSenderState sc_gem5::TlmToGem5Bridge< BITWIDTH >::TlmSenderState

Public Member Functions

 SenderState ()
virtual ~SenderState ()

Public Attributes


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

Constructor & Destructor Documentation

◆ SenderState()

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

Definition at line 460 of file packet.hh.

◆ ~SenderState()

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

Reimplemented in gem5::ProtocolTester::SenderState.

Definition at line 461 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 Wed May 4 2022 12:14:42 for gem5 by doxygen 1.8.17