gem5  v20.1.0.0
Classes | Public Member Functions | Protected Attributes | List of all members
EtherSwitch::Interface::PortFifo Class Reference

#include <etherswitch.hh>

Inheritance diagram for EtherSwitch::Interface::PortFifo:
Serializable

Classes

struct  EntryOrder
 

Public Member Functions

 PortFifo (const std::string &name, int max)
 
 ~PortFifo ()
 
const std::string name ()
 
int avail () const
 
EthPacketPtr front ()
 
bool empty () const
 
unsigned size () const
 
bool push (EthPacketPtr ptr, unsigned senderId)
 Push a packet into the fifo and sort the packets with same recv tick by port id. More...
 
void pop ()
 
void clear ()
 
void serialize (CheckpointOut &cp) const
 Serialization stuff. More...
 
void unserialize (CheckpointIn &cp)
 Unserialize an object. More...
 
- Public Member Functions inherited from Serializable
 Serializable ()
 
virtual ~Serializable ()
 
void serializeSection (CheckpointOut &cp, const char *name) const
 Serialize an object into a new section. More...
 
void serializeSection (CheckpointOut &cp, const std::string &name) const
 
void unserializeSection (CheckpointIn &cp, const char *name)
 Unserialize an a child object. More...
 
void unserializeSection (CheckpointIn &cp, const std::string &name)
 

Protected Attributes

std::set< PortFifoEntry, EntryOrderfifo
 
const std::string objName
 
const unsigned _maxsize
 
unsigned _size
 

Additional Inherited Members

- Static Public Member Functions inherited from Serializable
static const std::string & currentSection ()
 Gets the fully-qualified name of the active section. More...
 
static void serializeAll (const std::string &cpt_dir)
 Serializes all the SimObjects. More...
 
static void unserializeGlobals (CheckpointIn &cp)
 

Detailed Description

Definition at line 119 of file etherswitch.hh.

Constructor & Destructor Documentation

◆ PortFifo()

EtherSwitch::Interface::PortFifo::PortFifo ( const std::string &  name,
int  max 
)
inline

Definition at line 139 of file etherswitch.hh.

◆ ~PortFifo()

EtherSwitch::Interface::PortFifo::~PortFifo ( )
inline

Definition at line 141 of file etherswitch.hh.

Member Function Documentation

◆ avail()

int EtherSwitch::Interface::PortFifo::avail ( ) const
inline

Definition at line 149 of file etherswitch.hh.

References _maxsize, and _size.

Referenced by push().

◆ clear()

void EtherSwitch::Interface::PortFifo::clear ( )

Definition at line 118 of file etherswitch.cc.

◆ empty()

bool EtherSwitch::Interface::PortFifo::empty ( ) const
inline

Definition at line 152 of file etherswitch.hh.

References _size.

Referenced by push().

◆ front()

EthPacketPtr EtherSwitch::Interface::PortFifo::front ( )
inline

Definition at line 151 of file etherswitch.hh.

References fifo.

◆ name()

const std::string EtherSwitch::Interface::PortFifo::name ( )
inline

Definition at line 143 of file etherswitch.hh.

References objName.

◆ pop()

void EtherSwitch::Interface::PortFifo::pop ( )

Definition at line 106 of file etherswitch.cc.

◆ push()

bool EtherSwitch::Interface::PortFifo::push ( EthPacketPtr  ptr,
unsigned  senderId 
)

Push a packet into the fifo and sort the packets with same recv tick by port id.

Definition at line 74 of file etherswitch.cc.

References _maxsize, _size, avail(), curTick(), DPRINTF, empty(), fifo, and warn.

◆ serialize()

void EtherSwitch::Interface::PortFifo::serialize ( CheckpointOut cp) const
virtual

Serialization stuff.

Implements Serializable.

Definition at line 318 of file etherswitch.cc.

References csprintf(), ArmISA::i, and SERIALIZE_SCALAR.

◆ size()

unsigned EtherSwitch::Interface::PortFifo::size ( ) const
inline

Definition at line 153 of file etherswitch.hh.

References _size.

◆ unserialize()

void EtherSwitch::Interface::PortFifo::unserialize ( CheckpointIn cp)
virtual

Unserialize an object.

Read an object's state from the current checkpoint section.

Parameters
cpCheckpoint state

Implements Serializable.

Definition at line 331 of file etherswitch.cc.

References csprintf(), ArmISA::i, UNSERIALIZE_SCALAR, and Serializable::unserializeSection().

Member Data Documentation

◆ _maxsize

const unsigned EtherSwitch::Interface::PortFifo::_maxsize
protected

Definition at line 135 of file etherswitch.hh.

Referenced by avail(), and push().

◆ _size

unsigned EtherSwitch::Interface::PortFifo::_size
protected

Definition at line 136 of file etherswitch.hh.

Referenced by avail(), empty(), push(), and size().

◆ fifo

std::set<PortFifoEntry, EntryOrder> EtherSwitch::Interface::PortFifo::fifo
protected

Definition at line 132 of file etherswitch.hh.

Referenced by front(), and push().

◆ objName

const std::string EtherSwitch::Interface::PortFifo::objName
protected

Definition at line 134 of file etherswitch.hh.

Referenced by name().


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

Generated on Wed Sep 30 2020 14:02:24 for gem5 by doxygen 1.8.17