gem5
v20.0.0.3
|
#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 Member Functions | |
void | txDone () |
void | processTxQueue () |
void | txComplete (EthPacketPtr packet) |
Protected Attributes | |
const std::string | objName |
EtherLink *const | parent |
const int | number |
Interface * | txint |
Interface * | rxint |
const double | ticksPerByte |
const Tick | linkDelay |
const Tick | delayVar |
EtherDump *const | dump |
EthPacketPtr | packet |
EventFunctionWrapper | doneEvent |
std::deque< std::pair< Tick, EthPacketPtr > > | txQueue |
Maintain a queue of in-flight packets. More... | |
EventFunctionWrapper | txQueueEvent |
Definition at line 70 of file etherlink.hh.
EtherLink::Link::Link | ( | const std::string & | name, |
EtherLink * | p, | ||
int | num, | ||
double | rate, | ||
Tick | delay, | ||
Tick | delay_var, | ||
EtherDump * | dump | ||
) |
Definition at line 106 of file etherlink.cc.
References name(), processTxQueue(), txDone(), and txQueueEvent.
|
inline |
Definition at line 109 of file etherlink.hh.
|
inline |
Definition at line 113 of file etherlink.hh.
References packet, and transmit().
Referenced by EtherLink::Interface::isBusy(), transmit(), and txDone().
|
inline |
|
protected |
Definition at line 159 of file etherlink.cc.
References curTick(), parent, EventManager::schedule(), txComplete(), txQueue, and txQueueEvent.
Referenced by Link().
void EtherLink::Link::serialize | ( | const std::string & | base, |
CheckpointOut & | cp | ||
) | const |
Definition at line 199 of file etherlink.cc.
References csprintf(), doneEvent, packet, paramOut(), X86ISA::pe, Event::scheduled(), txQueue, and Event::when().
Referenced by EtherLink::params(), EtherLink::serialize(), and setRxInt().
|
inline |
Definition at line 117 of file etherlink.hh.
References X86ISA::base, ArmISA::i, serialize(), and unserialize().
Referenced by EtherLink::Interface::Interface().
|
inline |
Definition at line 116 of file etherlink.hh.
References ArmISA::i.
Referenced by EtherLink::Interface::Interface().
bool EtherLink::Link::transmit | ( | EthPacketPtr | packet | ) |
Definition at line 176 of file etherlink.cc.
References busy(), curTick(), DDUMP, delayVar, doneEvent, DPRINTF, packet, parent, Random::random(), random_mt, EventManager::schedule(), and ticksPerByte.
Referenced by busy(), and EtherLink::Interface::recvPacket().
|
protected |
Definition at line 129 of file etherlink.cc.
References DDUMP, DPRINTF, rxint, and EtherInt::sendPacket().
Referenced by processTxQueue(), and txDone().
|
protected |
Definition at line 137 of file etherlink.cc.
References busy(), curTick(), DPRINTF, EtherDump::dump(), dump, linkDelay, packet, parent, EventManager::schedule(), Event::scheduled(), EtherLink::Interface::sendDone(), txComplete(), txint, txQueue, and txQueueEvent.
Referenced by Link().
void EtherLink::Link::unserialize | ( | const std::string & | base, |
CheckpointIn & | cp | ||
) |
Definition at line 225 of file etherlink.cc.
References csprintf(), doneEvent, EtherLink::EtherLink(), fatal_if, optParamIn(), packet, paramIn(), parent, EventManager::schedule(), txQueue, txQueueEvent, and warn.
Referenced by EtherLink::params(), setRxInt(), and EtherLink::unserialize().
|
protected |
Definition at line 83 of file etherlink.hh.
Referenced by transmit().
|
protected |
Definition at line 92 of file etherlink.hh.
Referenced by serialize(), transmit(), and unserialize().
|
protected |
Definition at line 84 of file etherlink.hh.
Referenced by txDone().
|
protected |
Definition at line 82 of file etherlink.hh.
Referenced by txDone().
|
protected |
Definition at line 76 of file etherlink.hh.
|
protected |
Definition at line 73 of file etherlink.hh.
Referenced by name().
|
protected |
Definition at line 90 of file etherlink.hh.
Referenced by busy(), serialize(), transmit(), txDone(), and unserialize().
|
protected |
Definition at line 75 of file etherlink.hh.
Referenced by processTxQueue(), transmit(), txDone(), and unserialize().
|
protected |
Definition at line 79 of file etherlink.hh.
Referenced by txComplete().
|
protected |
Definition at line 81 of file etherlink.hh.
Referenced by transmit().
|
protected |
Definition at line 78 of file etherlink.hh.
Referenced by txDone().
|
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 99 of file etherlink.hh.
Referenced by processTxQueue(), serialize(), txDone(), and unserialize().
|
protected |
Definition at line 102 of file etherlink.hh.
Referenced by Link(), processTxQueue(), txDone(), and unserialize().