summaryrefslogtreecommitdiff
path: root/linux-user
diff options
context:
space:
mode:
authorArnaud Patard <arnaud.patard@rtp-net.org>2009-03-30 01:18:20 +0200
committerAurelien Jarno <aurelien@aurel32.net>2009-11-24 19:51:12 +0100
commit3ca055883b2a4b0099f1fcb34c5e72fc8e1fa05d (patch)
treec3b7403c283b3b4b614121dcf0b014f8d8cb5677 /linux-user
parent016b2b287d908ef39c3418c938b30895d59dc1ef (diff)
downloadqemu-3ca055883b2a4b0099f1fcb34c5e72fc8e1fa05d.tar.gz
linux-user: remove hardcoded value of _NSIG in signal.c
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>
Diffstat (limited to 'linux-user')
-rw-r--r--linux-user/signal.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/linux-user/signal.c b/linux-user/signal.c
index 2df17aa21b..df189c3cbe 100644
--- a/linux-user/signal.c
+++ b/linux-user/signal.c
@@ -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;
}