diff options
Diffstat (limited to 'src/arch/x86/linux')
-rw-r--r-- | src/arch/x86/linux/syscalls.cc | 6 | ||||
-rw-r--r-- | src/arch/x86/linux/system.cc | 13 |
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 |