Brandon Potter has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/12304

Change subject: syscall_emul: remove Process initVirtMem member
......................................................................

syscall_emul: remove Process initVirtMem member

The MemState class has a reference to a virtual memory proxy
that can be used to access the simulated address space.
There is no need for the Process class to have a duplicate
reference. Remove the Process initVirtMem member and use the
one provided in MemState instead.

Change-Id: Ifcc00759423e18975bb488bb44661d2545fd30b3
---
M src/arch/alpha/process.cc
M src/arch/arm/process.cc
M src/arch/mips/process.cc
M src/arch/power/process.cc
M src/arch/riscv/process.cc
M src/arch/sparc/process.cc
M src/arch/x86/process.cc
M src/sim/process.cc
M src/sim/process.hh
9 files changed, 107 insertions(+), 105 deletions(-)



diff --git a/src/arch/alpha/process.cc b/src/arch/alpha/process.cc
index e8dad99..98931a6 100644
--- a/src/arch/alpha/process.cc
+++ b/src/arch/alpha/process.cc
@@ -80,7 +80,9 @@
     // Patch the ld_bias for dynamic executables.
     updateBias();

-    objFile->loadSections(initVirtMem);
+    auto virt_mem = memState->getVirtMem();
+
+    objFile->loadSections(virt_mem);

     typedef AuxVector<uint64_t> auxv_t;
     std::vector<auxv_t>  auxv;
@@ -162,17 +164,17 @@
     else
         panic("Unknown int size");

- initVirtMem.writeBlob(memState->getStackMin(), (uint8_t*)&argc, intSize);
+    virt_mem.writeBlob(memState->getStackMin(), (uint8_t*)&argc, intSize);

-    copyStringArray(argv, argv_array_base, arg_data_base, initVirtMem);
-    copyStringArray(envp, envp_array_base, env_data_base, initVirtMem);
+    copyStringArray(argv, argv_array_base, arg_data_base, virt_mem);
+    copyStringArray(envp, envp_array_base, env_data_base, virt_mem);

     //Copy the aux stuff
     for (vector<auxv_t>::size_type x = 0; x < auxv.size(); x++) {
-        initVirtMem.writeBlob(auxv_array_base + x * 2 * intSize,
-                (uint8_t*)&(auxv[x].getAuxType()), intSize);
-        initVirtMem.writeBlob(auxv_array_base + (x * 2 + 1) * intSize,
-                (uint8_t*)&(auxv[x].getAuxVal()), intSize);
+        virt_mem.writeBlob(auxv_array_base + x * 2 * intSize,
+                           (uint8_t*)&(auxv[x].getAuxType()), intSize);
+        virt_mem.writeBlob(auxv_array_base + (x * 2 + 1) * intSize,
+                           (uint8_t*)&(auxv[x].getAuxVal()), intSize);
     }

     ThreadContext *tc = system->getThreadContext(contextIds[0]);
diff --git a/src/arch/arm/process.cc b/src/arch/arm/process.cc
index b3066a9..3a7e46b 100644
--- a/src/arch/arm/process.cc
+++ b/src/arch/arm/process.cc
@@ -160,8 +160,10 @@
     // Patch the ld_bias for dynamic executables.
     updateBias();

+    auto virt_mem = memState->getVirtMem();
+
     // load object file into target memory
