summaryrefslogtreecommitdiff
path: root/arch/alpha
diff options
context:
space:
mode:
authorRon Dreslinski <rdreslin@umich.edu>2006-02-15 22:05:23 -0500
committerRon Dreslinski <rdreslin@umich.edu>2006-02-15 22:05:23 -0500
commitd142788172ee79e6e67fc8510940c884807305ad (patch)
treed1c665421357acae6f17cedc4168789f1913f6b1 /arch/alpha
parentb8a2d1e5c78eac41125a0be0bc2b5d5fe4714684 (diff)
downloadgem5-d142788172ee79e6e67fc8510940c884807305ad.tar.xz
More compilation fixes.
Should we add a proxy_port that does the v->p address translation? Should the proxy port return a fault on translation errors, if we add one? arch/alpha/alpha_linux_process.cc: Syscalls use a memPort through the CPU now instead of a xc functional memory. cpu/base.hh: Add a pointer to the memPort syscalls will use. Should this be a proxy_port that does address translation? cpu/exec_context.cc: cpu/exec_context.hh: Remove functional memory from the exec context cpu/simple/cpu.cc: Set the memPort to be used as the syscall port as the dcache port sim/syscall_emul.cc: sim/syscall_emul.hh: Syscalls use a memPort through the CPU now instead of a xc functional memory. Also, fix the fact that readStringFunctional doesn't return a fault... should proxy_port handle this because it is doing the translation? --HG-- extra : convert_revision : 1f65318c6594301a75dc4dc0c99fdd436b094a7f
Diffstat (limited to 'arch/alpha')
-rw-r--r--arch/alpha/alpha_linux_process.cc16
1 files changed, 8 insertions, 8 deletions
diff --git a/arch/alpha/alpha_linux_process.cc b/arch/alpha/alpha_linux_process.cc
index 1c3a21582..be2013e1e 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/functional/functional.hh"
+#include "mem/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(FunctionalMemory *mem, Addr addr, struct stat *host)
+ copyOutStatBuf(Port *memPort, Addr addr, struct stat *host)
{
TypedBufferArg<Linux::tgt_stat> tgt(addr);
@@ -254,12 +254,12 @@ class Linux {
tgt->st_blksize = host->st_blksize;
tgt->st_blocks = host->st_blocks;
- tgt.copyOut(mem);
+ tgt.copyOut(memPort);
}
// Same for stat64
static void
- copyOutStat64Buf(FunctionalMemory *mem, Addr addr, struct stat64 *host)
+ copyOutStat64Buf(Port *memPort, Addr addr, struct stat64 *host)
{
TypedBufferArg<Linux::tgt_stat64> tgt(addr);
@@ -288,7 +288,7 @@ class Linux {
tgt->st_mtime_nsec = 0;
tgt->st_ctime_nsec = 0;
#endif
- tgt.copyOut(mem);
+ tgt.copyOut(memPort);
}
/// The target system's hostname.
@@ -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->mem);
+ name.copyOut(xc->cpu->memPort);
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->mem);
+ fpcr.copyOut(xc->cpu->memPort);
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->mem);
+ fpcr.copyIn(xc->cpu->memPort);
DPRINTFR(SyscallVerbose, "osf_setsysinfo(SSI_IEEE_FP_CONTROL): "
" setting FPCR to 0x%x\n", *(uint64_t*)fpcr);
return 0;