xref: /qemu/linux-user/generic/signal.h (revision b2a3cbb8)
1 /*
2  * This program is free software; you can redistribute it and/or modify
3  * it under the terms of the GNU General Public License version 2 as
4  * published by the Free Software Foundation, or (at your option) any
5  * later version. See the COPYING file in the top-level directory.
6  */
7 
8 #ifndef GENERIC_SIGNAL_H
9 #define GENERIC_SIGNAL_H
10 
11 #define TARGET_SA_NOCLDSTOP     0x00000001
12 #define TARGET_SA_NOCLDWAIT     0x00000002 /* not supported yet */
13 #define TARGET_SA_SIGINFO       0x00000004
14 #define TARGET_SA_ONSTACK       0x08000000
15 #define TARGET_SA_RESTART       0x10000000
16 #define TARGET_SA_NODEFER       0x40000000
17 #define TARGET_SA_RESETHAND     0x80000000
18 #define TARGET_SA_RESTORER      0x04000000
19 
20 #define TARGET_SIGHUP            1
21 #define TARGET_SIGINT            2
22 #define TARGET_SIGQUIT           3
23 #define TARGET_SIGILL            4
24 #define TARGET_SIGTRAP           5
25 #define TARGET_SIGABRT           6
26 #define TARGET_SIGIOT            6
27 #define TARGET_SIGBUS            7
28 #define TARGET_SIGFPE            8
29 #define TARGET_SIGKILL           9
30 #define TARGET_SIGUSR1          10
31 #define TARGET_SIGSEGV          11
32 #define TARGET_SIGUSR2          12
33 #define TARGET_SIGPIPE          13
34 #define TARGET_SIGALRM          14
35 #define TARGET_SIGTERM          15
36 #define TARGET_SIGSTKFLT        16
37 #define TARGET_SIGCHLD          17
38 #define TARGET_SIGCONT          18
39 #define TARGET_SIGSTOP          19
40 #define TARGET_SIGTSTP          20
41 #define TARGET_SIGTTIN          21
42 #define TARGET_SIGTTOU          22
43 #define TARGET_SIGURG           23
44 #define TARGET_SIGXCPU          24
45 #define TARGET_SIGXFSZ          25
46 #define TARGET_SIGVTALRM        26
47 #define TARGET_SIGPROF          27
48 #define TARGET_SIGWINCH         28
49 #define TARGET_SIGIO            29
50 #define TARGET_SIGPWR           30
51 #define TARGET_SIGSYS           31
52 #define TARGET_SIGRTMIN         32
53 
54 #define TARGET_SIG_BLOCK          0    /* for blocking signals */
55 #define TARGET_SIG_UNBLOCK        1    /* for unblocking signals */
56 #define TARGET_SIG_SETMASK        2    /* for setting the signal mask */
57 
58 /* this struct defines a stack used during syscall handling */
59 typedef struct target_sigaltstack {
60     abi_ulong ss_sp;
61     abi_int ss_flags;
62     abi_ulong ss_size;
63 } target_stack_t;
64 
65 /*
66  * sigaltstack controls
67  */
68 #define TARGET_SS_ONSTACK 1
69 #define TARGET_SS_DISABLE 2
70 
71 #define TARGET_MINSIGSTKSZ     2048
72 
73 /* bit-flags */
74 #define TARGET_SS_AUTODISARM (1U << 31) /* disable sas during sighandling */
75 /* mask for all SS_xxx flags */
76 #define TARGET_SS_FLAG_BITS  TARGET_SS_AUTODISARM
77 
78 #endif
79