gem5 v24.0.0.0
|
#include <etherint.hh>
Public Member Functions | |
EtherInt (const std::string &name, int idx=InvalidPortID) | |
virtual | ~EtherInt () |
const std::string & | name () const |
Return port name (for DPRINTF). | |
void | bind (Port &peer) override |
Attach to a peer port. | |
void | unbind () override |
Dettach from a peer port. | |
void | setPeer (EtherInt *p) |
EtherInt * | getPeer () |
void | recvDone () |
virtual void | sendDone ()=0 |
bool | sendPacket (EthPacketPtr packet) |
virtual bool | recvPacket (EthPacketPtr packet)=0 |
bool | askBusy () |
virtual bool | isBusy () |
Public Member Functions inherited from gem5::Port | |
virtual | ~Port () |
Virtual destructor due to inheritance. | |
Port & | getPeer () |
Return a reference to this port's peer. | |
const std::string | name () const |
Return port name (for DPRINTF). | |
PortID | getId () const |
Get the port id. | |
bool | isConnected () const |
Is this port currently connected to a peer? | |
void | takeOverFrom (Port *old) |
A utility function to make it easier to swap out ports. | |
Protected Attributes | |
std::string | portName |
EtherInt * | peer |
Protected Attributes inherited from gem5::Port | |
const PortID | id |
A numeric identifier to distinguish ports in a vector, and set to InvalidPortID in case this port is not part of a vector. | |
Port * | _peer |
A pointer to this port's peer. | |
bool | _connected |
Whether this port is currently connected to a peer port. | |
Additional Inherited Members | |
Protected Member Functions inherited from gem5::Port | |
void | reportUnbound () const |
Port (const std::string &_name, PortID _id) | |
Abstract base class for ports. | |
Definition at line 50 of file etherint.hh.
|
inline |
Definition at line 57 of file etherint.hh.
|
inlinevirtual |
Definition at line 59 of file etherint.hh.
|
inline |
Definition at line 77 of file etherint.hh.
|
overridevirtual |
Attach to a peer port.
Reimplemented from gem5::Port.
Definition at line 38 of file etherint.cc.
References gem5::Port::_connected, fatal, name(), gem5::MipsISA::p, peer, and setPeer().
|
inline |
Definition at line 68 of file etherint.hh.
References peer.
|
inlinevirtual |
Reimplemented in gem5::DistEtherLink::LocalIface, and gem5::EtherLink::Interface.
Definition at line 78 of file etherint.hh.
Referenced by askBusy().
|
inline |
Return port name (for DPRINTF).
Definition at line 62 of file etherint.hh.
References portName.
Referenced by bind(), gem5::EtherSwitch::Interface::learnSenderAddr(), gem5::EtherSwitch::Interface::recvPacket(), and setPeer().
|
inline |
Definition at line 70 of file etherint.hh.
References peer, and sendDone().
Referenced by gem5::EtherTapBase::recvSimulated().
|
pure virtual |
Implemented in gem5::DistEtherLink::LocalIface, gem5::EtherLink::Interface, gem5::EtherSwitch::Interface, gem5::EtherTapInt, gem5::IGbEInt, gem5::NSGigEInt, and gem5::sinic::Interface.
Referenced by sendPacket().
|
pure virtual |
Implemented in gem5::DistEtherLink::LocalIface, gem5::EtherLink::Interface, gem5::EtherSwitch::Interface, gem5::EtherTapInt, gem5::IGbEInt, gem5::NSGigEInt, and gem5::sinic::Interface.
Referenced by recvDone(), gem5::DistEtherLink::LocalIface::sendDone(), gem5::EtherLink::Interface::sendDone(), and gem5::EtherBus::txDone().
|
inline |
Definition at line 73 of file etherint.hh.
References peer, and recvPacket().
Referenced by gem5::EtherTapBase::retransmit(), gem5::DistEtherLink::RxLink::rxDone(), gem5::EtherTapBase::sendSimulated(), gem5::NSGigE::transmit(), gem5::sinic::Device::transmit(), and gem5::IGbE::txWire().
void gem5::EtherInt::setPeer | ( | EtherInt * | p | ) |
Definition at line 57 of file etherint.cc.
References name(), gem5::MipsISA::p, panic, and peer.
Referenced by bind().
|
overridevirtual |
Dettach from a peer port.
Reimplemented from gem5::Port.
Definition at line 50 of file etherint.cc.
References gem5::Port::_connected, and peer.
|
protected |
Definition at line 54 of file etherint.hh.
Referenced by askBusy(), bind(), getPeer(), recvDone(), gem5::DistEtherLink::LocalIface::sendDone(), gem5::EtherLink::Interface::sendDone(), sendPacket(), setPeer(), and unbind().
|
mutableprotected |
Definition at line 53 of file etherint.hh.
Referenced by name().