* the system.
*/
-#ifndef __MEM_FS_PORT_PROXY_HH__
-#define __MEM_FS_PORT_PROXY_HH__
+#ifndef __MEM_FS_TRANSLATING_PORT_PROXY_HH__
+#define __MEM_FS_TRANSLATING_PORT_PROXY_HH__
-#include "arch/vtophys.hh"
#include "mem/port_proxy.hh"
+class ThreadContext;
+
/**
* A TranslatingPortProxy in FS mode translates a virtual address to a
* physical address and then calls the read/write functions of the
FSTranslatingPortProxy(ThreadContext* tc);
- FSTranslatingPortProxy(Port &port);
+ FSTranslatingPortProxy(SendFunctionalFunc func,
+ unsigned int cacheLineSize);
+ FSTranslatingPortProxy(MasterPort &port,
+ unsigned int cacheLineSize);
- virtual ~FSTranslatingPortProxy();
+ ~FSTranslatingPortProxy() {}
- /** Version of readblob that translates virt->phys and deals
+ /** Version of tryReadblob that translates virt->phys and deals
* with page boundries. */
- virtual void readBlob(Addr addr, uint8_t *p, int size) const;
+ bool tryReadBlob(Addr addr, void *p, int size) const override;
- /** Version of writeBlob that translates virt->phys and deals
+ /** Version of tryWriteBlob that translates virt->phys and deals
* with page boundries. */
- virtual void writeBlob(Addr addr, uint8_t *p, int size) const;
+ bool tryWriteBlob(Addr addr, const void *p, int size) const override;
/**
* Fill size bytes starting at addr with byte value val.
*/
- virtual void memsetBlob(Addr address, uint8_t v, int size) const;
+ bool tryMemsetBlob(Addr address, uint8_t v, int size) const override;
};
-void CopyOut(ThreadContext *tc, void *dest, Addr src, size_t cplen);
-void CopyIn(ThreadContext *tc, Addr dest, void *source, size_t cplen);
-void CopyStringOut(ThreadContext *tc, char *dst, Addr vaddr, size_t maxlen);
-void CopyStringIn(ThreadContext *tc, char *src, Addr vaddr);
-
-#endif //__MEM_FS_PORT_PROXY_HH__
+#endif //__MEM_FS_TRANSLATING_PORT_PROXY_HH__