edit to test_mips config file
[gem5.git] / mem / translating_port.hh
index eaecff35a45fc8e39c95ae0cf1b52fc305af0c94..7611ac3c7d2ff003cc2896577d01e819ab21bea8 100644 (file)
 #ifndef __MEM_TRANSLATING_PROT_HH__
 #define __MEM_TRANSLATING_PROT_HH__
 
-#include "mem/memory.hh"
+#include "mem/port.hh"
 
-class Port;
 class PageTable;
 
-class TranslatingPort
+class TranslatingPort : public FunctionalPort
 {
   private:
-    Port *port;
     PageTable *pTable;
+    bool allocating;
 
     TranslatingPort(const TranslatingPort &specmem);
     const TranslatingPort &operator=(const TranslatingPort &specmem);
 
   public:
-    TranslatingPort(Port *_port, PageTable *p_table);
+    TranslatingPort(PageTable *p_table, bool alloc = false);
     virtual ~TranslatingPort();
 
   public:
-    bool tryReadBlobFunctional(Addr addr, uint8_t *p, int size);
-    bool tryWriteBlobFunctional(Addr addr, uint8_t *p, int size,
-                                bool alloc = false);
-    bool tryMemsetBlobFunctional(Addr addr, uint8_t val, int size,
-                                 bool alloc = false);
-    bool tryWriteStringFunctional(Addr addr, const char *str);
-    bool tryReadStringFunctional(std::string &str, Addr addr);
+    bool tryReadBlob(Addr addr, uint8_t *p, int size);
+    bool tryWriteBlob(Addr addr, uint8_t *p, int size);
+    bool tryMemsetBlob(Addr addr, uint8_t val, int size);
+    bool tryWriteString(Addr addr, const char *str);
+    bool tryReadString(std::string &str, Addr addr);
+
+    virtual void readBlob(Addr addr, uint8_t *p, int size);
+    virtual void writeBlob(Addr addr, uint8_t *p, int size);
+    virtual void memsetBlob(Addr addr, uint8_t val, int size);
+    void writeString(Addr addr, const char *str);
+    void readString(std::string &str, Addr addr);
 
-    void readBlobFunctional(Addr addr, uint8_t *p, int size);
-    void writeBlobFunctional(Addr addr, uint8_t *p, int size,
-                             bool alloc = false);
-    void memsetBlobFunctional(Addr addr, uint8_t val, int size,
-                              bool alloc = false);
-    void writeStringFunctional(Addr addr, const char *str);
-    void readStringFunctional(std::string &str, Addr addr);
 };
 
 #endif