[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 7/7] Enable fork and MIPS64 specific changes in mq_o
From: |
khansa |
Subject: |
[Qemu-devel] [PATCH 7/7] Enable fork and MIPS64 specific changes in mq_open syscall |
Date: |
Wed, 28 Sep 2011 09:38:50 +0500 |
From: Khansa Butt <address@hidden>
Signed-off-by: Khansa Butt <address@hidden>
---
configure | 1 +
linux-user/syscall.c | 11 +++++++++--
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
index 5e45a43..8d39fda 100755
--- a/configure
+++ b/configure
@@ -3286,6 +3286,7 @@ case "$target_arch2" in
TARGET_ARCH=mips64
TARGET_BASE_ARCH=mips
echo "TARGET_ABI_MIPSN64=y" >> $config_target_mak
+ target_nptl="yes"
target_phys_bits=64
target_long_alignment=8
;;
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 6b73769..97ac9fb 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -7799,10 +7799,17 @@ abi_long do_syscall(void *cpu_env, int num, abi_long
arg1,
{
struct mq_attr posix_mq_attr;
+#if defined(TARGET_MIPS64)
+ arg2 = arg2 & 0xff;
+ arg2 = arg2 | 0x40;
+#endif
+
p = lock_user_string(arg1 - 1);
- if (arg4 != 0)
+ if (arg4 != 0) {
copy_from_user_mq_attr (&posix_mq_attr, arg4);
- ret = get_errno(mq_open(p, arg2, arg3, &posix_mq_attr));
+ ret = get_errno(mq_open(p, arg2, arg3, &posix_mq_attr));
+ } else if (arg4 == 0)
+ ret = get_errno(mq_open(p, arg2, arg3, NULL));
unlock_user (p, arg1, 0);
}
break;
--
1.7.3.4
- [Qemu-devel] [PATCH 7/7] Enable fork and MIPS64 specific changes in mq_open syscall,
khansa <=