ISA: Make the decode function part of the ISA's decoder.
[gem5.git] / src / dev / etherlink.cc
index f3f38fc20fb04f08eba5fc097c566f822dfcd329..5ebc4fba52ee8c35081054e24c16909794cbdde5 100644 (file)
 
 #include "base/random.hh"
 #include "base/trace.hh"
+#include "debug/Ethernet.hh"
+#include "debug/EthernetData.hh"
 #include "dev/etherdump.hh"
 #include "dev/etherint.hh"
 #include "dev/etherlink.hh"
 #include "dev/etherpkt.hh"
 #include "params/EtherLink.hh"
+#include "sim/core.hh"
 #include "sim/serialize.hh"
 #include "sim/system.hh"
-#include "sim/core.hh"
 
 using namespace std;
 
@@ -154,7 +156,7 @@ EtherLink::Link::txDone()
     if (linkDelay > 0) {
         DPRINTF(Ethernet, "packet delayed: delay=%d\n", linkDelay);
         Event *event = new LinkDelayEvent(this, packet);
-        parent->schedule(event, curTick + linkDelay);
+        parent->schedule(event, curTick() + linkDelay);
     } else {
         txComplete(packet);
     }
@@ -183,7 +185,7 @@ EtherLink::Link::transmit(EthPacketPtr pkt)
 
     DPRINTF(Ethernet, "scheduling packet: delay=%d, (rate=%f)\n",
             delay, ticksPerByte);
-    parent->schedule(doneEvent, curTick + delay);
+    parent->schedule(doneEvent, curTick() + delay);
 
     return true;
 }
@@ -226,17 +228,13 @@ EtherLink::Link::unserialize(const string &base, Checkpoint *cp,
 }
 
 LinkDelayEvent::LinkDelayEvent()
-    : link(NULL)
+    : Event(Default_Pri, AutoSerialize | AutoDelete), link(NULL)
 {
-    setFlags(AutoSerialize);
-    setFlags(AutoDelete);
 }
 
 LinkDelayEvent::LinkDelayEvent(EtherLink::Link *l, EthPacketPtr p)
-    : link(l), packet(p)
+    : Event(Default_Pri, AutoSerialize | AutoDelete), link(l), packet(p)
 {
-    setFlags(AutoSerialize);
-    setFlags(AutoDelete);
 }
 
 void