-
- class CpuSidePort : public CachePort
- {
- public:
- CpuSidePort(const std::string &_name,
- Cache<TagStore> *_cache,
- const std::string &_label,
- std::vector<Range<Addr> > filterRanges);
-
- // BaseCache::CachePort just has a BaseCache *; this function
- // lets us get back the type info we lost when we stored the
- // cache pointer there.
- Cache<TagStore> *myCache() {
- return static_cast<Cache<TagStore> *>(cache);
- }
-
- virtual void getDeviceAddressRanges(AddrRangeList &resp,
- bool &snoop);
-
- virtual bool recvTiming(PacketPtr pkt);
-
- virtual Tick recvAtomic(PacketPtr pkt);
-
- virtual void recvFunctional(PacketPtr pkt);
- };
-
- class MemSidePort : public CachePort
- {
- public:
- MemSidePort(const std::string &_name,
- Cache<TagStore> *_cache,
- const std::string &_label,
- std::vector<Range<Addr> > filterRanges);
-
- // BaseCache::CachePort just has a BaseCache *; this function
- // lets us get back the type info we lost when we stored the
- // cache pointer there.
- Cache<TagStore> *myCache() {
- return static_cast<Cache<TagStore> *>(cache);
- }
-
- void sendPacket();
-
- void processSendEvent();
-
- virtual void getDeviceAddressRanges(AddrRangeList &resp,
- bool &snoop);
-
- virtual bool recvTiming(PacketPtr pkt);
-
- virtual void recvRetry();
-
- virtual Tick recvAtomic(PacketPtr pkt);
-
- virtual void recvFunctional(PacketPtr pkt);
-
- typedef EventWrapper<MemSidePort, &MemSidePort::processSendEvent>
- SendEvent;
- };
-
- /** Tag and data Storage */
- TagStore *tags;
-
- /** Prefetcher */
- BasePrefetcher *prefetcher;
-
- /** Temporary cache block for occasional transitory use */
- BlkType *tempBlock;
-