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