rename AlphaConsole to AlphaBackdoor
[gem5.git] / src / dev / sinic.cc
index ed5ab428c3b034d84c5710c54db5ea8d8d1ef046..c63966528c2be60830a672daf4fea6819936ad7e 100644 (file)
@@ -73,14 +73,14 @@ const char *TxStateStrings[] =
 //
 // Sinic PCI Device
 //
-Base::Base(Params *p)
+Base::Base(const Params *p)
     : PciDev(p), rxEnable(false), txEnable(false), clock(p->clock),
       intrDelay(p->intr_delay), intrTick(0), cpuIntrEnable(false),
       cpuPendingIntr(false), intrEvent(0), interface(NULL)
 {
 }
 
-Device::Device(Params *p)
+Device::Device(const Params *p)
     : Base(p), rxUnique(0), txUnique(0),
       virtualRegs(p->virtual_count < 1 ? 1 : p->virtual_count),
       rxFifo(p->rx_fifo_size), txFifo(p->tx_fifo_size),
@@ -89,6 +89,7 @@ Device::Device(Params *p)
       dmaReadDelay(p->dma_read_delay), dmaReadFactor(p->dma_read_factor),
       dmaWriteDelay(p->dma_write_delay), dmaWriteFactor(p->dma_write_factor)
 {
+    interface = new Interface(name() + ".int0", this);
     reset();
 
 }
@@ -266,6 +267,19 @@ Device::regStats()
     rxPacketRate = rxPackets / simSeconds;
 }
 
+EtherInt*
+Device::getEthPort(const std::string &if_name, int idx)
+{
+    if (if_name == "interface") {
+        if (interface->getPeer())
+            panic("interface already connected to\n");
+
+        return interface;
+    }
+    return NULL;
+}
+
+
 void
 Device::prepareIO(int cpu, int index)
 {
@@ -1197,7 +1211,7 @@ Device::transferDone()
 
     DPRINTF(Ethernet, "transfer complete: data in txFifo...schedule xmit\n");
 
-    txEvent.reschedule(curTick + cycles(1), true);
+    txEvent.reschedule(curTick + ticks(1), true);
 }
 
 bool
@@ -1595,21 +1609,6 @@ Device::unserialize(Checkpoint *cp, const std::string &section)
 
 /* namespace Sinic */ }
 
-Sinic::Interface *
-SinicIntParams::create()
-{
-    using namespace Sinic;
-
-    Interface *dev_int = new Interface(name, device);
-
-    if (peer) {
-        dev_int->setPeer(peer);
-        peer->setPeer(dev_int);
-    }
-
-    return dev_int;
-}
-
 Sinic::Device *
 SinicParams::create()
 {