diff options
author | Ron Dreslinski <rdreslin@umich.edu> | 2006-02-20 23:26:39 -0500 |
---|---|---|
committer | Ron Dreslinski <rdreslin@umich.edu> | 2006-02-20 23:26:39 -0500 |
commit | d96de69abc02b40e1dec4843a7a7b7e30749f4fa (patch) | |
tree | 0c3fd42012ec416fcabdc8691f2ccd202ee98865 /arch/alpha/alpha_linux_process.cc | |
parent | b74f1b829d14e43256fb4a9efd3b951e81ad12d2 (diff) | |
download | gem5-d96de69abc02b40e1dec4843a7a7b7e30749f4fa.tar.xz |
Add in a new translating port that allows syscalls to translate addresses via the page table before accessing the memory port.
Other compile issues cleaned up.
SConscript:
Changes to compile the new Translating Port.
Split out memtester and eio support, will rework them back in after first getting a simpleCPU to work
arch/alpha/alpha_linux_process.cc:
arch/alpha/alpha_tru64_process.cc:
sim/syscall_emul.cc:
sim/syscall_emul.hh:
Changes to use the new translating Port.
cpu/exec_context.cc:
cpu/exec_context.hh:
Create a translating port in each execution context.
sim/process.cc:
Fix the way we do proxy memory
--HG--
extra : convert_revision : 3d33218fe8b425a5d9ce24757f1112b4aa6001fd
Diffstat (limited to 'arch/alpha/alpha_linux_process.cc')
-rw-r--r-- | arch/alpha/alpha_linux_process.cc | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/alpha/alpha_linux_process.cc b/arch/alpha/alpha_linux_process.cc index be2013e1e..16816e901 100644 --- a/arch/alpha/alpha_linux_process.cc +++ b/arch/alpha/alpha_linux_process.cc @@ -36,7 +36,7 @@ #include "cpu/base.hh" #include "cpu/exec_context.hh" -#include "mem/port.hh" +#include "mem/translating_port.hh" #include "sim/fake_syscall.hh" #include "sim/host.hh" #include "sim/process.hh" @@ -236,7 +236,7 @@ class Linux { /// buffer. Also copies the target buffer out to the simulated /// memory space. Used by stat(), fstat(), and lstat(). static void - copyOutStatBuf(Port *memPort, Addr addr, struct stat *host) + copyOutStatBuf(TranslatingPort *memPort, Addr addr, struct stat *host) { TypedBufferArg<Linux::tgt_stat> tgt(addr); @@ -259,7 +259,7 @@ class Linux { // Same for stat64 static void - copyOutStat64Buf(Port *memPort, Addr addr, struct stat64 *host) + copyOutStat64Buf(TranslatingPort *memPort, Addr addr, struct stat64 *host) { TypedBufferArg<Linux::tgt_stat64> tgt(addr); @@ -307,7 +307,7 @@ class Linux { strcpy(name->version, "#1 Mon Aug 18 11:32:15 EDT 2003"); strcpy(name->machine, "alpha"); - name.copyOut(xc->cpu->memPort); + name.copyOut(xc->port); return 0; } @@ -327,7 +327,7 @@ class Linux { TypedBufferArg<uint64_t> fpcr(xc->getSyscallArg(1)); // I don't think this exactly matches the HW FPCR *fpcr = 0; - fpcr.copyOut(xc->cpu->memPort); + fpcr.copyOut(xc->port); return 0; } @@ -353,7 +353,7 @@ class Linux { case 14: { // SSI_IEEE_FP_CONTROL TypedBufferArg<uint64_t> fpcr(xc->getSyscallArg(1)); // I don't think this exactly matches the HW FPCR - fpcr.copyIn(xc->cpu->memPort); + fpcr.copyIn(xc->port); DPRINTFR(SyscallVerbose, "osf_setsysinfo(SSI_IEEE_FP_CONTROL): " " setting FPCR to 0x%x\n", *(uint64_t*)fpcr); return 0; |