summaryrefslogtreecommitdiff
path: root/src/arch/alpha
diff options
context:
space:
mode:
authorLisa Hsu <hsul@eecs.umich.edu>2009-02-16 17:47:39 -0500
committerLisa Hsu <hsul@eecs.umich.edu>2009-02-16 17:47:39 -0500
commit5d029ff11e88ba0ab89c88e500c5d0d2edaf744e (patch)
treea8a7a44ac0d2fb3dedf3b33ec887c3f7dc9ebdd7 /src/arch/alpha
parent89ea32325094665c16688212b5a2cd7b7bbf5f03 (diff)
downloadgem5-5d029ff11e88ba0ab89c88e500c5d0d2edaf744e.tar.xz
sycalls: implement mremap() and add DATA flag for getrlimit(). mremap has been tested on Alpha, compiles for the rest but not tested. I don't see why it wouldn't work though.
Diffstat (limited to 'src/arch/alpha')
-rw-r--r--src/arch/alpha/linux/process.cc2
-rw-r--r--src/arch/alpha/pagetable.hh7
2 files changed, 8 insertions, 1 deletions
diff --git a/src/arch/alpha/linux/process.cc b/src/arch/alpha/linux/process.cc
index 6684051af..605e40627 100644
--- a/src/arch/alpha/linux/process.cc
+++ b/src/arch/alpha/linux/process.cc
@@ -463,7 +463,7 @@ SyscallDesc AlphaLinuxProcess::syscallDescs[] = {
/* 338 */ SyscallDesc("afs_syscall", unimplementedFunc),
/* 339 */ SyscallDesc("uname", unameFunc),
/* 340 */ SyscallDesc("nanosleep", unimplementedFunc),
- /* 341 */ SyscallDesc("mremap", unimplementedFunc),
+ /* 341 */ SyscallDesc("mremap", mremapFunc<AlphaLinux>),
/* 342 */ SyscallDesc("nfsservctl", unimplementedFunc),
/* 343 */ SyscallDesc("setresuid", unimplementedFunc),
/* 344 */ SyscallDesc("getresuid", unimplementedFunc),
diff --git a/src/arch/alpha/pagetable.hh b/src/arch/alpha/pagetable.hh
index 6cf11be56..59df93bef 100644
--- a/src/arch/alpha/pagetable.hh
+++ b/src/arch/alpha/pagetable.hh
@@ -123,6 +123,13 @@ struct TlbEntry
TlbEntry()
{}
+ void
+ updateVaddr(Addr new_vaddr)
+ {
+ VAddr vaddr(new_vaddr);
+ tag = vaddr.vpn();
+ }
+
Addr
pageStart()
{