xref: /aosp_15_r20/external/llvm-libc/include/llvm-libc-macros/linux/signal-macros.h (revision 71db0c75aadcf003ffe3238005f61d7618a3fead)
1*71db0c75SAndroid Build Coastguard Worker //===-- Definition of Linux signal number macros --------------------------===//
2*71db0c75SAndroid Build Coastguard Worker //
3*71db0c75SAndroid Build Coastguard Worker // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*71db0c75SAndroid Build Coastguard Worker // See https://llvm.org/LICENSE.txt for license information.
5*71db0c75SAndroid Build Coastguard Worker // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*71db0c75SAndroid Build Coastguard Worker //
7*71db0c75SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===//
8*71db0c75SAndroid Build Coastguard Worker 
9*71db0c75SAndroid Build Coastguard Worker #ifndef LLVM_LIBC_MACROS_LINUX_SIGNAL_MACROS_H
10*71db0c75SAndroid Build Coastguard Worker #define LLVM_LIBC_MACROS_LINUX_SIGNAL_MACROS_H
11*71db0c75SAndroid Build Coastguard Worker 
12*71db0c75SAndroid Build Coastguard Worker #define SIGHUP 1
13*71db0c75SAndroid Build Coastguard Worker #define SIGINT 2
14*71db0c75SAndroid Build Coastguard Worker #define SIGQUIT 3
15*71db0c75SAndroid Build Coastguard Worker #define SIGILL 4
16*71db0c75SAndroid Build Coastguard Worker #define SIGTRAP 5
17*71db0c75SAndroid Build Coastguard Worker #define SIGABRT 6
18*71db0c75SAndroid Build Coastguard Worker #define SIGIOT 6
19*71db0c75SAndroid Build Coastguard Worker #define SIGBUS 7
20*71db0c75SAndroid Build Coastguard Worker #define SIGFPE 8
21*71db0c75SAndroid Build Coastguard Worker #define SIGKILL 9
22*71db0c75SAndroid Build Coastguard Worker #define SIGUSR1 10
23*71db0c75SAndroid Build Coastguard Worker #define SIGSEGV 11
24*71db0c75SAndroid Build Coastguard Worker #define SIGUSR2 12
25*71db0c75SAndroid Build Coastguard Worker #define SIGPIPE 13
26*71db0c75SAndroid Build Coastguard Worker #define SIGALRM 14
27*71db0c75SAndroid Build Coastguard Worker #define SIGTERM 15
28*71db0c75SAndroid Build Coastguard Worker #define SIGSTKFLT 16
29*71db0c75SAndroid Build Coastguard Worker #define SIGCHLD 17
30*71db0c75SAndroid Build Coastguard Worker #define SIGCONT 18
31*71db0c75SAndroid Build Coastguard Worker #define SIGSTOP 19
32*71db0c75SAndroid Build Coastguard Worker #define SIGTSTP 20
33*71db0c75SAndroid Build Coastguard Worker #define SIGTTIN 21
34*71db0c75SAndroid Build Coastguard Worker #define SIGTTOU 22
35*71db0c75SAndroid Build Coastguard Worker #define SIGURG 23
36*71db0c75SAndroid Build Coastguard Worker #define SIGXCPU 24
37*71db0c75SAndroid Build Coastguard Worker #define SIGXFSZ 25
38*71db0c75SAndroid Build Coastguard Worker #define SIGVTALRM 26
39*71db0c75SAndroid Build Coastguard Worker #define SIGPROF 27
40*71db0c75SAndroid Build Coastguard Worker #define SIGWINCH 28
41*71db0c75SAndroid Build Coastguard Worker #define SIGIO 29
42*71db0c75SAndroid Build Coastguard Worker #define SIGPOLL SIGIO
43*71db0c75SAndroid Build Coastguard Worker #define SIGPWR 30
44*71db0c75SAndroid Build Coastguard Worker #define SIGSYS 31
45*71db0c75SAndroid Build Coastguard Worker 
46*71db0c75SAndroid Build Coastguard Worker // Max signal number
47*71db0c75SAndroid Build Coastguard Worker #define NSIG 64
48*71db0c75SAndroid Build Coastguard Worker 
49*71db0c75SAndroid Build Coastguard Worker // SIGRTMIN is current set to the minimum usable from user mode programs. If
50*71db0c75SAndroid Build Coastguard Worker // the libc itself uses some of these signal numbers for private operations,
51*71db0c75SAndroid Build Coastguard Worker // then it has to be adjusted in future to reflect that.
52*71db0c75SAndroid Build Coastguard Worker #define SIGRTMIN 32
53*71db0c75SAndroid Build Coastguard Worker 
54*71db0c75SAndroid Build Coastguard Worker #define SIGRTMAX NSIG
55*71db0c75SAndroid Build Coastguard Worker 
56*71db0c75SAndroid Build Coastguard Worker // The kernel sigset is stored as an array of long values. Each bit of this
57*71db0c75SAndroid Build Coastguard Worker // array corresponds to a signal, adjusted by 1. That is, bit 0 corresponds
58*71db0c75SAndroid Build Coastguard Worker // to signal number 1, bit 1 corresponds to signal number 2 and so on. The
59*71db0c75SAndroid Build Coastguard Worker // below macro denotes the size of that array (in number of long words and
60*71db0c75SAndroid Build Coastguard Worker // not bytes).
61*71db0c75SAndroid Build Coastguard Worker #define __NSIGSET_WORDS (NSIG / (sizeof(unsigned long) * 8))
62*71db0c75SAndroid Build Coastguard Worker 
63*71db0c75SAndroid Build Coastguard Worker #define SIG_BLOCK 0   // For blocking signals
64*71db0c75SAndroid Build Coastguard Worker #define SIG_UNBLOCK 1 // For unblocking signals
65*71db0c75SAndroid Build Coastguard Worker #define SIG_SETMASK 2 // For setting signal mask
66*71db0c75SAndroid Build Coastguard Worker 
67*71db0c75SAndroid Build Coastguard Worker // Flag values to be used for setting sigaction.sa_flags.
68*71db0c75SAndroid Build Coastguard Worker #define SA_NOCLDSTOP 0x00000001
69*71db0c75SAndroid Build Coastguard Worker #define SA_NOCLDWAIT 0x00000002
70*71db0c75SAndroid Build Coastguard Worker #define SA_SIGINFO 0x00000004
71*71db0c75SAndroid Build Coastguard Worker #define SA_RESTART 0x10000000
72*71db0c75SAndroid Build Coastguard Worker #define SA_RESTORER 0x04000000
73*71db0c75SAndroid Build Coastguard Worker #define SA_ONSTACK 0x08000000
74*71db0c75SAndroid Build Coastguard Worker 
75*71db0c75SAndroid Build Coastguard Worker // Signal stack flags
76*71db0c75SAndroid Build Coastguard Worker #define SS_ONSTACK 0x1
77*71db0c75SAndroid Build Coastguard Worker #define SS_DISABLE 0x2
78*71db0c75SAndroid Build Coastguard Worker 
79*71db0c75SAndroid Build Coastguard Worker #if defined(__x86_64__) || defined(__i386__) || defined(__riscv)
80*71db0c75SAndroid Build Coastguard Worker #define MINSIGSTKSZ 2048
81*71db0c75SAndroid Build Coastguard Worker #define SIGSTKSZ 8192
82*71db0c75SAndroid Build Coastguard Worker #elif defined(__aarch64__)
83*71db0c75SAndroid Build Coastguard Worker #define MINSIGSTKSZ 5120
84*71db0c75SAndroid Build Coastguard Worker #define SIGSTKSZ 16384
85*71db0c75SAndroid Build Coastguard Worker #else
86*71db0c75SAndroid Build Coastguard Worker #error "Signal stack sizes not defined for your platform."
87*71db0c75SAndroid Build Coastguard Worker #endif
88*71db0c75SAndroid Build Coastguard Worker 
89*71db0c75SAndroid Build Coastguard Worker #define SIG_DFL ((__sighandler_t)0)
90*71db0c75SAndroid Build Coastguard Worker #define SIG_IGN ((__sighandler_t)1)
91*71db0c75SAndroid Build Coastguard Worker #define SIG_ERR ((__sighandler_t)-1)
92*71db0c75SAndroid Build Coastguard Worker 
93*71db0c75SAndroid Build Coastguard Worker // SIGCHLD si_codes
94*71db0c75SAndroid Build Coastguard Worker #define CLD_EXITED 1    // child has exited
95*71db0c75SAndroid Build Coastguard Worker #define CLD_KILLED 2    // child was killed
96*71db0c75SAndroid Build Coastguard Worker #define CLD_DUMPED 3    // child terminated abnormally
97*71db0c75SAndroid Build Coastguard Worker #define CLD_TRAPPED 4   // traced child has trapped
98*71db0c75SAndroid Build Coastguard Worker #define CLD_STOPPED 5   // child has stopped
99*71db0c75SAndroid Build Coastguard Worker #define CLD_CONTINUED 6 // stopped child has continued
100*71db0c75SAndroid Build Coastguard Worker 
101*71db0c75SAndroid Build Coastguard Worker #endif // LLVM_LIBC_MACROS_LINUX_SIGNAL_MACROS_H
102