summaryrefslogtreecommitdiff
path: root/src/dev/net/etherint.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/dev/net/etherint.cc')
-rw-r--r--src/dev/net/etherint.cc19
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)