|
gem5 [DEVELOP-FOR-25.0]
|
#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 |
| Random::RandomPtr | rng = Random::genRandom() |
| EthPacketPtr | packet |
| EventFunctionWrapper | doneEvent |
| std::deque< std::pair< Tick, EthPacketPtr > > | txQueue |
| Maintain a queue of in-flight packets. | |
| EventFunctionWrapper | txQueueEvent |
Definition at line 75 of file etherlink.hh.
| gem5::EtherLink::Link::Link | ( | const std::string & | name, |
| EtherLink * | p, | ||
| int | num, | ||
| double | rate, | ||
| Tick | delay, | ||
| Tick | delay_var, | ||
| EtherDump * | dump ) |
Definition at line 108 of file etherlink.cc.
References gem5::ArmISA::d, delayVar, doneEvent, dump, gem5::EtherLink::EtherLink(), linkDelay, name(), number, objName, gem5::MipsISA::p, parent, rxint, ticksPerByte, txDone(), and txint.
|
inline |
Definition at line 116 of file etherlink.hh.
|
inline |
Definition at line 120 of file etherlink.hh.
References packet.
Referenced by transmit(), and txDone().
|
inline |
|
protected |
Definition at line 161 of file etherlink.cc.
References gem5::curTick(), parent, txComplete(), txQueue, and txQueueEvent.
| void gem5::EtherLink::Link::serialize | ( | const std::string & | base, |
| CheckpointOut & | cp ) const |
Definition at line 201 of file etherlink.cc.
References gem5::RiscvISA::base, gem5::csprintf(), doneEvent, packet, gem5::paramOut(), gem5::X86ISA::pe, and txQueue.
|
inline |
Definition at line 124 of file etherlink.hh.
References gem5::ArmISA::i, and rxint.
Referenced by gem5::EtherLink::Interface::Interface().
|
inline |
Definition at line 123 of file etherlink.hh.
References gem5::ArmISA::i, and txint.
Referenced by gem5::EtherLink::Interface::Interface().
| bool gem5::EtherLink::Link::transmit | ( | EthPacketPtr | packet | ) |
Definition at line 178 of file etherlink.cc.
References busy(), gem5::curTick(), DDUMP, delayVar, doneEvent, DPRINTF, packet, parent, rng, and ticksPerByte.
|
protected |
Definition at line 131 of file etherlink.cc.
References DDUMP, DPRINTF, packet, and rxint.
Referenced by processTxQueue(), and txDone().
|
protected |
Definition at line 139 of file etherlink.cc.
References busy(), gem5::curTick(), DPRINTF, dump, linkDelay, packet, parent, txComplete(), txint, txQueue, and txQueueEvent.
Referenced by Link().
| void gem5::EtherLink::Link::unserialize | ( | const std::string & | base, |
| CheckpointIn & | cp ) |
Definition at line 227 of file etherlink.cc.
References gem5::RiscvISA::base, gem5::csprintf(), doneEvent, fatal_if, gem5::optParamIn(), packet, gem5::paramIn(), parent, txQueue, txQueueEvent, and warn.
|
protected |
Definition at line 88 of file etherlink.hh.
Referenced by Link(), and transmit().
|
protected |
Definition at line 99 of file etherlink.hh.
Referenced by Link(), serialize(), transmit(), and unserialize().
|
protected |
Definition at line 89 of file etherlink.hh.
|
protected |
Definition at line 87 of file etherlink.hh.
|
protected |
Definition at line 81 of file etherlink.hh.
Referenced by Link().
|
protected |
Definition at line 78 of file etherlink.hh.
|
protected |
Definition at line 97 of file etherlink.hh.
Referenced by busy(), serialize(), transmit(), txComplete(), txDone(), and unserialize().
|
protected |
Definition at line 80 of file etherlink.hh.
Referenced by Link(), processTxQueue(), transmit(), txDone(), and unserialize().
|
protected |
Definition at line 91 of file etherlink.hh.
Referenced by transmit().
|
protected |
Definition at line 84 of file etherlink.hh.
Referenced by Link(), setRxInt(), and txComplete().
|
protected |
Definition at line 86 of file etherlink.hh.
Referenced by Link(), and transmit().
|
protected |
Definition at line 83 of file etherlink.hh.
Referenced by Link(), setTxInt(), and 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 106 of file etherlink.hh.
Referenced by processTxQueue(), serialize(), txDone(), and unserialize().
|
protected |
Definition at line 109 of file etherlink.hh.
Referenced by processTxQueue(), txDone(), and unserialize().