|
gem5 [DEVELOP-FOR-25.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.
References gem5::InvalidPortID, name(), peer, gem5::Port::Port(), and portName.
Referenced by bind(), gem5::EtherTapInt::EtherTapInt(), getPeer(), gem5::IGbEInt::IGbEInt(), gem5::EtherLink::Interface::Interface(), gem5::EtherSwitch::Interface::Interface(), gem5::sinic::Interface::Interface(), gem5::DistEtherLink::LocalIface::LocalIface(), gem5::NSGigEInt::NSGigEInt(), and setPeer().
|
inlinevirtual |
Definition at line 59 of file etherint.hh.
|
inline |
Definition at line 77 of file etherint.hh.
References peer.
|
overridevirtual |
Attach to a peer port.
Reimplemented from gem5::Port.
Definition at line 38 of file etherint.cc.
References gem5::Port::_connected, EtherInt(), fatal, name(), gem5::MipsISA::p, peer, gem5::Port::Port(), and setPeer().
|
inline |
Definition at line 68 of file etherint.hh.
References EtherInt(), and peer.
|
inlinevirtual |
Reimplemented in gem5::DistEtherLink::LocalIface, and gem5::EtherLink::Interface.
Definition at line 78 of file etherint.hh.
|
inline |
Return port name (for DPRINTF).
Definition at line 62 of file etherint.hh.
References portName.
Referenced by bind(), EtherInt(), gem5::EtherTapInt::EtherTapInt(), gem5::IGbEInt::IGbEInt(), gem5::EtherLink::Interface::Interface(), gem5::EtherSwitch::Interface::Interface(), gem5::sinic::Interface::Interface(), gem5::EtherSwitch::Interface::learnSenderAddr(), gem5::DistEtherLink::LocalIface::LocalIface(), gem5::NSGigEInt::NSGigEInt(), and gem5::EtherSwitch::Interface::recvPacket().
|
inline |
Definition at line 70 of file etherint.hh.
References peer.
|
pure virtual |
|
pure virtual |
|
inline |
Definition at line 73 of file etherint.hh.
References peer.
Referenced by gem5::EtherSwitch::Interface::transmit().
| void gem5::EtherInt::setPeer | ( | EtherInt * | p | ) |
Definition at line 57 of file etherint.cc.
References EtherInt(), 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(), EtherInt(), 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 EtherInt(), and name().