X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmem%2Ftport.cc;h=9f0f08814b92ed4961985743a2d56117cbfd5d06;hb=24bfdc36f19fddbfcb33cc2f33fb216e8da0382d;hp=9f9403a22ecdc560dd6ca6f4230ee955ff0827ad;hpb=ac1368df50af123b32b41d7115ea4a0f15f7c97f;p=gem5.git diff --git a/src/mem/tport.cc b/src/mem/tport.cc index 9f9403a22..9f0f08814 100644 --- a/src/mem/tport.cc +++ b/src/mem/tport.cc @@ -41,9 +41,10 @@ * Andreas Hansson */ -#include "mem/mem_object.hh" #include "mem/tport.hh" +#include "mem/mem_object.hh" + SimpleTimingPort::SimpleTimingPort(const std::string& _name, MemObject* _owner) : QueuedSlavePort(_name, _owner, queueImpl), queueImpl(*_owner, *this) @@ -53,7 +54,7 @@ SimpleTimingPort::SimpleTimingPort(const std::string& _name, void SimpleTimingPort::recvFunctional(PacketPtr pkt) { - if (!respQueue.checkFunctional(pkt)) { + if (!respQueue.trySatisfyFunctional(pkt)) { // do an atomic access and throw away the returned latency recvAtomic(pkt); } @@ -63,9 +64,11 @@ bool SimpleTimingPort::recvTimingReq(PacketPtr pkt) { // the SimpleTimingPort should not be used anywhere where there is - // a need to deal with inhibited packets - if (pkt->memInhibitAsserted()) - panic("SimpleTimingPort should never see an inhibited request\n"); + // a need to deal with snoop responses and their flow control + // requirements + if (pkt->cacheResponding()) + panic("SimpleTimingPort should never see packets with the " + "cacheResponding flag set\n"); bool needsResponse = pkt->needsResponse(); Tick latency = recvAtomic(pkt);