linux-user: remove hardcoded value of _NSIG in signal.c
authorArnaud Patard <arnaud.patard@rtp-net.org>
Sun, 29 Mar 2009 23:18:20 +0000 (01:18 +0200)
committerAurelien Jarno <aurelien@aurel32.net>
Tue, 24 Nov 2009 18:51:12 +0000 (19:51 +0100)
In a bunch of places, 64 is used as value of _NSIG but it's wrong
at least on MIPS were _NSIG is 128.

Based on a patch from Arnaud Patard <arnaud.patard@rtp-net.org>

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
linux-user/signal.c

index 2df17aa..df189c3 100644 (file)
@@ -44,7 +44,7 @@ static struct target_sigaction sigact_table[TARGET_NSIG];
 static void host_signal_handler(int host_signum, siginfo_t *info,
                                 void *puc);
 
-static uint8_t host_to_target_signal_table[65] = {
+static uint8_t host_to_target_signal_table[_NSIG] = {
     [SIGHUP] = TARGET_SIGHUP,
     [SIGINT] = TARGET_SIGINT,
     [SIGQUIT] = TARGET_SIGQUIT,
@@ -87,7 +87,7 @@ static uint8_t host_to_target_signal_table[65] = {
     [__SIGRTMIN] = __SIGRTMAX,
     [__SIGRTMAX] = __SIGRTMIN,
 };
-static uint8_t target_to_host_signal_table[65];
+static uint8_t target_to_host_signal_table[_NSIG];
 
 static inline int on_sig_stack(unsigned long sp)
 {
@@ -103,14 +103,14 @@ static inline int sas_ss_flags(unsigned long sp)
 
 int host_to_target_signal(int sig)
 {
-    if (sig > 64)
+    if (sig >= _NSIG)
         return sig;
     return host_to_target_signal_table[sig];
 }
 
 int target_to_host_signal(int sig)
 {
-    if (sig > 64)
+    if (sig >= _NSIG)
         return sig;
     return target_to_host_signal_table[sig];
 }
@@ -311,11 +311,11 @@ void signal_init(void)
     int host_sig;
 
     /* generate signal conversion tables */
-    for(i = 1; i <= 64; i++) {
+    for(i = 1; i < _NSIG; i++) {
         if (host_to_target_signal_table[i] == 0)
             host_to_target_signal_table[i] = i;
     }
-    for(i = 1; i <= 64; i++) {
+    for(i = 1; i < _NSIG; i++) {
         j = host_to_target_signal_table[i];
         target_to_host_signal_table[j] = i;
     }