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

#include <etherlink.hh>

Public Member Functions

 Link (const std::string &name, EtherLink *p, int num, double rate, Tick delay, Tick delay_var, EtherDump *dump)
 
 ~Link ()
 
const std::string name () const
 
bool busy () const
 
bool transmit (EthPacketPtr packet)
 
void setTxInt (Interface *i)
 
void setRxInt (Interface *i)
 
void serialize (const std::string &base, CheckpointOut &cp) const
 
void unserialize (const std::string &base, CheckpointIn &cp)
 

Protected Types

typedef EventWrapper< Link,&Link::txDoneDoneEvent
 
typedef EventWrapper< Link,&Link::processTxQueueTxQueueEvent
 

Protected Member Functions

void txDone ()
 
void processTxQueue ()
 
void txComplete (EthPacketPtr packet)
 

Protected Attributes

const std::string objName
 
EtherLink *const parent
 
const int number
 
Interfacetxint
 
Interfacerxint
 
const double ticksPerByte
 
const Tick linkDelay
 
const Tick delayVar
 
EtherDump *const dump
 
EthPacketPtr packet
 
DoneEvent doneEvent
 
std::deque< std::pair< Tick,
EthPacketPtr > > 
txQueue
 Maintain a queue of in-flight packets. More...
 
TxQueueEvent txQueueEvent
 

Friends

void DoneEvent::process ()
 
void TxQueueEvent::process ()
 

Detailed Description

Definition at line 73 of file etherlink.hh.

Member Typedef Documentation

Definition at line 95 of file etherlink.hh.

Definition at line 107 of file etherlink.hh.

Constructor & Destructor Documentation

EtherLink::Link::Link ( const std::string &  name,
EtherLink p,
int  num,
double  rate,
Tick  delay,
Tick  delay_var,
EtherDump dump 
)

Definition at line 115 of file etherlink.cc.

EtherLink::Link::~Link ( )
inline

Definition at line 116 of file etherlink.hh.

Member Function Documentation

bool EtherLink::Link::busy ( ) const
inline

Definition at line 120 of file etherlink.hh.

References packet.

Referenced by EtherLink::Interface::isBusy().

const std::string EtherLink::Link::name ( ) const
inline

Definition at line 118 of file etherlink.hh.

References objName.

void EtherLink::Link::processTxQueue ( )
protected

Definition at line 167 of file etherlink.cc.

References curTick().

void EtherLink::Link::serialize ( const std::string &  base,
CheckpointOut cp 
) const

Definition at line 207 of file etherlink.cc.

References csprintf(), paramOut(), and X86ISA::pe.

Referenced by EtherLink::serialize().

void EtherLink::Link::setRxInt ( Interface i)
inline

Definition at line 124 of file etherlink.hh.

References ArmISA::i, and rxint.

Referenced by EtherLink::Interface::Interface().

void EtherLink::Link::setTxInt ( Interface i)
inline

Definition at line 123 of file etherlink.hh.

References ArmISA::i, and txint.

Referenced by EtherLink::Interface::Interface().

bool EtherLink::Link::transmit ( EthPacketPtr  packet)

Definition at line 184 of file etherlink.cc.

References curTick(), DDUMP, DPRINTF, Random::random(), and random_mt.

Referenced by EtherLink::Interface::recvPacket().

void EtherLink::Link::txComplete ( EthPacketPtr  packet)
protected

Definition at line 137 of file etherlink.cc.

References DDUMP, and DPRINTF.

void EtherLink::Link::txDone ( )
protected

Definition at line 145 of file etherlink.cc.

References curTick(), DPRINTF, and Stats::dump().

void EtherLink::Link::unserialize ( const std::string &  base,
CheckpointIn cp 
)

Definition at line 233 of file etherlink.cc.

References csprintf(), fatal_if(), optParamIn(), paramIn(), and warn.

Referenced by EtherLink::unserialize().

Friends And Related Function Documentation

void DoneEvent::process ( )
friend
void TxQueueEvent::process ( )
friend

Member Data Documentation

const Tick EtherLink::Link::delayVar
protected

Definition at line 86 of file etherlink.hh.

DoneEvent EtherLink::Link::doneEvent
protected

Definition at line 97 of file etherlink.hh.

EtherDump* const EtherLink::Link::dump
protected

Definition at line 87 of file etherlink.hh.

const Tick EtherLink::Link::linkDelay
protected

Definition at line 85 of file etherlink.hh.

const int EtherLink::Link::number
protected

Definition at line 79 of file etherlink.hh.

const std::string EtherLink::Link::objName
protected

Definition at line 76 of file etherlink.hh.

Referenced by name().

EthPacketPtr EtherLink::Link::packet
protected

Definition at line 93 of file etherlink.hh.

Referenced by busy().

EtherLink* const EtherLink::Link::parent
protected

Definition at line 78 of file etherlink.hh.

Interface* EtherLink::Link::rxint
protected

Definition at line 82 of file etherlink.hh.

Referenced by setRxInt().

const double EtherLink::Link::ticksPerByte
protected

Definition at line 84 of file etherlink.hh.

Interface* EtherLink::Link::txint
protected

Definition at line 81 of file etherlink.hh.

Referenced by setTxInt().

std::deque<std::pair<Tick, EthPacketPtr> > EtherLink::Link::txQueue
protected

Maintain a queue of in-flight packets.

Assume that the delay is non-zero and constant (i.e., at most one packet per tick).

Definition at line 104 of file etherlink.hh.

TxQueueEvent EtherLink::Link::txQueueEvent
protected

Definition at line 109 of file etherlink.hh.


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

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