diff options
Diffstat (limited to 'src/dev/net/etherint.cc')
-rw-r--r-- | src/dev/net/etherint.cc | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/dev/net/etherint.cc b/src/dev/net/etherint.cc index 0c5e6b817..b55e625f7 100644 --- a/src/dev/net/etherint.cc +++ b/src/dev/net/etherint.cc @@ -34,6 +34,25 @@ #include "sim/sim_object.hh" void +EtherInt::bind(Port &peer) +{ + EtherInt *p = dynamic_cast<EtherInt *>(&peer); + if (!p) { + fatal("Attempt to bind port %s to non-ethernet port %s.", + name(), peer.name()); + } + setPeer(p); + _connected = true; +} + +void +EtherInt::unbind() +{ + peer = nullptr; + _connected = false; +} + +void EtherInt::setPeer(EtherInt *p) { if (peer && peer != p) |