* 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)
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);
}
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);