[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] sh4 linux-user: Fix syscall pipe2() retval
From: |
takasi-y |
Subject: |
[Qemu-devel] [PATCH] sh4 linux-user: Fix syscall pipe2() retval |
Date: |
Thu, 18 Feb 2010 00:35:03 +0900 (JST) |
On linux/sh4
pipe() return values by r0:r1 as SH C calling convention.
pipe2() return values on memory as traditional unix way.
Signed-off-by: Takashi YOSHII <address@hidden>
---
linux-user/syscall.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 9fb493f..034a2b0 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -969,10 +969,13 @@ static abi_long do_pipe(void *cpu_env, abi_ulong pipedes,
int flags)
#if defined(TARGET_MIPS)
((CPUMIPSState*)cpu_env)->active_tc.gpr[3] = host_pipe[1];
ret = host_pipe[0];
-#elif defined(TARGET_SH4)
- ((CPUSH4State*)cpu_env)->gregs[1] = host_pipe[1];
- ret = host_pipe[0];
#else
+#if defined(TARGET_SH4)
+ if (!flags) {
+ ((CPUSH4State*)cpu_env)->gregs[1] = host_pipe[1];
+ ret = host_pipe[0];
+ } else
+#endif
if (put_user_s32(host_pipe[0], pipedes)
|| put_user_s32(host_pipe[1], pipedes + sizeof(host_pipe[0])))
return -TARGET_EFAULT;
--
1.6.5
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] [PATCH] sh4 linux-user: Fix syscall pipe2() retval,
takasi-y <=