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