summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dev/i8254xGBe.cc4
-rw-r--r--src/dev/i8254xGBe.hh23
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);
}