linux-user/signal: Drop HOST_SIGNAL_PLACEHOLDER
Now that all of the linux-user hosts have been converted to host-signal.h, drop the compatibility code. Reviewed by: Warner Losh <imp@bsdimp.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
4f3bbd9cfb
commit
04de121aaf
|
@ -685,18 +685,6 @@ MMUAccessType adjust_signal_pc(uintptr_t *pc, bool is_write);
|
||||||
bool handle_sigsegv_accerr_write(CPUState *cpu, sigset_t *old_set,
|
bool handle_sigsegv_accerr_write(CPUState *cpu, sigset_t *old_set,
|
||||||
uintptr_t host_pc, abi_ptr guest_addr);
|
uintptr_t host_pc, abi_ptr guest_addr);
|
||||||
|
|
||||||
/**
|
|
||||||
* cpu_signal_handler
|
|
||||||
* @signum: host signal number
|
|
||||||
* @pinfo: host siginfo_t
|
|
||||||
* @puc: host ucontext_t
|
|
||||||
*
|
|
||||||
* To be called from the SIGBUS and SIGSEGV signal handler to inform the
|
|
||||||
* virtual cpu of exceptions. Returns true if the signal was handled by
|
|
||||||
* the virtual CPU.
|
|
||||||
*/
|
|
||||||
int cpu_signal_handler(int signum, void *pinfo, void *puc);
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
static inline void mmap_lock(void) {}
|
static inline void mmap_lock(void) {}
|
||||||
static inline void mmap_unlock(void) {}
|
static inline void mmap_unlock(void) {}
|
||||||
|
|
|
@ -780,17 +780,6 @@ static void host_signal_handler(int host_sig, siginfo_t *info, void *puc)
|
||||||
ucontext_t *uc = puc;
|
ucontext_t *uc = puc;
|
||||||
struct emulated_sigtable *k;
|
struct emulated_sigtable *k;
|
||||||
int guest_sig;
|
int guest_sig;
|
||||||
|
|
||||||
#ifdef HOST_SIGNAL_PLACEHOLDER
|
|
||||||
/* the CPU emulator uses some host signals to detect exceptions,
|
|
||||||
we forward to it some signals */
|
|
||||||
if ((host_sig == SIGSEGV || host_sig == SIGBUS)
|
|
||||||
&& info->si_code > 0) {
|
|
||||||
if (cpu_signal_handler(host_sig, info, puc)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
uintptr_t pc = 0;
|
uintptr_t pc = 0;
|
||||||
bool sync_sig = false;
|
bool sync_sig = false;
|
||||||
|
|
||||||
|
@ -850,7 +839,6 @@ static void host_signal_handler(int host_sig, siginfo_t *info, void *puc)
|
||||||
|
|
||||||
sync_sig = true;
|
sync_sig = true;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/* get target signal number */
|
/* get target signal number */
|
||||||
guest_sig = host_to_target_signal(host_sig);
|
guest_sig = host_to_target_signal(host_sig);
|
||||||
|
@ -865,7 +853,6 @@ static void host_signal_handler(int host_sig, siginfo_t *info, void *puc)
|
||||||
k->pending = guest_sig;
|
k->pending = guest_sig;
|
||||||
ts->signal_pending = 1;
|
ts->signal_pending = 1;
|
||||||
|
|
||||||
#ifndef HOST_SIGNAL_PLACEHOLDER
|
|
||||||
/*
|
/*
|
||||||
* For synchronous signals, unwind the cpu state to the faulting
|
* For synchronous signals, unwind the cpu state to the faulting
|
||||||
* insn and then exit back to the main loop so that the signal
|
* insn and then exit back to the main loop so that the signal
|
||||||
|
@ -875,7 +862,6 @@ static void host_signal_handler(int host_sig, siginfo_t *info, void *puc)
|
||||||
cpu->exception_index = EXCP_INTERRUPT;
|
cpu->exception_index = EXCP_INTERRUPT;
|
||||||
cpu_loop_exit_restore(cpu, pc);
|
cpu_loop_exit_restore(cpu, pc);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
rewind_if_in_safe_syscall(puc);
|
rewind_if_in_safe_syscall(puc);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue