mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-11-02 21:32:52 +00:00
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>
This commit is contained in:
parent
016b2b287d
commit
3ca055883b
1 changed files with 6 additions and 6 deletions
|
@ -44,7 +44,7 @@ static struct target_sigaction sigact_table[TARGET_NSIG];
|
||||||
static void host_signal_handler(int host_signum, siginfo_t *info,
|
static void host_signal_handler(int host_signum, siginfo_t *info,
|
||||||
void *puc);
|
void *puc);
|
||||||
|
|
||||||
static uint8_t host_to_target_signal_table[65] = {
|
static uint8_t host_to_target_signal_table[_NSIG] = {
|
||||||
[SIGHUP] = TARGET_SIGHUP,
|
[SIGHUP] = TARGET_SIGHUP,
|
||||||
[SIGINT] = TARGET_SIGINT,
|
[SIGINT] = TARGET_SIGINT,
|
||||||
[SIGQUIT] = TARGET_SIGQUIT,
|
[SIGQUIT] = TARGET_SIGQUIT,
|
||||||
|
@ -87,7 +87,7 @@ static uint8_t host_to_target_signal_table[65] = {
|
||||||
[__SIGRTMIN] = __SIGRTMAX,
|
[__SIGRTMIN] = __SIGRTMAX,
|
||||||
[__SIGRTMAX] = __SIGRTMIN,
|
[__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)
|
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)
|
int host_to_target_signal(int sig)
|
||||||
{
|
{
|
||||||
if (sig > 64)
|
if (sig >= _NSIG)
|
||||||
return sig;
|
return sig;
|
||||||
return host_to_target_signal_table[sig];
|
return host_to_target_signal_table[sig];
|
||||||
}
|
}
|
||||||
|
|
||||||
int target_to_host_signal(int sig)
|
int target_to_host_signal(int sig)
|
||||||
{
|
{
|
||||||
if (sig > 64)
|
if (sig >= _NSIG)
|
||||||
return sig;
|
return sig;
|
||||||
return target_to_host_signal_table[sig];
|
return target_to_host_signal_table[sig];
|
||||||
}
|
}
|
||||||
|
@ -311,11 +311,11 @@ void signal_init(void)
|
||||||
int host_sig;
|
int host_sig;
|
||||||
|
|
||||||
/* generate signal conversion tables */
|
/* generate signal conversion tables */
|
||||||
for(i = 1; i <= 64; i++) {
|
for(i = 1; i < _NSIG; i++) {
|
||||||
if (host_to_target_signal_table[i] == 0)
|
if (host_to_target_signal_table[i] == 0)
|
||||||
host_to_target_signal_table[i] = i;
|
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];
|
j = host_to_target_signal_table[i];
|
||||||
target_to_host_signal_table[j] = i;
|
target_to_host_signal_table[j] = i;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue