1*384740dcSRalf Baechle /* 2*384740dcSRalf Baechle * This file is subject to the terms and conditions of the GNU General Public 3*384740dcSRalf Baechle * License. See the file "COPYING" in the main directory of this archive 4*384740dcSRalf Baechle * for more details. 5*384740dcSRalf Baechle * 6*384740dcSRalf Baechle * Copyright (C) 1995, 96, 97, 98, 99, 2003 by Ralf Baechle 7*384740dcSRalf Baechle * Copyright (C) 1999 Silicon Graphics, Inc. 8*384740dcSRalf Baechle */ 9*384740dcSRalf Baechle #ifndef _ASM_SIGNAL_H 10*384740dcSRalf Baechle #define _ASM_SIGNAL_H 11*384740dcSRalf Baechle 12*384740dcSRalf Baechle #include <linux/types.h> 13*384740dcSRalf Baechle 14*384740dcSRalf Baechle #define _NSIG 128 15*384740dcSRalf Baechle #define _NSIG_BPW (sizeof(unsigned long) * 8) 16*384740dcSRalf Baechle #define _NSIG_WORDS (_NSIG / _NSIG_BPW) 17*384740dcSRalf Baechle 18*384740dcSRalf Baechle typedef struct { 19*384740dcSRalf Baechle unsigned long sig[_NSIG_WORDS]; 20*384740dcSRalf Baechle } sigset_t; 21*384740dcSRalf Baechle 22*384740dcSRalf Baechle typedef unsigned long old_sigset_t; /* at least 32 bits */ 23*384740dcSRalf Baechle 24*384740dcSRalf Baechle #define SIGHUP 1 /* Hangup (POSIX). */ 25*384740dcSRalf Baechle #define SIGINT 2 /* Interrupt (ANSI). */ 26*384740dcSRalf Baechle #define SIGQUIT 3 /* Quit (POSIX). */ 27*384740dcSRalf Baechle #define SIGILL 4 /* Illegal instruction (ANSI). */ 28*384740dcSRalf Baechle #define SIGTRAP 5 /* Trace trap (POSIX). */ 29*384740dcSRalf Baechle #define SIGIOT 6 /* IOT trap (4.2 BSD). */ 30*384740dcSRalf Baechle #define SIGABRT SIGIOT /* Abort (ANSI). */ 31*384740dcSRalf Baechle #define SIGEMT 7 32*384740dcSRalf Baechle #define SIGFPE 8 /* Floating-point exception (ANSI). */ 33*384740dcSRalf Baechle #define SIGKILL 9 /* Kill, unblockable (POSIX). */ 34*384740dcSRalf Baechle #define SIGBUS 10 /* BUS error (4.2 BSD). */ 35*384740dcSRalf Baechle #define SIGSEGV 11 /* Segmentation violation (ANSI). */ 36*384740dcSRalf Baechle #define SIGSYS 12 37*384740dcSRalf Baechle #define SIGPIPE 13 /* Broken pipe (POSIX). */ 38*384740dcSRalf Baechle #define SIGALRM 14 /* Alarm clock (POSIX). */ 39*384740dcSRalf Baechle #define SIGTERM 15 /* Termination (ANSI). */ 40*384740dcSRalf Baechle #define SIGUSR1 16 /* User-defined signal 1 (POSIX). */ 41*384740dcSRalf Baechle #define SIGUSR2 17 /* User-defined signal 2 (POSIX). */ 42*384740dcSRalf Baechle #define SIGCHLD 18 /* Child status has changed (POSIX). */ 43*384740dcSRalf Baechle #define SIGCLD SIGCHLD /* Same as SIGCHLD (System V). */ 44*384740dcSRalf Baechle #define SIGPWR 19 /* Power failure restart (System V). */ 45*384740dcSRalf Baechle #define SIGWINCH 20 /* Window size change (4.3 BSD, Sun). */ 46*384740dcSRalf Baechle #define SIGURG 21 /* Urgent condition on socket (4.2 BSD). */ 47*384740dcSRalf Baechle #define SIGIO 22 /* I/O now possible (4.2 BSD). */ 48*384740dcSRalf Baechle #define SIGPOLL SIGIO /* Pollable event occurred (System V). */ 49*384740dcSRalf Baechle #define SIGSTOP 23 /* Stop, unblockable (POSIX). */ 50*384740dcSRalf Baechle #define SIGTSTP 24 /* Keyboard stop (POSIX). */ 51*384740dcSRalf Baechle #define SIGCONT 25 /* Continue (POSIX). */ 52*384740dcSRalf Baechle #define SIGTTIN 26 /* Background read from tty (POSIX). */ 53*384740dcSRalf Baechle #define SIGTTOU 27 /* Background write to tty (POSIX). */ 54*384740dcSRalf Baechle #define SIGVTALRM 28 /* Virtual alarm clock (4.2 BSD). */ 55*384740dcSRalf Baechle #define SIGPROF 29 /* Profiling alarm clock (4.2 BSD). */ 56*384740dcSRalf Baechle #define SIGXCPU 30 /* CPU limit exceeded (4.2 BSD). */ 57*384740dcSRalf Baechle #define SIGXFSZ 31 /* File size limit exceeded (4.2 BSD). */ 58*384740dcSRalf Baechle 59*384740dcSRalf Baechle /* These should not be considered constants from userland. */ 60*384740dcSRalf Baechle #define SIGRTMIN 32 61*384740dcSRalf Baechle #define SIGRTMAX _NSIG 62*384740dcSRalf Baechle 63*384740dcSRalf Baechle /* 64*384740dcSRalf Baechle * SA_FLAGS values: 65*384740dcSRalf Baechle * 66*384740dcSRalf Baechle * SA_ONSTACK indicates that a registered stack_t will be used. 67*384740dcSRalf Baechle * SA_RESTART flag to get restarting signals (which were the default long ago) 68*384740dcSRalf Baechle * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. 69*384740dcSRalf Baechle * SA_RESETHAND clears the handler when the signal is delivered. 70*384740dcSRalf Baechle * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. 71*384740dcSRalf Baechle * SA_NODEFER prevents the current signal from being masked in the handler. 72*384740dcSRalf Baechle * 73*384740dcSRalf Baechle * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single 74*384740dcSRalf Baechle * Unix names RESETHAND and NODEFER respectively. 75*384740dcSRalf Baechle */ 76*384740dcSRalf Baechle #define SA_ONSTACK 0x08000000 77*384740dcSRalf Baechle #define SA_RESETHAND 0x80000000 78*384740dcSRalf Baechle #define SA_RESTART 0x10000000 79*384740dcSRalf Baechle #define SA_SIGINFO 0x00000008 80*384740dcSRalf Baechle #define SA_NODEFER 0x40000000 81*384740dcSRalf Baechle #define SA_NOCLDWAIT 0x00010000 82*384740dcSRalf Baechle #define SA_NOCLDSTOP 0x00000001 83*384740dcSRalf Baechle 84*384740dcSRalf Baechle #define SA_NOMASK SA_NODEFER 85*384740dcSRalf Baechle #define SA_ONESHOT SA_RESETHAND 86*384740dcSRalf Baechle 87*384740dcSRalf Baechle #define SA_RESTORER 0x04000000 /* Only for o32 */ 88*384740dcSRalf Baechle 89*384740dcSRalf Baechle /* 90*384740dcSRalf Baechle * sigaltstack controls 91*384740dcSRalf Baechle */ 92*384740dcSRalf Baechle #define SS_ONSTACK 1 93*384740dcSRalf Baechle #define SS_DISABLE 2 94*384740dcSRalf Baechle 95*384740dcSRalf Baechle #define MINSIGSTKSZ 2048 96*384740dcSRalf Baechle #define SIGSTKSZ 8192 97*384740dcSRalf Baechle 98*384740dcSRalf Baechle #ifdef __KERNEL__ 99*384740dcSRalf Baechle 100*384740dcSRalf Baechle #ifdef CONFIG_TRAD_SIGNALS 101*384740dcSRalf Baechle #define sig_uses_siginfo(ka) ((ka)->sa.sa_flags & SA_SIGINFO) 102*384740dcSRalf Baechle #else 103*384740dcSRalf Baechle #define sig_uses_siginfo(ka) (1) 104*384740dcSRalf Baechle #endif 105*384740dcSRalf Baechle 106*384740dcSRalf Baechle #endif /* __KERNEL__ */ 107*384740dcSRalf Baechle 108*384740dcSRalf Baechle #define SIG_BLOCK 1 /* for blocking signals */ 109*384740dcSRalf Baechle #define SIG_UNBLOCK 2 /* for unblocking signals */ 110*384740dcSRalf Baechle #define SIG_SETMASK 3 /* for setting the signal mask */ 111*384740dcSRalf Baechle 112*384740dcSRalf Baechle #include <asm-generic/signal.h> 113*384740dcSRalf Baechle 114*384740dcSRalf Baechle struct sigaction { 115*384740dcSRalf Baechle unsigned int sa_flags; 116*384740dcSRalf Baechle __sighandler_t sa_handler; 117*384740dcSRalf Baechle sigset_t sa_mask; 118*384740dcSRalf Baechle }; 119*384740dcSRalf Baechle 120*384740dcSRalf Baechle struct k_sigaction { 121*384740dcSRalf Baechle struct sigaction sa; 122*384740dcSRalf Baechle }; 123*384740dcSRalf Baechle 124*384740dcSRalf Baechle /* IRIX compatible stack_t */ 125*384740dcSRalf Baechle typedef struct sigaltstack { 126*384740dcSRalf Baechle void __user *ss_sp; 127*384740dcSRalf Baechle size_t ss_size; 128*384740dcSRalf Baechle int ss_flags; 129*384740dcSRalf Baechle } stack_t; 130*384740dcSRalf Baechle 131*384740dcSRalf Baechle #ifdef __KERNEL__ 132*384740dcSRalf Baechle #include <asm/sigcontext.h> 133*384740dcSRalf Baechle #include <asm/siginfo.h> 134*384740dcSRalf Baechle 135*384740dcSRalf Baechle #define ptrace_signal_deliver(regs, cookie) do { } while (0) 136*384740dcSRalf Baechle 137*384740dcSRalf Baechle #endif /* __KERNEL__ */ 138*384740dcSRalf Baechle 139*384740dcSRalf Baechle #endif /* _ASM_SIGNAL_H */ 140