arch-arm: Do not check MustBeOne flag for TLB requests from the prefetcher
[gem5.git] / src / mem / addr_mapper.hh
index f469b26bad2ff261b84ce11b3206e482c9c73e38..e6229d67a2599733decc8789c52dc2f6e6745e1e 100644 (file)
 #ifndef __MEM_ADDR_MAPPER_HH__
 #define __MEM_ADDR_MAPPER_HH__
 
-#include "mem/mem_object.hh"
+#include "mem/port.hh"
 #include "params/AddrMapper.hh"
 #include "params/RangeAddrMapper.hh"
+#include "sim/sim_object.hh"
 
 /**
  * An address mapper changes the packet addresses in going from the
@@ -53,7 +54,7 @@
  * currently not modified.
  */
 
-class AddrMapper : public MemObject
+class AddrMapper : public SimObject
 {
 
   public:
@@ -62,13 +63,10 @@ class AddrMapper : public MemObject
 
     virtual ~AddrMapper() { }
 
-    virtual MasterPort& getMasterPort(const std::string& if_name,
-                                      int idx = -1);
+    Port &getPort(const std::string &if_name,
+                  PortID idx=InvalidPortID) override;
 
-    virtual SlavePort& getSlavePort(const std::string& if_name,
-                                    int idx = -1);
-
-    virtual void init();
+    void init() override;
 
   protected:
 
@@ -87,23 +85,16 @@ class AddrMapper : public MemObject
       public:
 
         /**
-         * Construct a new sender state and remember the original one
-         * so that we can implement a stack.
+         * Construct a new sender state to remember the original address.
          *
-         * @param _origSenderState Sender state to remember
          * @param _origAddr Address before remapping
          */
-        AddrMapperSenderState(SenderState* _origSenderState,
-                              Addr _origAddr)
-            : origSenderState(_origSenderState), origAddr(_origAddr)
+        AddrMapperSenderState(Addr _origAddr) : origAddr(_origAddr)
         { }
 
         /** Destructor */
         ~AddrMapperSenderState() { }
 
-        /** Pointer to old sender state of packet */
-        SenderState* origSenderState;
-
         /** The original address the packet was destined for */
         Addr origAddr;
 
@@ -150,14 +141,9 @@ class AddrMapper : public MemObject
             return mapper.isSnooping();
         }
 
-        unsigned deviceBlockSize() const
-        {
-            return mapper.deviceBlockSizeMaster();
-        }
-
-        void recvRetry()
+        void recvReqRetry()
         {
-            mapper.recvRetryMaster();
+            mapper.recvReqRetry();
         }
 
       private:
@@ -200,19 +186,14 @@ class AddrMapper : public MemObject
             return mapper.recvTimingSnoopResp(pkt);
         }
 
-        unsigned deviceBlockSize() const
-        {
-            return mapper.deviceBlockSizeSlave();
-        }
-
         AddrRangeList getAddrRanges() const
         {
             return mapper.getAddrRanges();
         }
 
-        void recvRetry()
+        void recvRespRetry()
         {
-            mapper.recvRetrySlave();
+            mapper.recvRespRetry();
         }
 
       private:
@@ -240,17 +221,13 @@ class AddrMapper : public MemObject
 
     bool recvTimingSnoopResp(PacketPtr pkt);
 
-    unsigned deviceBlockSizeMaster();
-
-    unsigned deviceBlockSizeSlave();
-
     virtual AddrRangeList getAddrRanges() const = 0;
 
     bool isSnooping() const;
 
-    void recvRetryMaster();
+    void recvReqRetry();
 
-    void recvRetrySlave();
+    void recvRespRetry();
 
     void recvRangeChange();
 };