xref: /qemu/linux-user/hppa/target_signal.h (revision 727385c4)
1 #ifndef HPPA_TARGET_SIGNAL_H
2 #define HPPA_TARGET_SIGNAL_H
3 
4 #define TARGET_SIGHUP           1
5 #define TARGET_SIGINT           2
6 #define TARGET_SIGQUIT          3
7 #define TARGET_SIGILL           4
8 #define TARGET_SIGTRAP          5
9 #define TARGET_SIGABRT          6
10 #define TARGET_SIGIOT           6
11 #define TARGET_SIGSTKFLT        7
12 #define TARGET_SIGFPE           8
13 #define TARGET_SIGKILL          9
14 #define TARGET_SIGBUS          10
15 #define TARGET_SIGSEGV         11
16 #define TARGET_SIGXCPU         12
17 #define TARGET_SIGPIPE         13
18 #define TARGET_SIGALRM         14
19 #define TARGET_SIGTERM         15
20 #define TARGET_SIGUSR1         16
21 #define TARGET_SIGUSR2         17
22 #define TARGET_SIGCHLD         18
23 #define TARGET_SIGPWR          19
24 #define TARGET_SIGVTALRM       20
25 #define TARGET_SIGPROF         21
26 #define TARGET_SIGIO           22
27 #define TARGET_SIGPOLL         TARGET_SIGIO
28 #define TARGET_SIGWINCH        23
29 #define TARGET_SIGSTOP         24
30 #define TARGET_SIGTSTP         25
31 #define TARGET_SIGCONT         26
32 #define TARGET_SIGTTIN         27
33 #define TARGET_SIGTTOU         28
34 #define TARGET_SIGURG          29
35 #define TARGET_SIGXFSZ         30
36 #define TARGET_SIGSYS          31
37 #define TARGET_SIGRTMIN        32
38 
39 #define TARGET_SIG_BLOCK       0
40 #define TARGET_SIG_UNBLOCK     1
41 #define TARGET_SIG_SETMASK     2
42 
43 /* this struct defines a stack used during syscall handling */
44 
45 typedef struct target_sigaltstack {
46     abi_ulong ss_sp;
47     abi_int ss_flags;
48     abi_ulong ss_size;
49 } target_stack_t;
50 
51 
52 /*
53  * sigaltstack controls
54  */
55 #define TARGET_SS_ONSTACK	1
56 #define TARGET_SS_DISABLE	2
57 
58 #define TARGET_SA_ONSTACK       0x00000001
59 #define TARGET_SA_RESETHAND     0x00000004
60 #define TARGET_SA_NOCLDSTOP     0x00000008
61 #define TARGET_SA_SIGINFO       0x00000010
62 #define TARGET_SA_NODEFER       0x00000020
63 #define TARGET_SA_RESTART       0x00000040
64 #define TARGET_SA_NOCLDWAIT     0x00000080
65 
66 #define TARGET_MINSIGSTKSZ	2048
67 #define TARGET_SIGSTKSZ		8192
68 
69 /* bit-flags */
70 #define TARGET_SS_AUTODISARM (1U << 31) /* disable sas during sighandling */
71 /* mask for all SS_xxx flags */
72 #define TARGET_SS_FLAG_BITS  TARGET_SS_AUTODISARM
73 
74 /*
75  * We cannot use a bare sigtramp page for hppa-linux.
76  *
77  * Unlike other guests where we use the instructions at PC to validate
78  * an offset from SP, the hppa libgcc signal frame fallback unwinding uses
79  * the PC address itself to find the frame.  This is due to the fact that
80  * the hppa grows the stack upward, and the frame is of unknown size.
81  *
82  * TODO: We should be able to use a VDSO to address this, by providing
83  * proper unwind info for the sigtramp code, at which point the fallback
84  * unwinder will not be used.
85  */
86 #define TARGET_ARCH_HAS_SIGTRAMP_PAGE 0
87 
88 #endif /* HPPA_TARGET_SIGNAL_H */
89