}
-
void
BaseCache::CachePort::recvStatusChange(Port::Status status)
{
}
}
-void
-BaseCache::CachePort::getDeviceAddressRanges(AddrRangeList &resp, bool &snoop)
-{
- AddrRangeList dummy;
- otherPort->getPeerAddressRanges(resp, dummy);
-}
-
int
BaseCache::CachePort::deviceBlockSize()
{
virtual void recvStatusChange(Status status);
- virtual void getDeviceAddressRanges(AddrRangeList &resp,
- bool &snoop);
-
virtual int deviceBlockSize();
bool recvRetryCommon();
void processRequestEvent();
void processResponseEvent();
+ virtual void getDeviceAddressRanges(AddrRangeList &resp,
+ bool &snoop);
+
virtual bool recvTiming(PacketPtr pkt);
virtual void recvRetry();
void processRequestEvent();
void processResponseEvent();
+ virtual void getDeviceAddressRanges(AddrRangeList &resp,
+ bool &snoop);
+
virtual bool recvTiming(PacketPtr pkt);
virtual void recvRetry();
}
+template<class TagStore, class Coherence>
+void
+Cache<TagStore,Coherence>::CpuSidePort::
+getDeviceAddressRanges(AddrRangeList &resp, bool &snoop)
+{
+ // CPU side port doesn't snoop; it's a target only.
+ bool dummy;
+ otherPort->getPeerAddressRanges(resp, dummy);
+ snoop = false;
+}
+
+
template<class TagStore, class Coherence>
bool
Cache<TagStore,Coherence>::CpuSidePort::recvTiming(PacketPtr pkt)
}
+template<class TagStore, class Coherence>
+void
+Cache<TagStore,Coherence>::MemSidePort::
+getDeviceAddressRanges(AddrRangeList &resp, bool &snoop)
+{
+ // Memory-side port always snoops.
+ bool dummy;
+ otherPort->getPeerAddressRanges(resp, dummy);
+ snoop = true;
+}
+
+
template<class TagStore, class Coherence>
bool
Cache<TagStore,Coherence>::MemSidePort::recvTiming(PacketPtr pkt)