diff options
-rw-r--r-- | src/dev/i8254xGBe.cc | 4 | ||||
-rw-r--r-- | src/dev/i8254xGBe.hh | 23 |
2 files changed, 17 insertions, 10 deletions
diff --git a/src/dev/i8254xGBe.cc b/src/dev/i8254xGBe.cc index 70dba7c22..213ad580a 100644 --- a/src/dev/i8254xGBe.cc +++ b/src/dev/i8254xGBe.cc @@ -58,7 +58,7 @@ using namespace iGbReg; using namespace Net; IGbE::IGbE(const Params *p) - : EtherDevice(p), etherInt(NULL), drainManager(NULL), + : EtherDevice(p), etherInt(NULL), cpa(NULL), drainManager(NULL), rxFifo(p->rx_fifo_size), txFifo(p->tx_fifo_size), rxTick(false), txTick(false), txFifoTick(false), rxDmaPacket(false), pktOffset(0), fetchDelay(p->fetch_delay), wbDelay(p->wb_delay), @@ -2390,7 +2390,7 @@ IGbE::txWire() anPq("TXQ", "TX FIFO Q"); if (etherInt->sendPacket(txFifo.front())) { - cpa->hwQ(CPA::FL_NONE, sys, macAddr, "TXQ", "WireQ", 0); + anQ("TXQ", "WireQ"); if (DTRACE(EthernetSM)) { IpPtr ip(txFifo.front()); if (ip) diff --git a/src/dev/i8254xGBe.hh b/src/dev/i8254xGBe.hh index 295712717..27439740d 100644 --- a/src/dev/i8254xGBe.hh +++ b/src/dev/i8254xGBe.hh @@ -182,31 +182,38 @@ class IGbE : public EtherDevice void checkDrain(); void anBegin(std::string sm, std::string st, int flags = CPA::FL_NONE) { - cpa->hwBegin((CPA::flags)flags, sys, macAddr, sm, st); + if (cpa) + cpa->hwBegin((CPA::flags)flags, sys, macAddr, sm, st); } - void anQ(std::string sm, std::string q) { - cpa->hwQ(CPA::FL_NONE, sys, macAddr, sm, q, macAddr); + void anQ(std::string sm, std::string q) { + if (cpa) + cpa->hwQ(CPA::FL_NONE, sys, macAddr, sm, q, macAddr); } void anDq(std::string sm, std::string q) { - cpa->hwDq(CPA::FL_NONE, sys, macAddr, sm, q, macAddr); + if (cpa) + cpa->hwDq(CPA::FL_NONE, sys, macAddr, sm, q, macAddr); } void anPq(std::string sm, std::string q, int num = 1) { - cpa->hwPq(CPA::FL_NONE, sys, macAddr, sm, q, macAddr, NULL, num); + if (cpa) + cpa->hwPq(CPA::FL_NONE, sys, macAddr, sm, q, macAddr, NULL, num); } void anRq(std::string sm, std::string q, int num = 1) { - cpa->hwRq(CPA::FL_NONE, sys, macAddr, sm, q, macAddr, NULL, num); + if (cpa) + cpa->hwRq(CPA::FL_NONE, sys, macAddr, sm, q, macAddr, NULL, num); } void anWe(std::string sm, std::string q) { - cpa->hwWe(CPA::FL_NONE, sys, macAddr, sm, q, macAddr); + if (cpa) + cpa->hwWe(CPA::FL_NONE, sys, macAddr, sm, q, macAddr); } void anWf(std::string sm, std::string q) { - cpa->hwWf(CPA::FL_NONE, sys, macAddr, sm, q, macAddr); + if (cpa) + cpa->hwWf(CPA::FL_NONE, sys, macAddr, sm, q, macAddr); } |