blob: d21105928470be807cf8b4cce8d28019082ef4a8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
|
/*
* Linux/MIPS specific definitions for signals.
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*
* Copyright (C) 1995, 1996 by Ralf Baechle
*/
#ifndef __ASM_MIPS_SIGNAL_H
#include <asm/sgidefs.h>
/* Any one of these symbols __need_* means that GNU libc
wants us just to define one data type. So don't define
the symbols that indicate this file's entire job has been done. */
#if !defined(__need_signums) && !defined(__need_fake_sigfuns) && \
!defined(__need__nsig)
#define __ASM_MIPS_SIGNAL_H
#endif
#ifdef __ASM_MIPS_SIGNAL_H
typedef unsigned long sigset_t;
#endif /* __ASM_MIPS_SIGNAL_H */
#if !defined (___nsig_defined) && \
(defined (__ASM_MIPS_SIGNAL_H) || defined (__need__nsig))
#define ___nsig_defined
#define _NSIG 65
#endif
#undef __need__nsig
#ifdef __KERNEL__
#define NSIG _NSIG
#endif
#if !defined (__signums_defined) && \
(defined (__ASM_MIPS_SIGNAL_H) || defined (__need_signums))
#define __signums_defined
/*
* For 1.3.0 Linux/MIPS changed the signal numbers to be compatible the ABI.
*/
#define SIGHUP 1 /* Hangup (POSIX). */
#define SIGINT 2 /* Interrupt (ANSI). */
#define SIGQUIT 3 /* Quit (POSIX). */
#define SIGILL 4 /* Illegal instruction (ANSI). */
#define SIGTRAP 5 /* Trace trap (POSIX). */
#define SIGIOT 6 /* IOT trap (4.2 BSD). */
#define SIGABRT SIGIOT /* Abort (ANSI). */
#define SIGEMT 7
#define SIGFPE 8 /* Floating-point exception (ANSI). */
#define SIGKILL 9 /* Kill, unblockable (POSIX). */
#define SIGBUS 10 /* BUS error (4.2 BSD). */
#define SIGSEGV 11 /* Segmentation violation (ANSI). */
#define SIGSYS 12
#define SIGPIPE 13 /* Broken pipe (POSIX). */
#define SIGALRM 14 /* Alarm clock (POSIX). */
#define SIGTERM 15 /* Termination (ANSI). */
#define SIGUSR1 16 /* User-defined signal 1 (POSIX). */
#define SIGUSR2 17 /* User-defined signal 2 (POSIX). */
#define SIGCHLD 18 /* Child status has changed (POSIX). */
#define SIGCLD SIGCHLD /* Same as SIGCHLD (System V). */
#define SIGPWR 19 /* Power failure restart (System V). */
#define SIGWINCH 20 /* Window size change (4.3 BSD, Sun). */
#define SIGURG 21 /* Urgent condition on socket (4.2 BSD). */
#define SIGIO 22 /* I/O now possible (4.2 BSD). */
#define SIGPOLL SIGIO /* Pollable event occurred (System V). */
#define SIGSTOP 23 /* Stop, unblockable (POSIX). */
#define SIGTSTP 24 /* Keyboard stop (POSIX). */
#define SIGCONT 25 /* Continue (POSIX). */
#define SIGTTIN 26 /* Background read from tty (POSIX). */
#define SIGTTOU 27 /* Background write to tty (POSIX). */
#define SIGVTALRM 28 /* Virtual alarm clock (4.2 BSD). */
#define SIGPROF 29 /* Profiling alarm clock (4.2 BSD). */
#define SIGXCPU 30 /* CPU limit exceeded (4.2 BSD). */
#define SIGXFSZ 31 /* File size limit exceeded (4.2 BSD). */
#endif /* need signums */
#undef __need_signums
#ifdef __ASM_MIPS_SIGNAL_H
/*
* sa_flags values: SA_STACK is not currently supported, but will allow the
* usage of signal stacks by using the (now obsolete) sa_restorer field in
* the sigaction structure as a stack pointer. This is now possible due to
* the changes in signal handling. LBT 010493.
* SA_INTERRUPT is a no-op, but left due to historical reasons. Use the
* SA_RESTART flag to get restarting signals (which were the default long ago)
* SA_SHIRQ flag is for shared interrupt support on PCI and EISA.
*/
#define SA_STACK 0x1
#define SA_ONSTACK SA_STACK
#define SA_RESTART 0x4
#define SA_NOCLDSTOP 0x20000
/* Non ABI signals */
#define SA_INTERRUPT 0x01000000
#define SA_NOMASK 0x02000000
#define SA_ONESHOT 0x04000000
#define SA_SHIRQ 0x08000000
#ifdef __KERNEL__
/*
* These values of sa_flags are used only by the kernel as part of the
* irq handling routines.
*
* SA_INTERRUPT is also used by the irq handling routines.
*/
#define SA_PROBE SA_ONESHOT
#define SA_SAMPLE_RANDOM SA_RESTART
#endif /* __KERNEL__ */
#define SIG_BLOCK 1 /* for blocking signals */
#define SIG_UNBLOCK 2 /* for unblocking signals */
#define SIG_SETMASK 3 /* for setting the signal mask */
#define SIG_SETMASK32 256 /* Goodie from SGI for BSD compatibility:
set only the low 32 bit of the sigset. */
#ifndef __sighandler_t_defined
#define __sighandler_t_defined
/* Type of a signal handler. */
typedef void (*__sighandler_t)(int);
#endif
#endif
#if !defined (__fake_sigfuns_defined) && \
(defined (__ASM_MIPS_SIGNAL_H) || defined (__need_fake_sigfuns))
#define __fake_sigfuns_defined
/* Fake signal functions */
#define SIG_DFL ((__sighandler_t)0) /* default signal handling */
#define SIG_IGN ((__sighandler_t)1) /* ignore signal */
#define SIG_ERR ((__sighandler_t)-1) /* error return from signal */
#endif
#undef __need_fake_sigfuns
#ifdef __ASM_MIPS_SIGNAL_H
struct sigaction {
unsigned int sa_flags;
__sighandler_t sa_handler;
sigset_t sa_mask;
unsigned int __pad0[3]; /* reserved, keep size constant */
/* Abi says here follows reserved int[2] */
void (*sa_restorer)(void);
#if (_MIPS_ISA == _MIPS_ISA_MIPS1) || (_MIPS_ISA == _MIPS_ISA_MIPS2)
/*
* For 32 bit code we have to pad struct sigaction to get
* constant size for the ABI
*/
int __pad1[1]; /* reserved */
#endif
};
#ifdef __KERNEL__
#include <asm/sigcontext.h>
#endif
#if defined (__KERNEL__) || defined (__USE_MISC)
/*
* The following break codes are or were in use for specific purposes in
* other MIPS operating systems. Linux/MIPS doesn't use all of them. The
* unused ones are here as placeholders; we might encounter them in
* non-Linux/MIPS object files or make use of them in the future.
*/
#define BRK_USERBP 0 /* User bp (used by debuggers) */
#define BRK_KERNELBP 1 /* Break in the kernel */
#define BRK_ABORT 2 /* Sometimes used by abort(3) to SIGIOT */
#define BRK_BD_TAKEN 3 /* For bd slot emulation - not implemented */
#define BRK_BD_NOTTAKEN 4 /* For bd slot emulation - not implemented */
#define BRK_SSTEPBP 5 /* User bp (used by debuggers) */
#define BRK_OVERFLOW 6 /* Overflow check */
#define BRK_DIVZERO 7 /* Divide by zero check */
#define BRK_RANGE 8 /* Range error check */
#define BRK_STACKOVERFLOW 9 /* For Ada stackchecking */
#define BRK_NORLD 10 /* No rld found - not used by Linux/MIPS */
#define _BRK_THREADBP 11 /* For threads, user bp (used by debuggers) */
#define BRK_MULOVF 1023 /* Multiply overflow */
#endif /* defined (__KERNEL__) || defined (__USE_MISC) */
#endif /* defined (__ASM_MIPS_SIGNAL_H) */
#endif /* !defined (__ASM_MIPS_SIGNAL_H) */
|