1 /* $NetBSD: svr4_signal.h,v 1.29 2005/12/11 12:20:26 christos Exp $ */
2
3 /*-
4 * Copyright (c) 1994 The NetBSD Foundation, Inc.
5 * All rights reserved.
6 *
7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Christos Zoulas.
9 *
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions
12 * are met:
13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in the
17 * documentation and/or other materials provided with the distribution.
18 * 3. All advertising materials mentioning features or use of this software
19 * must display the following acknowledgement:
20 * This product includes software developed by the NetBSD
21 * Foundation, Inc. and its contributors.
22 * 4. Neither the name of The NetBSD Foundation nor the names of its
23 * contributors may be used to endorse or promote products derived
24 * from this software without specific prior written permission.
25 *
26 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
27 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
28 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
30 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
33 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
34 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
35 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
36 * POSSIBILITY OF SUCH DAMAGE.
37 */
38
39 #ifndef _SVR4_SIGNAL_H_
40 #define _SVR4_SIGNAL_H_
41
42 #include <compat/svr4/svr4_siginfo.h>
43
44 #define SVR4_SIGHUP 1
45 #define SVR4_SIGINT 2
46 #define SVR4_SIGQUIT 3
47 #define SVR4_SIGILL 4
48 #define SVR4_SIGTRAP 5
49 #define SVR4_SIGIOT 6
50 #define SVR4_SIGABRT 6
51 #define SVR4_SIGEMT 7
52 #define SVR4_SIGFPE 8
53 #define SVR4_SIGKILL 9
54 #define SVR4_SIGBUS 10
55 #define SVR4_SIGSEGV 11
56 #define SVR4_SIGSYS 12
57 #define SVR4_SIGPIPE 13
58 #define SVR4_SIGALRM 14
59 #define SVR4_SIGTERM 15
60 #define SVR4_SIGUSR1 16
61 #define SVR4_SIGUSR2 17
62 #define SVR4_SIGCLD 18
63 #define SVR4_SIGCHLD 18
64 #define SVR4_SIGPWR 19
65 #define SVR4_SIGWINCH 20
66 #define SVR4_SIGURG 21
67 #define SVR4_SIGPOLL 22
68 #define SVR4_SIGIO 22
69 #define SVR4_SIGSTOP 23
70 #define SVR4_SIGTSTP 24
71 #define SVR4_SIGCONT 25
72 #define SVR4_SIGTTIN 26
73 #define SVR4_SIGTTOU 27
74 #define SVR4_SIGVTALRM 28
75 #define SVR4_SIGPROF 29
76 #define SVR4_SIGXCPU 30
77 #define SVR4_SIGXFSZ 31
78
79 #define SVR4_SIGRTMIN 32
80 #define SVR4_SIGRTMAX 63
81 #define SVR4_NSIG 64
82
83 #define SVR4_SIGNO_MASK 0x00FF
84 #define SVR4_SIGNAL_MASK 0x0000
85 #define SVR4_SIGDEFER_MASK 0x0100
86 #define SVR4_SIGHOLD_MASK 0x0200
87 #define SVR4_SIGRELSE_MASK 0x0400
88 #define SVR4_SIGIGNORE_MASK 0x0800
89 #define SVR4_SIGPAUSE_MASK 0x1000
90
91 typedef void (*svr4_sig_t) __P((int, svr4_siginfo_t *, void *));
92 #define SVR4_SIG_DFL (svr4_sig_t) 0
93 #define SVR4_SIG_ERR (svr4_sig_t) -1
94 #define SVR4_SIG_IGN (svr4_sig_t) 1
95 #define SVR4_SIG_HOLD (svr4_sig_t) 2
96
97 #define SVR4_SIGNO(a) ((a) & SVR4_SIGNO_MASK)
98 #define SVR4_SIGCALL(a) ((a) & ~SVR4_SIGNO_MASK)
99
100 #define SVR4_SIG_BLOCK 1
101 #define SVR4_SIG_UNBLOCK 2
102 #define SVR4_SIG_SETMASK 3
103
104 typedef struct {
105 u_long bits[4];
106 } svr4_sigset_t;
107
108 struct svr4_sigaction {
109 int svr4_sa_flags;
110 svr4_sig_t svr4_sa_handler;
111 svr4_sigset_t svr4_sa_mask;
112 int svr4_sa_reserved[2];
113 };
114
115 /* sa_flags */
116 #define SVR4_SA_ONSTACK 0x00000001
117 #define SVR4_SA_RESETHAND 0x00000002
118 #define SVR4_SA_RESTART 0x00000004
119 #define SVR4_SA_SIGINFO 0x00000008
120 #define SVR4_SA_NODEFER 0x00000010
121 #define SVR4_SA_NOCLDWAIT 0x00010000 /* No zombies */
122 #define SVR4_SA_NOCLDSTOP 0x00020000 /* No jcl */
123 #define SVR4_SA_ALLBITS 0x0003001f
124
125 struct svr4_sigaltstack {
126 char *ss_sp;
127 int ss_size;
128 int ss_flags;
129 };
130
131 /* ss_flags */
132 #define SVR4_SS_ONSTACK 0x00000001
133 #define SVR4_SS_DISABLE 0x00000002
134 #define SVR4_SS_ALLBITS 0x00000003
135
136 extern const int native_to_svr4_signo[];
137 extern const int svr4_to_native_signo[];
138 void native_to_svr4_sigset __P((const sigset_t *, svr4_sigset_t *));
139 void svr4_to_native_sigset __P((const svr4_sigset_t *, sigset_t *));
140 void native_to_svr4_sigaltstack __P((const struct sigaltstack *, struct svr4_sigaltstack *));
141 void svr4_to_native_sigaltstack __P((const struct svr4_sigaltstack *, struct sigaltstack *));
142 void svr4_sendsig __P((const struct ksiginfo *, const sigset_t *));
143
144 /* sys_context() function codes */
145 #define SVR4_GETCONTEXT 0
146 #define SVR4_SETCONTEXT 1
147
148 #endif /* !_SVR4_SIGNAL_H_ */
Cache object: fef71352cca5bf5d3822a6c6ceec2869
|