1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * This file is subject to the terms and conditions of the GNU General Public 4*4882a593Smuzhiyun * License. See the file "COPYING" in the main directory of this archive 5*4882a593Smuzhiyun * for more details. 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * Copyright (C) 1995, 96, 97, 98, 99, 2003 by Ralf Baechle 8*4882a593Smuzhiyun * Copyright (C) 1999 Silicon Graphics, Inc. 9*4882a593Smuzhiyun */ 10*4882a593Smuzhiyun #ifndef _UAPI_ASM_SIGNAL_H 11*4882a593Smuzhiyun #define _UAPI_ASM_SIGNAL_H 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun #include <linux/types.h> 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun #define _NSIG 128 16*4882a593Smuzhiyun #define _NSIG_BPW (sizeof(unsigned long) * 8) 17*4882a593Smuzhiyun #define _NSIG_WORDS (_NSIG / _NSIG_BPW) 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun typedef struct { 20*4882a593Smuzhiyun unsigned long sig[_NSIG_WORDS]; 21*4882a593Smuzhiyun } sigset_t; 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun typedef unsigned long old_sigset_t; /* at least 32 bits */ 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun #define SIGHUP 1 /* Hangup (POSIX). */ 26*4882a593Smuzhiyun #define SIGINT 2 /* Interrupt (ANSI). */ 27*4882a593Smuzhiyun #define SIGQUIT 3 /* Quit (POSIX). */ 28*4882a593Smuzhiyun #define SIGILL 4 /* Illegal instruction (ANSI). */ 29*4882a593Smuzhiyun #define SIGTRAP 5 /* Trace trap (POSIX). */ 30*4882a593Smuzhiyun #define SIGIOT 6 /* IOT trap (4.2 BSD). */ 31*4882a593Smuzhiyun #define SIGABRT SIGIOT /* Abort (ANSI). */ 32*4882a593Smuzhiyun #define SIGEMT 7 33*4882a593Smuzhiyun #define SIGFPE 8 /* Floating-point exception (ANSI). */ 34*4882a593Smuzhiyun #define SIGKILL 9 /* Kill, unblockable (POSIX). */ 35*4882a593Smuzhiyun #define SIGBUS 10 /* BUS error (4.2 BSD). */ 36*4882a593Smuzhiyun #define SIGSEGV 11 /* Segmentation violation (ANSI). */ 37*4882a593Smuzhiyun #define SIGSYS 12 38*4882a593Smuzhiyun #define SIGPIPE 13 /* Broken pipe (POSIX). */ 39*4882a593Smuzhiyun #define SIGALRM 14 /* Alarm clock (POSIX). */ 40*4882a593Smuzhiyun #define SIGTERM 15 /* Termination (ANSI). */ 41*4882a593Smuzhiyun #define SIGUSR1 16 /* User-defined signal 1 (POSIX). */ 42*4882a593Smuzhiyun #define SIGUSR2 17 /* User-defined signal 2 (POSIX). */ 43*4882a593Smuzhiyun #define SIGCHLD 18 /* Child status has changed (POSIX). */ 44*4882a593Smuzhiyun #define SIGCLD SIGCHLD /* Same as SIGCHLD (System V). */ 45*4882a593Smuzhiyun #define SIGPWR 19 /* Power failure restart (System V). */ 46*4882a593Smuzhiyun #define SIGWINCH 20 /* Window size change (4.3 BSD, Sun). */ 47*4882a593Smuzhiyun #define SIGURG 21 /* Urgent condition on socket (4.2 BSD). */ 48*4882a593Smuzhiyun #define SIGIO 22 /* I/O now possible (4.2 BSD). */ 49*4882a593Smuzhiyun #define SIGPOLL SIGIO /* Pollable event occurred (System V). */ 50*4882a593Smuzhiyun #define SIGSTOP 23 /* Stop, unblockable (POSIX). */ 51*4882a593Smuzhiyun #define SIGTSTP 24 /* Keyboard stop (POSIX). */ 52*4882a593Smuzhiyun #define SIGCONT 25 /* Continue (POSIX). */ 53*4882a593Smuzhiyun #define SIGTTIN 26 /* Background read from tty (POSIX). */ 54*4882a593Smuzhiyun #define SIGTTOU 27 /* Background write to tty (POSIX). */ 55*4882a593Smuzhiyun #define SIGVTALRM 28 /* Virtual alarm clock (4.2 BSD). */ 56*4882a593Smuzhiyun #define SIGPROF 29 /* Profiling alarm clock (4.2 BSD). */ 57*4882a593Smuzhiyun #define SIGXCPU 30 /* CPU limit exceeded (4.2 BSD). */ 58*4882a593Smuzhiyun #define SIGXFSZ 31 /* File size limit exceeded (4.2 BSD). */ 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun /* These should not be considered constants from userland. */ 61*4882a593Smuzhiyun #define SIGRTMIN 32 62*4882a593Smuzhiyun #define SIGRTMAX _NSIG 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun /* 65*4882a593Smuzhiyun * SA_RESTORER used to be defined as 0x04000000 but only the O32 ABI ever 66*4882a593Smuzhiyun * supported its use and no libc was using it, so the entire sa-restorer 67*4882a593Smuzhiyun * functionality was removed with lmo commit 39bffc12c3580ab for 2.5.48 68*4882a593Smuzhiyun * retaining only the SA_RESTORER definition as a reminder to avoid 69*4882a593Smuzhiyun * accidental reuse of the mask bit. 70*4882a593Smuzhiyun */ 71*4882a593Smuzhiyun #define SA_ONSTACK 0x08000000 72*4882a593Smuzhiyun #define SA_RESETHAND 0x80000000 73*4882a593Smuzhiyun #define SA_RESTART 0x10000000 74*4882a593Smuzhiyun #define SA_SIGINFO 0x00000008 75*4882a593Smuzhiyun #define SA_NODEFER 0x40000000 76*4882a593Smuzhiyun #define SA_NOCLDWAIT 0x00010000 77*4882a593Smuzhiyun #define SA_NOCLDSTOP 0x00000001 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun #define SA_NOMASK SA_NODEFER 80*4882a593Smuzhiyun #define SA_ONESHOT SA_RESETHAND 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun #define MINSIGSTKSZ 2048 83*4882a593Smuzhiyun #define SIGSTKSZ 8192 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun #define SIG_BLOCK 1 /* for blocking signals */ 87*4882a593Smuzhiyun #define SIG_UNBLOCK 2 /* for unblocking signals */ 88*4882a593Smuzhiyun #define SIG_SETMASK 3 /* for setting the signal mask */ 89*4882a593Smuzhiyun 90*4882a593Smuzhiyun #include <asm-generic/signal-defs.h> 91*4882a593Smuzhiyun 92*4882a593Smuzhiyun #ifndef __KERNEL__ 93*4882a593Smuzhiyun struct sigaction { 94*4882a593Smuzhiyun unsigned int sa_flags; 95*4882a593Smuzhiyun __sighandler_t sa_handler; 96*4882a593Smuzhiyun sigset_t sa_mask; 97*4882a593Smuzhiyun }; 98*4882a593Smuzhiyun #endif 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun /* IRIX compatible stack_t */ 101*4882a593Smuzhiyun typedef struct sigaltstack { 102*4882a593Smuzhiyun void __user *ss_sp; 103*4882a593Smuzhiyun size_t ss_size; 104*4882a593Smuzhiyun int ss_flags; 105*4882a593Smuzhiyun } stack_t; 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun #endif /* _UAPI_ASM_SIGNAL_H */ 109