a22fccd8b7
We cannot use a raw sigtramp page for hppa, but must wait for full vdso support. Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20210929130553.121567-10-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
89 lines
2.7 KiB
C
89 lines
2.7 KiB
C
#ifndef HPPA_TARGET_SIGNAL_H
|
|
#define HPPA_TARGET_SIGNAL_H
|
|
|
|
#define TARGET_SIGHUP 1
|
|
#define TARGET_SIGINT 2
|
|
#define TARGET_SIGQUIT 3
|
|
#define TARGET_SIGILL 4
|
|
#define TARGET_SIGTRAP 5
|
|
#define TARGET_SIGABRT 6
|
|
#define TARGET_SIGIOT 6
|
|
#define TARGET_SIGSTKFLT 7
|
|
#define TARGET_SIGFPE 8
|
|
#define TARGET_SIGKILL 9
|
|
#define TARGET_SIGBUS 10
|
|
#define TARGET_SIGSEGV 11
|
|
#define TARGET_SIGXCPU 12
|
|
#define TARGET_SIGPIPE 13
|
|
#define TARGET_SIGALRM 14
|
|
#define TARGET_SIGTERM 15
|
|
#define TARGET_SIGUSR1 16
|
|
#define TARGET_SIGUSR2 17
|
|
#define TARGET_SIGCHLD 18
|
|
#define TARGET_SIGPWR 19
|
|
#define TARGET_SIGVTALRM 20
|
|
#define TARGET_SIGPROF 21
|
|
#define TARGET_SIGIO 22
|
|
#define TARGET_SIGPOLL TARGET_SIGIO
|
|
#define TARGET_SIGWINCH 23
|
|
#define TARGET_SIGSTOP 24
|
|
#define TARGET_SIGTSTP 25
|
|
#define TARGET_SIGCONT 26
|
|
#define TARGET_SIGTTIN 27
|
|
#define TARGET_SIGTTOU 28
|
|
#define TARGET_SIGURG 29
|
|
#define TARGET_SIGXFSZ 30
|
|
#define TARGET_SIGSYS 31
|
|
#define TARGET_SIGRTMIN 32
|
|
|
|
#define TARGET_SIG_BLOCK 0
|
|
#define TARGET_SIG_UNBLOCK 1
|
|
#define TARGET_SIG_SETMASK 2
|
|
|
|
/* this struct defines a stack used during syscall handling */
|
|
|
|
typedef struct target_sigaltstack {
|
|
abi_ulong ss_sp;
|
|
abi_int ss_flags;
|
|
abi_ulong ss_size;
|
|
} target_stack_t;
|
|
|
|
|
|
/*
|
|
* sigaltstack controls
|
|
*/
|
|
#define TARGET_SS_ONSTACK 1
|
|
#define TARGET_SS_DISABLE 2
|
|
|
|
#define TARGET_SA_ONSTACK 0x00000001
|
|
#define TARGET_SA_RESETHAND 0x00000004
|
|
#define TARGET_SA_NOCLDSTOP 0x00000008
|
|
#define TARGET_SA_SIGINFO 0x00000010
|
|
#define TARGET_SA_NODEFER 0x00000020
|
|
#define TARGET_SA_RESTART 0x00000040
|
|
#define TARGET_SA_NOCLDWAIT 0x00000080
|
|
|
|
#define TARGET_MINSIGSTKSZ 2048
|
|
#define TARGET_SIGSTKSZ 8192
|
|
|
|
/* bit-flags */
|
|
#define TARGET_SS_AUTODISARM (1U << 31) /* disable sas during sighandling */
|
|
/* mask for all SS_xxx flags */
|
|
#define TARGET_SS_FLAG_BITS TARGET_SS_AUTODISARM
|
|
|
|
/*
|
|
* We cannot use a bare sigtramp page for hppa-linux.
|
|
*
|
|
* Unlike other guests where we use the instructions at PC to validate
|
|
* an offset from SP, the hppa libgcc signal frame fallback unwinding uses
|
|
* the PC address itself to find the frame. This is due to the fact that
|
|
* the hppa grows the stack upward, and the frame is of unknown size.
|
|
*
|
|
* TODO: We should be able to use a VDSO to address this, by providing
|
|
* proper unwind info for the sigtramp code, at which point the fallback
|
|
* unwinder will not be used.
|
|
*/
|
|
#define TARGET_ARCH_HAS_SIGTRAMP_PAGE 0
|
|
|
|
#endif /* HPPA_TARGET_SIGNAL_H */
|