summaryrefslogtreecommitdiff
path: root/sim
diff options
context:
space:
mode:
authorSteve Reinhardt <stever@eecs.umich.edu>2004-02-10 21:43:57 -0800
committerSteve Reinhardt <stever@eecs.umich.edu>2004-02-10 21:43:57 -0800
commitd38f995aeec761879865ea2ab30128da4c5cdaf8 (patch)
tree073ff08b8d931f9de9db5a025b6f5c3ddf374e32 /sim
parentf1aca5e6c52551b21ec864a4d8e88ddc2430c67e (diff)
downloadgem5-d38f995aeec761879865ea2ab30128da4c5cdaf8.tar.xz
Fixes for Linux syscall emulation.
arch/alpha/alpha_linux_process.cc: Fixes for Linux emulation: - stat struct alignment - osf_{get,set}sysinfo return values - additional syscall numbers - initialize $r0 to 0 sim/syscall_emul.cc: brk(0) just returns brk value (don't update it!) --HG-- extra : convert_revision : 78e22458321c81e81540d101c9e65e2e4b0ad117
Diffstat (limited to 'sim')
-rw-r--r--sim/syscall_emul.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/sim/syscall_emul.cc b/sim/syscall_emul.cc
index e953a7308..57ae39cf8 100644
--- a/sim/syscall_emul.cc
+++ b/sim/syscall_emul.cc
@@ -104,7 +104,9 @@ int
obreakFunc(SyscallDesc *desc, int num, Process *p, ExecContext *xc)
{
// change brk addr to first arg
- p->brk_point = xc->getSyscallArg(0);
+ Addr new_brk = xc->getSyscallArg(0);
+ if (new_brk != 0)
+ p->brk_point = xc->getSyscallArg(0);
return p->brk_point;
}