-    objFile->loadSections(initVirtMem);
+    objFile->loadSections(virt_mem);

     /**
      * Setup the auxiliary vectors which already have endian conversion.
@@ -326,9 +328,7 @@

     // Write out the sentry void *
     IntType sentry_NULL = 0;
-    initVirtMem.writeBlob(sentry_base,
-                          (uint8_t*)&sentry_NULL,
-                          sentry_size);
+    virt_mem.writeBlob(sentry_base, (uint8_t*)&sentry_NULL, sentry_size);

     // Fix up the aux vectors which point to other data
     if (eobj) {
@@ -338,33 +338,33 @@

         assert(auxv[4].getHostAuxType() == M5_AT_EXECFN);
         auxv[4].setAuxVal(aux_data_base);
-        initVirtMem.writeString(aux_data_base, filename.c_str());
+        virt_mem.writeString(aux_data_base, filename.c_str());

         assert(auxv[5].getHostAuxType() == M5_AT_PLATFORM);
         auxv[5].setAuxVal(platform_base);
-        initVirtMem.writeString(platform_base, platform.c_str());
+        virt_mem.writeString(platform_base, platform.c_str());
     }

     // Copy the aux stuff
     for (int x = 0; x < auxv.size(); x++) {
-        initVirtMem.writeBlob(auxv_array_base + x * 2 * intSize,
-                              (uint8_t*)&(auxv[x].getAuxType()),
-                              intSize);
-        initVirtMem.writeBlob(auxv_array_base + (x * 2 + 1) * intSize,
-                              (uint8_t*)&(auxv[x].getAuxVal()),
-                              intSize);
+        virt_mem.writeBlob(auxv_array_base + x * 2 * intSize,
+                           (uint8_t*)&(auxv[x].getAuxType()),
+                           intSize);
+        virt_mem.writeBlob(auxv_array_base + (x * 2 + 1) * intSize,
+                           (uint8_t*)&(auxv[x].getAuxVal()),
+                           intSize);
     }

     // Write out the terminating zeroed auxiliary vector
     constexpr IntType zero = 0;
-    initVirtMem.writeBlob(auxv_array_base + 2 * intSize * auxv.size(),
+    virt_mem.writeBlob(auxv_array_base + 2 * intSize * auxv.size(),
                           (uint8_t*)&zero,
                           2 * intSize);

-    copyStringArray(envp, envp_array_base, env_data_base, initVirtMem);
-    copyStringArray(argv, argv_array_base, arg_data_base, initVirtMem);
+    copyStringArray(envp, envp_array_base, env_data_base, virt_mem);
+    copyStringArray(argv, argv_array_base, arg_data_base, virt_mem);

-    initVirtMem.writeBlob(argc_base, (uint8_t*)&guestArgc, intSize);
+    virt_mem.writeBlob(argc_base, (uint8_t*)&guestArgc, intSize);

     ThreadContext *tc = system->getThreadContext(contextIds[0]);
     //Set the stack pointer register
diff --git a/src/arch/mips/process.cc b/src/arch/mips/process.cc
index 3f65691..32c58ae 100644
--- a/src/arch/mips/process.cc
+++ b/src/arch/mips/process.cc
@@ -93,8 +93,10 @@
     // Patch the ld_bias for dynamic executables.
     updateBias();

+    auto virt_mem = memState->getVirtMem();
+
     // load object file into target memory
-    objFile->loadSections(initVirtMem);
+    objFile->loadSections(virt_mem);

     typedef AuxVector<IntType> auxv_t;
     std::vector<auxv_t> auxv;
@@ -170,25 +172,25 @@

     argc = htog((IntType)argc);

- initVirtMem.writeBlob(memState->getStackMin(), (uint8_t*)&argc, intSize);
+    virt_mem.writeBlob(memState->getStackMin(), (uint8_t*)&argc, intSize);

-    copyStringArray(argv, argv_array_base, arg_data_base, initVirtMem);
+    copyStringArray(argv, argv_array_base, arg_data_base, virt_mem);

-    copyStringArray(envp, envp_array_base, env_data_base, initVirtMem);
+    copyStringArray(envp, envp_array_base, env_data_base, virt_mem);

     // Copy the aux vector
     for (typename vector<auxv_t>::size_type x = 0; x < auxv.size(); x++) {
-        initVirtMem.writeBlob(auxv_array_base + x * 2 * intSize,
-                (uint8_t*)&(auxv[x].getAuxType()), intSize);
-        initVirtMem.writeBlob(auxv_array_base + (x * 2 + 1) * intSize,
-                (uint8_t*)&(auxv[x].getAuxVal()), intSize);
+        virt_mem.writeBlob(auxv_array_base + x * 2 * intSize,
+                           (uint8_t*)&(auxv[x].getAuxType()), intSize);
+        virt_mem.writeBlob(auxv_array_base + (x * 2 + 1) * intSize,
+                           (uint8_t*)&(auxv[x].getAuxVal()), intSize);
     }

     // Write out the terminating zeroed auxilliary vector
     for (unsigned i = 0; i < 2; i++) {
         const IntType zero = 0;
const Addr addr = auxv_array_base + 2 * intSize * (auxv.size() + i);
-        initVirtMem.writeBlob(addr, (uint8_t*)&zero, intSize);
+        virt_mem.writeBlob(addr, (uint8_t*)&zero, intSize);
     }

     ThreadContext *tc = system->getThreadContext(contextIds[0]);
diff --git a/src/arch/power/process.cc b/src/arch/power/process.cc
index cf2153a..d02e20b 100644
--- a/src/arch/power/process.cc
+++ b/src/arch/power/process.cc
@@ -100,8 +100,10 @@
     // Patch the ld_bias for dynamic executables.
     updateBias();

+    auto virt_mem = memState->getVirtMem();
+
     // load object file into target memory
-    objFile->loadSections(initVirtMem);
+    objFile->loadSections(virt_mem);

//Setup the auxilliary vectors. These will already have endian conversion.
     //Auxilliary vectors are loaded only for elf formatted executables.
@@ -234,37 +236,36 @@

     //Write out the sentry void *
     uint32_t sentry_NULL = 0;
-    initVirtMem.writeBlob(sentry_base,
-            (uint8_t*)&sentry_NULL, sentry_size);
+    virt_mem.writeBlob(sentry_base, (uint8_t*)&sentry_NULL, sentry_size);

     //Fix up the aux vectors which point to other data
     for (int i = auxv.size() - 1; i >= 0; i--) {
         if (auxv[i].getHostAuxType() == M5_AT_PLATFORM) {
             auxv[i].setAuxVal(platform_base);
-            initVirtMem.writeString(platform_base, platform.c_str());
+            virt_mem.writeString(platform_base, platform.c_str());
         } else if (auxv[i].getHostAuxType() == M5_AT_EXECFN) {
             auxv[i].setAuxVal(aux_data_base);
-            initVirtMem.writeString(aux_data_base, filename.c_str());
+            virt_mem.writeString(aux_data_base, filename.c_str());
         }
     }

     //Copy the aux stuff
     for (int x = 0; x < auxv.size(); x++)
     {
-        initVirtMem.writeBlob(auxv_array_base + x * 2 * intSize,
-                (uint8_t*)&(auxv[x].getAuxType()), intSize);
-        initVirtMem.writeBlob(auxv_array_base + (x * 2 + 1) * intSize,
-                (uint8_t*)&(auxv[x].getAuxVal()), intSize);
+        virt_mem.writeBlob(auxv_array_base + x * 2 * intSize,
+                           (uint8_t*)&(auxv[x].getAuxType()), intSize);
+        virt_mem.writeBlob(auxv_array_base + (x * 2 + 1) * intSize,
+                           (uint8_t*)&(auxv[x].getAuxVal()), intSize);
     }
     //Write out the terminating zeroed auxilliary vector
     const uint64_t zero = 0;
-    initVirtMem.writeBlob(auxv_array_base + 2 * intSize * auxv.size(),
-            (uint8_t*)&zero, 2 * intSize);
+    virt_mem.writeBlob(auxv_array_base + 2 * intSize * auxv.size(),
+                       (uint8_t*)&zero, 2 * intSize);

-    copyStringArray(envp, envp_array_base, env_data_base, initVirtMem);
-    copyStringArray(argv, argv_array_base, arg_data_base, initVirtMem);
+    copyStringArray(envp, envp_array_base, env_data_base, virt_mem);
+    copyStringArray(argv, argv_array_base, arg_data_base, virt_mem);

-    initVirtMem.writeBlob(argc_base, (uint8_t*)&guestArgc, intSize);
+    virt_mem.writeBlob(argc_base, (uint8_t*)&guestArgc, intSize);

     ThreadContext *tc = system->getThreadContext(contextIds[0]);

diff --git a/src/arch/riscv/process.cc b/src/arch/riscv/process.cc
index 4e97fcf..08ab436 100644
--- a/src/arch/riscv/process.cc
+++ b/src/arch/riscv/process.cc
@@ -93,7 +93,8 @@
     const int RandomBytes = 16;

     updateBias();
-    objFile->loadSections(initVirtMem);
+    auto virt_mem = memState->getVirtMem();
+    objFile->loadSections(virt_mem);
     ElfObject* elfObject = dynamic_cast<ElfObject*>(objFile);
     memState->setStackMin(memState->getStackBase());

@@ -130,17 +131,17 @@
     uint8_t at_random[RandomBytes];
     generate(begin(at_random), end(at_random),
              [&]{ return random_mt.random(0, 0xFF); });
-    initVirtMem.writeBlob(memState->getStackMin(), at_random, RandomBytes);
+    virt_mem.writeBlob(memState->getStackMin(), at_random, RandomBytes);

     // Copy argv to stack
     vector<Addr> argPointers;
     for (const string& arg: argv) {
         memState->setStackMin(memState->getStackMin() - (arg.size() + 1));
-        initVirtMem.writeString(memState->getStackMin(), arg.c_str());
+        virt_mem.writeString(memState->getStackMin(), arg.c_str());
         argPointers.push_back(memState->getStackMin());
         if (DTRACE(Stack)) {
             string wrote;
-            initVirtMem.readString(wrote, argPointers.back());
+            virt_mem.readString(wrote, argPointers.back());
             DPRINTFN("Wrote arg \"%s\" to address %p\n",
                     wrote, (void*)memState->getStackMin());
         }
@@ -151,7 +152,7 @@
     vector<Addr> envPointers;
     for (const string& env: envp) {
         memState->setStackMin(memState->getStackMin() - (env.size() + 1));
-        initVirtMem.writeString(memState->getStackMin(), env.c_str());
+        virt_mem.writeString(memState->getStackMin(), env.c_str());
         envPointers.push_back(memState->getStackMin());
         DPRINTF(Stack, "Wrote env \"%s\" to address %p\n",
                 env, (void*)memState->getStackMin());
@@ -169,8 +170,8 @@
     memState->setStackMin(memState->getStackMin() & -2*sizeof(Addr));
     Addr sp = memState->getStackMin();
     const auto pushOntoStack =
-        [this, &sp](const uint8_t* data, const size_t size) {
-            initVirtMem.writeBlob(sp, data, size);
+        [this, &sp, &virt_mem](const uint8_t* data, const size_t size) {
+            virt_mem.writeBlob(sp, data, size);
             sp += size;
         };

diff --git a/src/arch/sparc/process.cc b/src/arch/sparc/process.cc
index 7dda6ed..55cea46 100644
--- a/src/arch/sparc/process.cc
+++ b/src/arch/sparc/process.cc
@@ -209,8 +209,10 @@
     // Patch the ld_bias for dynamic executables.
     updateBias();

+    auto virt_mem = memState->getVirtMem();
+
     // load object file into target memory
-    objFile->loadSections(initVirtMem);
+    objFile->loadSections(virt_mem);

     enum hardwareCaps
     {
@@ -366,31 +368,30 @@

     // Write out the sentry void *
     uint64_t sentry_NULL = 0;
-    initVirtMem.writeBlob(sentry_base,
-            (uint8_t*)&sentry_NULL, sentry_size);
+    virt_mem.writeBlob(sentry_base, (uint8_t*)&sentry_NULL, sentry_size);

     // Write the file name
-    initVirtMem.writeString(file_name_base, filename.c_str());
+    virt_mem.writeString(file_name_base, filename.c_str());

     // Copy the aux stuff
     for (int x = 0; x < auxv.size(); x++) {
-        initVirtMem.writeBlob(auxv_array_base + x * 2 * intSize,
-                (uint8_t*)&(auxv[x].getAuxType()), intSize);
-        initVirtMem.writeBlob(auxv_array_base + (x * 2 + 1) * intSize,
-                (uint8_t*)&(auxv[x].getAuxVal()), intSize);
+        virt_mem.writeBlob(auxv_array_base + x * 2 * intSize,
+                           (uint8_t*)&(auxv[x].getAuxType()), intSize);
+        virt_mem.writeBlob(auxv_array_base + (x * 2 + 1) * intSize,
+                           (uint8_t*)&(auxv[x].getAuxVal()), intSize);
     }

     // Write out the terminating zeroed auxilliary vector
     const IntType zero = 0;
-    initVirtMem.writeBlob(auxv_array_base + intSize * 2 * auxv.size(),
-            (uint8_t*)&zero, intSize);
- initVirtMem.writeBlob(auxv_array_base + intSize * (2 * auxv.size() + 1),
-            (uint8_t*)&zero, intSize);
+    virt_mem.writeBlob(auxv_array_base + intSize * 2 * auxv.size(),
+                       (uint8_t*)&zero, intSize);
+    virt_mem.writeBlob(auxv_array_base + intSize * (2 * auxv.size() + 1),
+                       (uint8_t*)&zero, intSize);

-    copyStringArray(envp, envp_array_base, env_data_base, initVirtMem);
-    copyStringArray(argv, argv_array_base, arg_data_base, initVirtMem);
+    copyStringArray(envp, envp_array_base, env_data_base, virt_mem);
+    copyStringArray(argv, argv_array_base, arg_data_base, virt_mem);

-    initVirtMem.writeBlob(argc_base, (uint8_t*)&guestArgc, intSize);
+    virt_mem.writeBlob(argc_base, (uint8_t*)&guestArgc, intSize);

     // Set up space for the trap handlers into the processes address space.
     // Since the stack grows down and there is reserved address space abov
@@ -421,9 +422,10 @@
     SparcProcess::argsInit<uint64_t>(pageSize);

     // Stuff the trap handlers into the process address space
-    initVirtMem.writeBlob(fillStart,
+    auto virt_mem = memState->getVirtMem();
+    virt_mem.writeBlob(fillStart,
             (uint8_t*)fillHandler64, sizeof(MachInst) * numFillInsts);
-    initVirtMem.writeBlob(spillStart,
+    virt_mem.writeBlob(spillStart,
             (uint8_t*)spillHandler64, sizeof(MachInst) *  numSpillInsts);
 }

@@ -433,9 +435,10 @@
     SparcProcess::argsInit<uint32_t>(pageSize);

     // Stuff the trap handlers into the process address space
-    initVirtMem.writeBlob(fillStart,
+    auto virt_mem = memState->getVirtMem();
+    virt_mem.writeBlob(fillStart,
             (uint8_t*)fillHandler32, sizeof(MachInst) * numFillInsts);
-    initVirtMem.writeBlob(spillStart,
+    virt_mem.writeBlob(spillStart,
             (uint8_t*)spillHandler32, sizeof(MachInst) *  numSpillInsts);
 }

diff --git a/src/arch/x86/process.cc b/src/arch/x86/process.cc
index 273e2c0..f5fccf0 100644
--- a/src/arch/x86/process.cc
+++ b/src/arch/x86/process.cc
@@ -206,16 +206,16 @@
         0x0f,0x05,                             // syscall
         0xc3                                   // retq
     };
-    initVirtMem.writeBlob(vsyscallPage.base + vsyscallPage.vtimeOffset,
-            vtimeBlob, sizeof(vtimeBlob));
+    virt_mem.writeBlob(vsyscallPage.base + vsyscallPage.vtimeOffset,
+                       vtimeBlob, sizeof(vtimeBlob));

     uint8_t vgettimeofdayBlob[] = {
         0x48,0xc7,0xc0,0x60,0x00,0x00,0x00,    // mov    $0x60,%rax
         0x0f,0x05,                             // syscall
         0xc3                                   // retq
     };
- initVirtMem.writeBlob(vsyscallPage.base + vsyscallPage.vgettimeofdayOffset,
-            vgettimeofdayBlob, sizeof(vgettimeofdayBlob));
+ virt_mem.writeBlob(vsyscallPage.base + vsyscallPage.vgettimeofdayOffset,
+                       vgettimeofdayBlob, sizeof(vgettimeofdayBlob));

     if (kvmInSE) {
         PortProxy physProxy = system->physProxy;
@@ -646,7 +646,7 @@
     assert(_gdtSize % sizeof(zero) == 0);
     for (Addr gdtCurrent = _gdtStart;
gdtCurrent < _gdtStart + _gdtSize; gdtCurrent += sizeof(zero)) {
-        initVirtMem.write(gdtCurrent, zero);
+        virt_mem.write(gdtCurrent, zero);
     }

     // Set up the vsyscall page for this process.
@@ -658,8 +658,8 @@
         0x89, 0xe5, // mov %esp, %ebp
         0x0f, 0x34  // sysenter
     };
-    initVirtMem.writeBlob(vsyscallPage.base + vsyscallPage.vsyscallOffset,
-            vsyscallBlob, sizeof(vsyscallBlob));
+    virt_mem.writeBlob(vsyscallPage.base + vsyscallPage.vsyscallOffset,
+                       vsyscallBlob, sizeof(vsyscallBlob));

     uint8_t vsysexitBlob[] = {
         0x5d,       // pop %ebp
@@ -667,8 +667,8 @@
         0x59,       // pop %ecx
         0xc3        // ret
     };
-    initVirtMem.writeBlob(vsyscallPage.base + vsyscallPage.vsysexitOffset,
-            vsysexitBlob, sizeof(vsysexitBlob));
+    virt_mem.writeBlob(vsyscallPage.base + vsyscallPage.vsysexitOffset,
+                       vsysexitBlob, sizeof(vsysexitBlob));

     for (int i = 0; i < contextIds.size(); i++) {
         ThreadContext * tc = system->getThreadContext(contextIds[i]);
@@ -772,7 +772,8 @@
     updateBias();

     // load object file into target memory
-    objFile->loadSections(initVirtMem);
+    const auto &virt_mem = memState->getVirtMem();
+    objFile->loadSections(virt_mem);

     enum X86CpuFeature {
         X86_OnboardFPU = 1 << 0,
@@ -994,10 +995,10 @@

     // Write out the sentry void *
     IntType sentry_NULL = 0;
- initVirtMem.writeBlob(sentry_base, (uint8_t*)&sentry_NULL, sentry_size);
+    virt_mem.writeBlob(sentry_base, (uint8_t*)&sentry_NULL, sentry_size);

     // Write the file name
-    initVirtMem.writeString(file_name_base, filename.c_str());
+    virt_mem.writeString(file_name_base, filename.c_str());

     // Fix up the aux vectors which point to data
     assert(auxv[auxv.size() - 3].getHostAuxType() == M5_AT_RANDOM);
@@ -1010,26 +1011,24 @@

     // Copy the aux stuff
     for (int x = 0; x < auxv.size(); x++) {
-        initVirtMem.writeBlob(auxv_array_base + x * 2 * intSize,
-                              (uint8_t*)&(auxv[x].getAuxType()),
-                              intSize);
-        initVirtMem.writeBlob(auxv_array_base + (x * 2 + 1) * intSize,
-                              (uint8_t*)&(auxv[x].getAuxVal()),
-                              intSize);
+        virt_mem.writeBlob(auxv_array_base + x * 2 * intSize,
+                           (uint8_t*)&(auxv[x].getAuxType()), intSize);
+        virt_mem.writeBlob(auxv_array_base + (x * 2 + 1) * intSize,
+                           (uint8_t*)&(auxv[x].getAuxVal()), intSize);
     }
     // Write out the terminating zeroed auxiliary vector
     const uint64_t zero = 0;
-    initVirtMem.writeBlob(auxv_array_base + auxv.size() * 2 * intSize,
-                          (uint8_t*)&zero, intSize);
- initVirtMem.writeBlob(auxv_array_base + (auxv.size() * 2 + 1) * intSize,
-                          (uint8_t*)&zero, intSize);
+    virt_mem.writeBlob(auxv_array_base + auxv.size() * 2 * intSize,
+                       (uint8_t*)&zero, intSize);
+    virt_mem.writeBlob(auxv_array_base + (auxv.size() * 2 + 1) * intSize,
+                       (uint8_t*)&zero, intSize);

-    initVirtMem.writeString(aux_data_base, platform.c_str());
+    virt_mem.writeString(aux_data_base, platform.c_str());

-    copyStringArray(envp, envp_array_base, env_data_base, initVirtMem);
-    copyStringArray(argv, argv_array_base, arg_data_base, initVirtMem);
+    copyStringArray(envp, envp_array_base, env_data_base, virt_mem);
+    copyStringArray(argv, argv_array_base, arg_data_base, virt_mem);

-    initVirtMem.writeBlob(argc_base, (uint8_t*)&guestArgc, intSize);
+    virt_mem.writeBlob(argc_base, (uint8_t*)&guestArgc, intSize);

     ThreadContext *tc = system->getThreadContext(contextIds[0]);
     // Set the stack pointer register
diff --git a/src/sim/process.cc b/src/sim/process.cc
index 59efabe..5a4f3d5 100644
--- a/src/sim/process.cc
+++ b/src/sim/process.cc
@@ -64,7 +64,6 @@
 #include "config/the_isa.hh"
 #include "cpu/thread_context.hh"
 #include "mem/page_table.hh"
-#include "mem/se_translating_port_proxy.hh"
 #include "params/Process.hh"
 #include "sim/emul_driver.hh"
 #include "sim/fd_array.hh"
@@ -110,8 +109,6 @@
       useArchPT(params->useArchPT),
       kvmInSE(params->kvmInSE),
       pTable(pTable),
-      initVirtMem(system->getSystemPort(), this,
-                  SETranslatingPortProxy::Always),
       objFile(obj_file),
       argv(params->cmd), envp(params->env),
       host_cwd(checkPathRedirect(params->cwd)), tgt_cwd(params->cwd),
diff --git a/src/sim/process.hh b/src/sim/process.hh
index b45fc62..a888b1b 100644
--- a/src/sim/process.hh
+++ b/src/sim/process.hh
@@ -44,7 +44,6 @@
 #include "base/statistics.hh"
 #include "base/types.hh"
 #include "config/the_isa.hh"
-#include "mem/se_translating_port_proxy.hh"
 #include "sim/fd_array.hh"
 #include "sim/fd_entry.hh"
 #include "sim/mem_state.hh"
@@ -188,8 +187,6 @@

     EmulationPageTable *pTable;

- SETranslatingPortProxy initVirtMem; // memory proxy for initial image load
-
     ObjectFile *objFile;
     std::vector<std::string> argv;
     std::vector<std::string> envp;

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/12304
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: Ifcc00759423e18975bb488bb44661d2545fd30b3
Gerrit-Change-Number: 12304
Gerrit-PatchSet: 1
Gerrit-Owner: Brandon Potter <[email protected]>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to