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