summaryrefslogtreecommitdiff
path: root/src/arch/x86/linux
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/x86/linux')
-rw-r--r--src/arch/x86/linux/syscalls.cc6
-rw-r--r--src/arch/x86/linux/system.cc13
2 files changed, 8 insertions, 11 deletions
diff --git a/src/arch/x86/linux/syscalls.cc b/src/arch/x86/linux/syscalls.cc
index c6faf391b..b016a380a 100644
--- a/src/arch/x86/linux/syscalls.cc
+++ b/src/arch/x86/linux/syscalls.cc
@@ -81,7 +81,7 @@ archPrctlFunc(SyscallDesc *desc, int callnum, LiveProcess *process,
int code = process->getSyscallArg(tc, index);
uint64_t addr = process->getSyscallArg(tc, index);
uint64_t fsBase, gsBase;
- SETranslatingPortProxy* p = tc->getMemProxy();
+ SETranslatingPortProxy &p = tc->getMemProxy();
switch(code)
{
//Each of these valid options should actually check addr.
@@ -91,7 +91,7 @@ archPrctlFunc(SyscallDesc *desc, int callnum, LiveProcess *process,
return 0;
case GetFS:
fsBase = tc->readMiscRegNoEffect(MISCREG_FS_BASE);
- p->write(addr, fsBase);
+ p.write(addr, fsBase);
return 0;
case SetGS:
tc->setMiscRegNoEffect(MISCREG_GS_BASE, addr);
@@ -99,7 +99,7 @@ archPrctlFunc(SyscallDesc *desc, int callnum, LiveProcess *process,
return 0;
case GetGS:
gsBase = tc->readMiscRegNoEffect(MISCREG_GS_BASE);
- p->write(addr, gsBase);
+ p.write(addr, gsBase);
return 0;
default:
return -EINVAL;
diff --git a/src/arch/x86/linux/system.cc b/src/arch/x86/linux/system.cc
index a933868d1..f473af40e 100644
--- a/src/arch/x86/linux/system.cc
+++ b/src/arch/x86/linux/system.cc
@@ -67,9 +67,6 @@ LinuxX86System::initState()
// The location of the real mode data structure.
const Addr realModeData = 0x90200;
- // A port proxy to write to memory.
- PortProxy* physProxy = threadContexts[0]->getPhysProxy();
-
/*
* Deal with the command line stuff.
*/
@@ -82,15 +79,15 @@ LinuxX86System::initState()
if (commandLine.length() + 1 > realModeData - commandLineBuff)
panic("Command line \"%s\" is longer than %d characters.\n",
commandLine, realModeData - commandLineBuff - 1);
- physProxy->writeBlob(commandLineBuff,
- (uint8_t *)commandLine.c_str(), commandLine.length() + 1);
+ physProxy.writeBlob(commandLineBuff, (uint8_t *)commandLine.c_str(),
+ commandLine.length() + 1);
// Generate a pointer of the right size and endianness to put into
// commandLinePointer.
uint32_t guestCommandLineBuff =
X86ISA::htog((uint32_t)commandLineBuff);
- physProxy->writeBlob(commandLinePointer,
- (uint8_t *)&guestCommandLineBuff, sizeof(guestCommandLineBuff));
+ physProxy.writeBlob(commandLinePointer, (uint8_t *)&guestCommandLineBuff,
+ sizeof(guestCommandLineBuff));
/*
* Screen Info.
@@ -127,7 +124,7 @@ LinuxX86System::initState()
// A pointer to the buffer for E820 entries.
const Addr e820MapPointer = realModeData + 0x2d0;
- e820Table->writeTo(getSystemPort(), e820MapNrPointer, e820MapPointer);
+ e820Table->writeTo(physProxy, e820MapNrPointer, e820MapPointer);
/*
* Pass the location of the real mode data structure to the kernel