diff options
author | Laurent Vivier <laurent@vivier.eu> | 2018-04-24 21:26:35 +0200 |
---|---|---|
committer | Laurent Vivier <laurent@vivier.eu> | 2018-04-30 09:47:47 +0200 |
commit | cb6ac802efea73605288f5d18e28611cbc97d9d2 (patch) | |
tree | 4307548dea3fe65605faead8c56256635669bc5e /linux-user/signal.c | |
parent | 9340eddae83f2e1398bbb7333feef51c53470579 (diff) |
linux-user: define TARGET_ARCH_HAS_SETUP_FRAME
Instead of calling setup_frame() conditionally to a list of known targets,
define TARGET_ARCH_HAS_SETUP_FRAME if the target provides the function
and call it only if the macro is defined.
Move declarations of setup_frame() and setup_rt_frame() to
linux-user/signal-common.h
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20180424192635.6027-21-laurent@vivier.eu>
Diffstat (limited to 'linux-user/signal.c')
-rw-r--r-- | linux-user/signal.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/linux-user/signal.c b/linux-user/signal.c index 7f435c4606..a3022c2f04 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -873,18 +873,15 @@ static void handle_pending_signal(CPUArchState *cpu_env, int sig, } #endif /* prepare the stack frame of the virtual CPU */ -#if defined(TARGET_ABI_MIPSN32) || defined(TARGET_ABI_MIPSN64) \ - || defined(TARGET_OPENRISC) || defined(TARGET_TILEGX) \ - || defined(TARGET_PPC64) || defined(TARGET_HPPA) \ - || defined(TARGET_NIOS2) || defined(TARGET_X86_64) \ - || defined(TARGET_RISCV) || defined(TARGET_XTENSA) - /* These targets do not have traditional signals. */ - setup_rt_frame(sig, sa, &k->info, &target_old_set, cpu_env); -#else - if (sa->sa_flags & TARGET_SA_SIGINFO) +#if defined(TARGET_ARCH_HAS_SETUP_FRAME) + if (sa->sa_flags & TARGET_SA_SIGINFO) { setup_rt_frame(sig, sa, &k->info, &target_old_set, cpu_env); - else + } else { setup_frame(sig, sa, &target_old_set, cpu_env); + } +#else + /* These targets do not have traditional signals. */ + setup_rt_frame(sig, sa, &k->info, &target_old_set, cpu_env); #endif if (sa->sa_flags & TARGET_SA_RESETHAND) { sa->_sa_handler = TARGET_SIG_DFL; |