arch, base, sim: Demote (SE|FS)TranslatingPortProxy &s to PortProxy &s.
authorGabe Black <gabeblack@google.com>
Thu, 2 May 2019 07:55:10 +0000 (00:55 -0700)
committerGabe Black <gabeblack@google.com>
Thu, 30 May 2019 14:20:03 +0000 (14:20 +0000)
Al(most) all of the interesting differences between the two classes
have been removed. There are some control methods which are still
specific to each type which may require treating them as their true
type, but most code that consumes them doesn't need to worry about
which is which.

Change-Id: Ie592676f1e496c7940605b66e55cd7fae18e59d6
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18577
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Brandon Potter <Brandon.Potter@amd.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

16 files changed:
src/arch/alpha/linux/system.cc
src/arch/alpha/stacktrace.cc
src/arch/alpha/utility.cc
src/arch/arm/stacktrace.cc
src/arch/arm/utility.cc
src/arch/mips/stacktrace.cc
src/arch/sparc/utility.cc
src/arch/x86/linux/process.cc
src/arch/x86/pseudo_inst.cc
src/arch/x86/stacktrace.cc
src/base/remote_gdb.cc
src/sim/process_impl.hh
src/sim/syscall_emul.cc
src/sim/syscall_emul.hh
src/sim/syscall_emul_buf.hh
src/sim/vptr.hh

index d963d29ee2f8eace8c93fae9ce7963a3eba38b4d..ae9e5ef07d15f56626f63ab26c9f4dde3e84c91a 100644 (file)
@@ -176,7 +176,7 @@ LinuxAlphaSystem::setDelayLoop(ThreadContext *tc)
     if (kernelSymtab->findAddress("loops_per_jiffy", addr)) {
         Tick cpuFreq = tc->getCpuPtr()->frequency();
         assert(intrFreq);
-        FSTranslatingPortProxy &vp = tc->getVirtProxy();
+        PortProxy &vp = tc->getVirtProxy();
         vp.write(addr, (uint32_t)((cpuFreq / intrFreq) * 0.9988),
                  GuestByteOrder);
     }
index f5833b070adacd26729693a6175336d2930d6f78..bf2d5b34b8a7130015e5f90394e1cb3da018f7c4 100644 (file)
@@ -49,7 +49,7 @@ ProcessInfo::ProcessInfo(ThreadContext *_tc)
     : tc(_tc)
 {
     Addr addr = 0;
-    FSTranslatingPortProxy &vp = tc->getVirtProxy();
+    PortProxy &vp = tc->getVirtProxy();
     SymbolTable *symtab = tc->getSystemPtr()->kernelSymtab;
 
     if (!symtab->findAddress("thread_info_size", addr))
@@ -82,7 +82,7 @@ ProcessInfo::task(Addr ksp) const
 
     Addr tsk;
 
-    FSTranslatingPortProxy &vp = tc->getVirtProxy();
+    PortProxy &vp = tc->getVirtProxy();
     tsk = vp.read<Addr>(base + task_off, GuestByteOrder);
 
     return tsk;
@@ -97,7 +97,7 @@ ProcessInfo::pid(Addr ksp) const
 
     uint16_t pd;
 
-    FSTranslatingPortProxy &vp = tc->getVirtProxy();
+    PortProxy &vp = tc->getVirtProxy();
     pd = vp.read<uint16_t>(task + pid_off, GuestByteOrder);
 
     return pd;
index c644911ba2100127405b133c290cf0b76d372b15..8264c9411301f063a1e721ad8db9bc6845a29b10 100644 (file)
@@ -53,7 +53,7 @@ getArgument(ThreadContext *tc, int &number, uint16_t size, bool fp)
             return tc->readIntReg(16 + number);
     } else {
         Addr sp = tc->readIntReg(StackPointerReg);
-        FSTranslatingPortProxy &vp = tc->getVirtProxy();
+        PortProxy &vp = tc->getVirtProxy();
         uint64_t arg = vp.read<uint64_t>(sp +
                                          (number-NumArgumentRegs) *
                                          sizeof(uint64_t));
index 837b6ad8b2fde1db5b09723be638c6e899f53738..8fadb81c347a116b7325936e197135820bf986ae 100644 (file)
@@ -47,7 +47,7 @@ namespace ArmISA
 static int32_t
 readSymbol(ThreadContext *tc, const std::string name)
 {
-    FSTranslatingPortProxy &vp = tc->getVirtProxy();
+    PortProxy &vp = tc->getVirtProxy();
     SymbolTable *symtab = tc->getSystemPtr()->kernelSymtab;
 
     Addr addr;
@@ -75,7 +75,7 @@ ProcessInfo::task(Addr ksp) const
 
     Addr tsk;
 
-    FSTranslatingPortProxy &vp = tc->getVirtProxy();
+    PortProxy &vp = tc->getVirtProxy();
     tsk = vp.read<Addr>(base + task_off, GuestByteOrder);
 
     return tsk;
@@ -90,7 +90,7 @@ ProcessInfo::pid(Addr ksp) const
 
     uint16_t pd;
 
-    FSTranslatingPortProxy &vp = tc->getVirtProxy();
+    PortProxy &vp = tc->getVirtProxy();
     pd = vp.read<uint16_t>(task + pid_off, GuestByteOrder);
 
     return pd;
index 2888ebbf38f8422e2dbd2e7bcf041f9374bca8c1..2f7d916d2c2bd8c025a5cbe6781c9daeb574b3bc 100644 (file)
@@ -107,7 +107,7 @@ getArgument(ThreadContext *tc, int &number, uint16_t size, bool fp)
             }
         } else {
             Addr sp = tc->readIntReg(StackPointerReg);
-            FSTranslatingPortProxy &vp = tc->getVirtProxy();
+            PortProxy &vp = tc->getVirtProxy();
             uint64_t arg;
             if (size == sizeof(uint64_t)) {
                 // If the argument is even it must be aligned
index 7517b9d0ba839c4b30d84d5ffb3dea12b41234d7..fe464e32a29f48276afceed41ae8981738fc9292 100644 (file)
@@ -55,7 +55,7 @@ ProcessInfo::task(Addr ksp) const
 
     Addr tsk;
 
-    FSTranslatingPortProxy &vp = tc->getVirtProxy();
+    PortProxy &vp = tc->getVirtProxy();
     tsk = vp.read<Addr>(base + task_off, GuestByteOrder);
 
     return tsk;
@@ -70,7 +70,7 @@ ProcessInfo::pid(Addr ksp) const
 
     uint16_t pd;
 
-    FSTranslatingPortProxy &vp = tc->getVirtProxy();
+    PortProxy &vp = tc->getVirtProxy();
     pd = vp.read<uint16_t>(task + pid_off, GuestByteOrder);
 
     return pd;
index 6b3e5d2044ce6c0adc8b7675ce6e067f19b22951..5b05eaf71b45b4ccfeeed2ed2032a044836ffd54 100644 (file)
@@ -57,7 +57,7 @@ getArgument(ThreadContext *tc, int &number, uint16_t size, bool fp)
         return tc->readIntReg(8 + number);
     } else {
         Addr sp = tc->readIntReg(StackPointerReg);
-        FSTranslatingPortProxy &vp = tc->getVirtProxy();
+        PortProxy &vp = tc->getVirtProxy();
         uint64_t arg = vp.read<uint64_t>(sp + 92 +
                             (number-NumArgumentRegs) * sizeof(uint64_t));
         return arg;
index d38b168fde7c1c51630f6af4ed6215a3a1936e3e..1d8bcbf6c9c5a542367dfb6f701b90cf7aa76f7c 100644 (file)
@@ -125,7 +125,7 @@ archPrctlFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
     int code = process->getSyscallArg(tc, index);
     uint64_t addr = process->getSyscallArg(tc, index);
     uint64_t fsBase, gsBase;
-    SETranslatingPortProxy &p = tc->getMemProxy();
+    PortProxy &p = tc->getMemProxy();
     switch(code)
     {
       // Each of these valid options should actually check addr.
index fc71af1183d9ee09c53f5e8075df1416568581a6..253c91441d577b37761d2c5e087bd679e22c7b62 100644 (file)
@@ -68,7 +68,7 @@ m5PageFault(ThreadContext *tc)
 
     Process *p = tc->getProcessPtr();
     if (!p->fixupStackFault(tc->readMiscReg(MISCREG_CR2))) {
-        SETranslatingPortProxy proxy = tc->getMemProxy();
+        PortProxy &proxy = tc->getMemProxy();
         // at this point we should have 6 values on the interrupt stack
         int size = 6;
         uint64_t is[size];
index b5fbb5ce5567124e479d8357f2ff8aaba8438fa2..0141a9e75cec223e5ee1326f02fa5376a61ca223 100644 (file)
@@ -47,7 +47,7 @@ namespace X86ISA
 static int32_t
 readSymbol(ThreadContext *tc, const std::string name)
 {
-    FSTranslatingPortProxy &vp = tc->getVirtProxy();
+    PortProxy &vp = tc->getVirtProxy();
     SymbolTable *symtab = tc->getSystemPtr()->kernelSymtab;
 
     Addr addr;
@@ -75,7 +75,7 @@ ProcessInfo::task(Addr ksp) const
 
     Addr tsk;
 
-    FSTranslatingPortProxy &vp = tc->getVirtProxy();
+    PortProxy &vp = tc->getVirtProxy();
     tsk = vp.read<Addr>(base + task_off, GuestByteOrder);
 
     return tsk;
@@ -90,7 +90,7 @@ ProcessInfo::pid(Addr ksp) const
 
     uint16_t pd;
 
-    FSTranslatingPortProxy &vp = tc->getVirtProxy();
+    PortProxy &vp = tc->getVirtProxy();
     pd = vp.read<uint16_t>(task + pid_off, GuestByteOrder);
 
     return pd;
index c092620a9a12a49b4aa84c9c5996805c50fdfbea..347345d1760a7182e5e570202f856db7dedfa72d 100644 (file)
@@ -625,10 +625,10 @@ BaseRemoteGDB::read(Addr vaddr, size_t size, char *data)
     DPRINTF(GDBRead, "read:  addr=%#x, size=%d", vaddr, size);
 
     if (FullSystem) {
-        FSTranslatingPortProxy &proxy = tc->getVirtProxy();
+        PortProxy &proxy = tc->getVirtProxy();
         proxy.readBlob(vaddr, data, size);
     } else {
-        SETranslatingPortProxy &proxy = tc->getMemProxy();
+        PortProxy &proxy = tc->getMemProxy();
         proxy.readBlob(vaddr, data, size);
     }
 
@@ -668,10 +668,10 @@ BaseRemoteGDB::write(Addr vaddr, size_t size, const char *data)
             DPRINTFNR("\n");
     }
     if (FullSystem) {
-        FSTranslatingPortProxy &proxy = tc->getVirtProxy();
+        PortProxy &proxy = tc->getVirtProxy();
         proxy.writeBlob(vaddr, data, size);
     } else {
-        SETranslatingPortProxy &proxy = tc->getMemProxy();
+        PortProxy &proxy = tc->getMemProxy();
         proxy.writeBlob(vaddr, data, size);
     }
 
index ae2a3b5715768d147069befe47cd3e81f0409f6f..75134121bcefbd8acc2ffc1786cf499575bbccfc 100644 (file)
@@ -42,7 +42,7 @@ template<class AddrType>
 void
 copyStringArray(std::vector<std::string> &strings,
         AddrType array_ptr, AddrType data_ptr,
-        SETranslatingPortProxy& memProxy)
+        PortProxy& memProxy)
 {
     AddrType data_ptr_swap;
     for (std::vector<std::string>::size_type i = 0; i < strings.size(); ++i) {
index 442a28c415cf8aaaec25c21b0a147ed57a50c037..7e8f9062a1218274615966b55dfbc7cdc4d78378 100644 (file)
@@ -265,7 +265,7 @@ brkFunc(SyscallDesc *desc, int num, ThreadContext *tc)
             // if the address is already there, zero it out
             else {
                 uint8_t zero = 0;
-                SETranslatingPortProxy &tp = tc->getMemProxy();
+                PortProxy &tp = tc->getMemProxy();
 
                 // split non-page aligned accesses
                 Addr next_page = roundUp(gen.addr(), PageBytes);
index dbbdf4734552b1949ad91c918abc4623689e13b1..4cb93c88fae01da076eea90fef37cdf79534a586 100644 (file)
@@ -603,7 +603,7 @@ convertStat64Buf(target_stat &tgt, host_stat64 *host, bool fakeTTY = false)
 // Here are a couple of convenience functions
 template<class OS>
 void
-copyOutStatBuf(SETranslatingPortProxy &mem, Addr addr,
+copyOutStatBuf(PortProxy &mem, Addr addr,
                hst_stat *host, bool fakeTTY = false)
 {
     typedef TypedBufferArg<typename OS::tgt_stat> tgt_stat_buf;
@@ -614,7 +614,7 @@ copyOutStatBuf(SETranslatingPortProxy &mem, Addr addr,
 
 template<class OS>
 void
-copyOutStat64Buf(SETranslatingPortProxy &mem, Addr addr,
+copyOutStat64Buf(PortProxy &mem, Addr addr,
                  hst_stat64 *host, bool fakeTTY = false)
 {
     typedef TypedBufferArg<typename OS::tgt_stat64> tgt_stat_buf;
@@ -625,7 +625,7 @@ copyOutStat64Buf(SETranslatingPortProxy &mem, Addr addr,
 
 template <class OS>
 void
-copyOutStatfsBuf(SETranslatingPortProxy &mem, Addr addr,
+copyOutStatfsBuf(PortProxy &mem, Addr addr,
                  hst_statfs *host)
 {
     TypedBufferArg<typename OS::tgt_statfs> tgt(addr);
@@ -1663,7 +1663,7 @@ readvFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
         return -EBADF;
     int sim_fd = ffdp->getSimFD();
 
-    SETranslatingPortProxy &prox = tc->getMemProxy();
+    PortProxy &prox = tc->getMemProxy();
     uint64_t tiov_base = p->getSyscallArg(tc, index);
     size_t count = p->getSyscallArg(tc, index);
     typename OS::tgt_iovec tiov[count];
@@ -1703,7 +1703,7 @@ writevFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
         return -EBADF;
     int sim_fd = hbfdp->getSimFD();
 
-    SETranslatingPortProxy &prox = tc->getMemProxy();
+    PortProxy &prox = tc->getMemProxy();
     uint64_t tiov_base = p->getSyscallArg(tc, index);
     size_t count = p->getSyscallArg(tc, index);
     struct iovec hiov[count];
@@ -1841,7 +1841,7 @@ mmapImpl(SyscallDesc *desc, int num, ThreadContext *tc, bool is_mmap2)
     p->allocateMem(start, length, clobber);
 
     // Transfer content into target address space.
-    SETranslatingPortProxy &tp = tc->getMemProxy();
+    PortProxy &tp = tc->getMemProxy();
     if (tgt_flags & OS::TGT_MAP_ANONYMOUS) {
         // In general, we should zero the mapped area for anonymous mappings,
         // with something like:
@@ -2124,16 +2124,15 @@ execveFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
 
     int index = 0;
     std::string path;
-    SETranslatingPortProxy & mem_proxy = tc->getMemProxy();
+    PortProxy & mem_proxy = tc->getMemProxy();
     if (!mem_proxy.tryReadString(path, p->getSyscallArg(tc, index)))
         return -EFAULT;
 
     if (access(path.c_str(), F_OK) == -1)
         return -EACCES;
 
-    auto read_in = [](std::vector<std::string> & vect,
-                      SETranslatingPortProxy & mem_proxy,
-                      Addr mem_loc)
+    auto read_in = [](std::vector<std::string> &vect,
+                      PortProxy &mem_proxy, Addr mem_loc)
     {
         for (int inc = 0; ; inc++) {
             BufferArg b((mem_loc + sizeof(Addr) * inc), sizeof(Addr));
@@ -2301,7 +2300,7 @@ timeFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
     if (taddr != 0) {
         typename OS::time_t t = sec;
         t = TheISA::htog(t);
-        SETranslatingPortProxy &p = tc->getMemProxy();
+        PortProxy &p = tc->getMemProxy();
         p.writeBlob(taddr, &t, (int)sizeof(typename OS::time_t));
     }
     return sec;
index e930846be3f1fb00d8d9a3c4861aaa7f148db521..0b303254ab270e309dd9823ec37f369326053650 100644 (file)
@@ -75,7 +75,8 @@ class BaseBufferArg {
     /**
      * copy data into simulator space (read from target memory)
      */
-    bool copyIn(SETranslatingPortProxy &memproxy)
+    bool
+    copyIn(PortProxy &memproxy)
     {
         memproxy.readBlob(addr, bufPtr, size);
         return true;    // no EFAULT detection for now
@@ -84,7 +85,8 @@ class BaseBufferArg {
     /**
      * copy data out of simulator space (write to target memory)
      */
-    bool copyOut(SETranslatingPortProxy &memproxy)
+    bool
+    copyOut(PortProxy &memproxy)
     {
         memproxy.writeBlob(addr, bufPtr, size);
         return true;    // no EFAULT detection for now
index 6eefd59373c1f04ba5de87d53e8f354e08a440e4..07f00c3db7c7a96610271c6621df0a266a0bfb57 100644 (file)
@@ -69,7 +69,7 @@ class VPtr
         if (!ptr)
             return;
 
-        FSTranslatingPortProxy &proxy = tc->getVirtProxy();
+        PortProxy &proxy = tc->getVirtProxy();
         proxy.readBlob(ptr, buffer, sizeof(T));
     }