gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Attributes | List of all members
ReqPacketQueue Class Reference

#include <packet_queue.hh>

Inheritance diagram for ReqPacketQueue:
PacketQueue Drainable Cache::CacheReqPacketQueue

Public Member Functions

 ReqPacketQueue (EventManager &_em, MasterPort &_masterPort, const std::string _label="ReqPacketQueue")
 Create a request packet queue, linked to an event manager, a master port, and a label that will be used for functional print request packets. More...
 
virtual ~ReqPacketQueue ()
 
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 (reuest, response or snoop response). More...
 
- Public Member Functions inherited from PacketQueue
size_t size () const
 Get the size of the queue. More...
 
Tick deferredPacketReadyTime () const
 Get the next packet ready time. More...
 
bool hasAddr (Addr addr) const
 Check if a packets address exists in the queue. More...
 
bool checkFunctional (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, bool force_order=false)
 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
 Notify an object that it needs to drain its state. More...
 
- Public Member Functions inherited from Drainable
DrainState drainState () const
 Return the current drain state of an object. More...
 
virtual void notifyFork ()
 Notify a child process of a fork. More...
 

Protected Attributes

MasterPortmasterPort
 
- Protected Attributes inherited from 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 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, 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 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 211 of file packet_queue.hh.

Constructor & Destructor Documentation

ReqPacketQueue::ReqPacketQueue ( EventManager _em,
MasterPort _masterPort,
const std::string  _label = "ReqPacketQueue" 
)

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

Parameters
_emEvent manager used for scheduling this queue
_masterPortMaster port used to send the packets
_labelLabel to push on the label stack for print request packets

Definition at line 238 of file packet_queue.cc.

virtual ReqPacketQueue::~ReqPacketQueue ( )
inlinevirtual

Definition at line 232 of file packet_queue.hh.

Member Function Documentation

const std::string ReqPacketQueue::name ( ) const
inlinevirtual

Provide a name to simplify debugging.

Returns
A complete name, appended to module and port

Implements PacketQueue.

Definition at line 234 of file packet_queue.hh.

References PacketQueue::label, masterPort, and Port::name().

bool ReqPacketQueue::sendTiming ( PacketPtr  pkt)
virtual

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

Implements PacketQueue.

Definition at line 245 of file packet_queue.cc.

References masterPort, and MasterPort::sendTimingReq().

Member Data Documentation

MasterPort& ReqPacketQueue::masterPort
protected

Definition at line 216 of file packet_queue.hh.

Referenced by name(), and sendTiming().


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

Generated on Fri Jun 9 2017 13:04:18 for gem5 by doxygen 1.8.6