aboutsummaryrefslogtreecommitdiff
path: root/linux-user/syscall.c
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2004-04-26 19:44:02 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2004-04-26 19:44:02 +0000
commit4f2ac237840677ffcb1b3ca30d04a4c2d360f7c7 (patch)
tree704572756ba55ed1631f64d1efc9511cec24560f /linux-user/syscall.c
parentf658b4db792285d0ddc044d7532451b8ec3c4a08 (diff)
amd64 port (Jocelyn Mayer)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@762 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'linux-user/syscall.c')
-rw-r--r--linux-user/syscall.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 95806454d7..79d239ffa2 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -2402,9 +2402,14 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
goto unimplemented;
case TARGET_NR__llseek:
{
+#if defined (__x86_64__)
+ ret = get_errno(lseek(arg1, ((uint64_t )arg2 << 32) | arg3, arg5));
+ *(int64_t *)arg4 = ret;
+#else
int64_t res;
ret = get_errno(_llseek(arg1, arg2, arg3, &res, arg5));
*(int64_t *)arg4 = tswap64(res);
+#endif
}
break;
case TARGET_NR_getdents: