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