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