gem5  v22.1.0.0
Public Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
gem5::RespPacketQueue Class Reference

#include <packet_queue.hh>

Inheritance diagram for gem5::RespPacketQueue:
gem5::PacketQueue gem5::Drainable

Public Member Functions

 RespPacketQueue (EventManager &_em, ResponsePort &_cpu_side_port, bool force_order=false, const std::string _label="RespPacketQueue")
 Create a response packet queue, linked to an event manager, a CPU-side port, and a label that will be used for functional print request packets. More...
 
virtual ~RespPacketQueue ()
 
const std::string name () const
 Provide a name to simplify debugging. More...
 
bool sendTiming (PacketPtr pkt)
 Send a packet using the appropriate method for the specific subclass (request, response or snoop response). More...
 
- Public Member Functions inherited from gem5::PacketQueue
size_t size () const
 Get the size of the queue. More...
 
Tick deferredPacketReadyTime () const
 Get the next packet ready time. More...
 
bool checkConflict (const PacketPtr pkt, const int blk_size) const
 Check if a packet corresponding to the same address exists in the queue. More...
 
bool trySatisfyFunctional (PacketPtr pkt)
 Check the list of buffered packets against the supplied functional request. More...
 
void schedSendEvent (Tick when)
 Schedule a send event if we are not already waiting for a retry. More...
 
void schedSendTiming (PacketPtr pkt, Tick when)
 Add a packet to the transmit list, and schedule a send event. More...
 
void retry ()
 Retry sending a packet from the queue. More...
 
void disableSanityCheck ()
 This allows a user to explicitly disable the sanity check on the size of the transmitList, which is enabled by default. More...
 
DrainState drain () override
 Draining is the process of clearing out the states of SimObjects.These are the SimObjects that are partially executed or are partially in flight. More...
 
- Public Member Functions inherited from gem5::Drainable
DrainState drainState () const
 Return the current drain state of an object. More...
 
virtual void notifyFork ()
 Notify a child process of a fork. More...
 

Static Protected Member Functions

static const std::string name (const ResponsePort &cpuSidePort, const std::string &label)
 

Protected Attributes

ResponsePortcpuSidePort
 
- Protected Attributes inherited from gem5::PacketQueue
const std::string label
 Label to use for print request packets label stack. More...
 
bool waitingOnRetry
 Remember whether we're awaiting a retry. More...
 

Additional Inherited Members

- Protected Member Functions inherited from gem5::PacketQueue
bool deferredPacketReady () const
 Check whether we have a packet ready to go on the transmit list. More...
 
virtual void sendDeferredPacket ()
 Attempt to send a packet. More...
 
 PacketQueue (EventManager &_em, const std::string &_label, const std::string &_sendEventName, bool force_order=false, bool disable_sanity_check=false)
 Create a packet queue, linked to an event manager, and a label that will be used for functional print request packets. More...
 
virtual ~PacketQueue ()
 Virtual desctructor since the class may be used as a base class. More...
 
- Protected Member Functions inherited from gem5::Drainable
 Drainable ()
 
virtual ~Drainable ()
 
virtual void drainResume ()
 Resume execution after a successful drain. More...
 
void signalDrainDone () const
 Signal that an object is drained. More...
 

Detailed Description

Definition at line 300 of file packet_queue.hh.

Constructor & Destructor Documentation

◆ RespPacketQueue()

gem5::RespPacketQueue::RespPacketQueue ( EventManager _em,
ResponsePort _cpu_side_port,
bool  force_order = false,
const std::string  _label = "RespPacketQueue" 
)

Create a response packet queue, linked to an event manager, a CPU-side port, and a label that will be used for functional print request packets.

Parameters
_emEvent manager used for scheduling this queue
_cpu_side_portCpu_side port used to send the packets
force_orderForce insertion order for packets with same address
_labelLabel to push on the label stack for print request packets

Definition at line 266 of file packet_queue.cc.

◆ ~RespPacketQueue()

virtual gem5::RespPacketQueue::~RespPacketQueue ( )
inlinevirtual

Definition at line 329 of file packet_queue.hh.

Member Function Documentation

◆ name() [1/2]

const std::string gem5::RespPacketQueue::name ( ) const
inlinevirtual

Provide a name to simplify debugging.

Returns
A complete name, appended to module and port

Implements gem5::PacketQueue.

Definition at line 331 of file packet_queue.hh.

References cpuSidePort, and gem5::PacketQueue::label.

◆ name() [2/2]

static const std::string gem5::RespPacketQueue::name ( const ResponsePort cpuSidePort,
const std::string &  label 
)
inlinestaticprotected

Definition at line 309 of file packet_queue.hh.

References cpuSidePort, gem5::PacketQueue::label, and gem5::Port::name().

◆ sendTiming()

bool gem5::RespPacketQueue::sendTiming ( PacketPtr  pkt)
virtual

Send a packet using the appropriate method for the specific subclass (request, response or snoop response).

Implements gem5::PacketQueue.

Definition at line 276 of file packet_queue.cc.

References cpuSidePort, and gem5::ResponsePort::sendTimingResp().

Member Data Documentation

◆ cpuSidePort

ResponsePort& gem5::RespPacketQueue::cpuSidePort
protected

Definition at line 305 of file packet_queue.hh.

Referenced by name(), and sendTiming().


The documentation for this class was generated from the following files:

Generated on Wed Dec 21 2022 10:23:27 for gem5 by doxygen 1.9.1