diff options
Diffstat (limited to 'src/mem/port.cc')
-rw-r--r-- | src/mem/port.cc | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/mem/port.cc b/src/mem/port.cc index 001576fe3..933e98243 100644 --- a/src/mem/port.cc +++ b/src/mem/port.cc @@ -144,6 +144,13 @@ MasterPort::sendAtomic(PacketPtr pkt) return _slavePort->recvAtomic(pkt); } +Tick +MasterPort::sendAtomicBackdoor(PacketPtr pkt, MemBackdoorPtr &backdoor) +{ + assert(pkt->isRequest()); + return _slavePort->recvAtomicBackdoor(pkt, backdoor); +} + void MasterPort::sendFunctional(PacketPtr pkt) { @@ -195,7 +202,8 @@ MasterPort::printAddr(Addr a) * Slave port */ SlavePort::SlavePort(const std::string& name, MemObject* _owner, PortID id) - : BaseSlavePort(name, id), _masterPort(NULL), owner(*_owner) + : BaseSlavePort(name, id), _masterPort(NULL), defaultBackdoorWarned(false), + owner(*_owner) { } @@ -220,6 +228,16 @@ SlavePort::slaveBind(MasterPort& master_port) } Tick +SlavePort::recvAtomicBackdoor(PacketPtr pkt, MemBackdoorPtr &backdoor) +{ + if (!defaultBackdoorWarned) { + warn("Port %s doesn't support requesting a back door.", name()); + defaultBackdoorWarned = true; + } + return recvAtomic(pkt); +} + +Tick SlavePort::sendAtomicSnoop(PacketPtr pkt) { assert(pkt->isRequest()); |