xref: /qemu/linux-user/generic/signal.h (revision 513823e7521a09ed7ad1e32e6454bac3b2cbf52d)
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 
19 #define TARGET_SIGHUP            1
20 #define TARGET_SIGINT            2
21 #define TARGET_SIGQUIT           3
22 #define TARGET_SIGILL            4
23 #define TARGET_SIGTRAP           5
24 #define TARGET_SIGABRT           6
25 #define TARGET_SIGIOT            6
26 #define TARGET_SIGBUS            7
27 #define TARGET_SIGFPE            8
28 #define TARGET_SIGKILL           9
29 #define TARGET_SIGUSR1          10
30 #define TARGET_SIGSEGV          11
31 #define TARGET_SIGUSR2          12
32 #define TARGET_SIGPIPE          13
33 #define TARGET_SIGALRM          14
34 #define TARGET_SIGTERM          15
35 #define TARGET_SIGSTKFLT        16
36 #define TARGET_SIGCHLD          17
37 #define TARGET_SIGCONT          18
38 #define TARGET_SIGSTOP          19
39 #define TARGET_SIGTSTP          20
40 #define TARGET_SIGTTIN          21
41 #define TARGET_SIGTTOU          22
42 #define TARGET_SIGURG           23
43 #define TARGET_SIGXCPU          24
44 #define TARGET_SIGXFSZ          25
45 #define TARGET_SIGVTALRM        26
46 #define TARGET_SIGPROF          27
47 #define TARGET_SIGWINCH         28
48 #define TARGET_SIGIO            29
49 #define TARGET_SIGPWR           30
50 #define TARGET_SIGSYS           31
51 #define TARGET_SIGRTMIN         32
52 
53 #define TARGET_SIG_BLOCK          0    /* for blocking signals */
54 #define TARGET_SIG_UNBLOCK        1    /* for unblocking signals */
55 #define TARGET_SIG_SETMASK        2    /* for setting the signal mask */
56 
57 /* this struct defines a stack used during syscall handling */
58 typedef struct target_sigaltstack {
59     abi_ulong ss_sp;
60     abi_int ss_flags;
61     abi_ulong ss_size;
62 } target_stack_t;
63 
64 /*
65  * sigaltstack controls
66  */
67 #define TARGET_SS_ONSTACK 1
68 #define TARGET_SS_DISABLE 2
69 
70 #define TARGET_MINSIGSTKSZ     2048
71 
72 /* bit-flags */
73 #define TARGET_SS_AUTODISARM (1U << 31) /* disable sas during sighandling */
74 /* mask for all SS_xxx flags */
75 #define TARGET_SS_FLAG_BITS  TARGET_SS_AUTODISARM
76 
77 #endif
78