alpha-linux-user: Properly handle the non-rt sigprocmask syscall.
authorRichard Henderson <rth@twiddle.net>
Thu, 7 Jun 2012 22:02:49 +0000 (15:02 -0700)
committerRichard Henderson <rth@twiddle.net>
Sat, 4 Aug 2012 16:37:49 +0000 (09:37 -0700)
Name the syscall properly for QEMU, kernel source notwithstanding.
Fix syntax errors in the code thus enabled within do_syscall.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <rth@twiddle.net>
linux-user/alpha/syscall_nr.h
linux-user/syscall.c

index f6284db..ac2b6e2 100644 (file)
@@ -46,7 +46,7 @@
 #define TARGET_NR_open          45
 #define TARGET_NR_osf_old_sigaction     46     /* not implemented */
 #define TARGET_NR_getxgid               47
-#define TARGET_NR_osf_sigprocmask       48
+#define TARGET_NR_sigprocmask    48
 #define TARGET_NR_osf_getlogin  49     /* not implemented */
 #define TARGET_NR_osf_setlogin  50     /* not implemented */
 #define TARGET_NR_acct          51
index 07823e1..0d3fff5 100644 (file)
@@ -5881,11 +5881,10 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
             target_to_host_old_sigset(&set, &mask);
 
             ret = get_errno(sigprocmask(how, &set, &oldset));
-
             if (!is_error(ret)) {
                 host_to_target_old_sigset(&mask, &oldset);
                 ret = mask;
-                ((CPUAlphaState *)cpu_env)->[IR_V0] = 0; /* force no error */
+                ((CPUAlphaState *)cpu_env)->ir[IR_V0] = 0; /* force no error */
             }
 #else
             sigset_t set, oldset, *set_ptr;