Annotation of sys/compat/linux/linux_signal.h, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: linux_signal.h,v 1.8 2002/03/14 01:26:50 millert Exp $ */
2: /* $NetBSD: linux_signal.h,v 1.4 1995/08/27 20:51:51 fvdl Exp $ */
3:
4: /*
5: * Copyright (c) 1995 Frank van der Linden
6: * All rights reserved.
7: *
8: * Redistribution and use in source and binary forms, with or without
9: * modification, are permitted provided that the following conditions
10: * are met:
11: * 1. Redistributions of source code must retain the above copyright
12: * notice, this list of conditions and the following disclaimer.
13: * 2. Redistributions in binary form must reproduce the above copyright
14: * notice, this list of conditions and the following disclaimer in the
15: * documentation and/or other materials provided with the distribution.
16: * 3. All advertising materials mentioning features or use of this software
17: * must display the following acknowledgement:
18: * This product includes software developed for the NetBSD Project
19: * by Frank van der Linden
20: * 4. The name of the author may not be used to endorse or promote products
21: * derived from this software without specific prior written permission
22: *
23: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
24: * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
25: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
26: * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
27: * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
28: * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
32: * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33: */
34:
35: #ifndef _LINUX_SIGNAL_H
36: #define _LINUX_SIGNAL_H
37:
38: #define LINUX_SIGHUP 1
39: #define LINUX_SIGINT 2
40: #define LINUX_SIGQUIT 3
41: #define LINUX_SIGILL 4
42: #define LINUX_SIGTRAP 5
43: #define LINUX_SIGABRT 6
44: #define LINUX_SIGIOT 6
45: #define LINUX_SIGBUS 7
46: #define LINUX_SIGFPE 8
47: #define LINUX_SIGKILL 9
48: #define LINUX_SIGUSR1 10
49: #define LINUX_SIGSEGV 11
50: #define LINUX_SIGUSR2 12
51: #define LINUX_SIGPIPE 13
52: #define LINUX_SIGALRM 14
53: #define LINUX_SIGTERM 15
54: #define LINUX_SIGSTKFLT 16
55: #define LINUX_SIGCHLD 17
56: #define LINUX_SIGCONT 18
57: #define LINUX_SIGSTOP 19
58: #define LINUX_SIGTSTP 20
59: #define LINUX_SIGTTIN 21
60: #define LINUX_SIGTTOU 22
61: #define LINUX_SIGURG 23
62: #define LINUX_SIGXCPU 24
63: #define LINUX_SIGXFSZ 25
64: #define LINUX_SIGVTALRM 26
65: #define LINUX_SIGPROF 27
66: #define LINUX_SIGWINCH 28
67: #define LINUX_SIGIO 29
68: #define LINUX_SIGPWR 30
69: #define LINUX_SIGUNUSED 31
70: #define LINUX_NSIG 32
71:
72: #define LINUX__NSIG 64
73: #define LINUX__NSIG_BPW 32
74: #define LINUX__NSIG_WORDS (LINUX__NSIG / LINUX__NSIG_BPW)
75:
76: #define LINUX_SIG_BLOCK 0
77: #define LINUX_SIG_UNBLOCK 1
78: #define LINUX_SIG_SETMASK 2
79:
80: typedef u_long linux_old_sigset_t;
81: typedef struct {
82: u_long sig[LINUX__NSIG_WORDS];
83: } linux_sigset_t;
84:
85: typedef void (*linux_handler_t)(int);
86:
87: struct linux_old_sigaction {
88: linux_handler_t sa__handler;
89: linux_old_sigset_t sa_mask;
90: u_long sa_flags;
91: void (*sa_restorer)(void);
92: };
93:
94: struct linux_sigaction {
95: linux_handler_t sa__handler;
96: u_long sa_flags;
97: void (*sa_restorer)(void);
98: linux_sigset_t sa_mask;
99: };
100:
101: /* sa_flags */
102: #define LINUX_SA_NOCLDSTOP 0x00000001
103: #define LINUX_SA_SIGINFO 0x00000004
104: #define LINUX_SA_ONSTACK 0x08000000
105: #define LINUX_SA_RESTART 0x10000000
106: #define LINUX_SA_INTERRUPT 0x20000000
107: #define LINUX_SA_NOMASK 0x40000000
108: #define LINUX_SA_ONESHOT 0x80000000
109: #define LINUX_SA_ALLBITS 0xf8000001
110:
111: struct linux_sigaltstack {
112: void *ss_sp;
113: int ss_flags;
114: size_t ss_size;
115: };
116:
117: /* ss_flags */
118: #define LINUX_SS_ONSTACK 0x00000001
119: #define LINUX_SS_DISABLE 0x00000002
120:
121: extern int bsd_to_linux_sig[];
122: extern int linux_to_bsd_sig[];
123:
124: void linux_old_to_bsd_sigset(const linux_old_sigset_t *, sigset_t *);
125: void bsd_to_linux_old_sigset(const sigset_t *, linux_old_sigset_t *);
126:
127: void linux_old_extra_to_bsd_sigset(const linux_old_sigset_t *,
128: const unsigned long *, sigset_t *);
129: void bsd_to_linux_old_extra_sigset(const sigset_t *,
130: linux_old_sigset_t *, unsigned long *);
131:
132: void linux_to_bsd_sigset(const linux_sigset_t *, sigset_t *);
133: void bsd_to_linux_sigset(const sigset_t *, linux_sigset_t *);
134:
135: void linux_old_to_bsd_sigaction(struct linux_old_sigaction *,
136: struct sigaction *);
137: void bsd_to_linux_old_sigaction(struct sigaction *,
138: struct linux_old_sigaction *);
139:
140: void linux_to_bsd_sigaction(struct linux_sigaction *,
141: struct sigaction *);
142: void bsd_to_linux_sigaction(struct sigaction *,
143: struct linux_sigaction *);
144:
145: int linux_to_bsd_signal (int, int *);
146: int bsd_to_linux_signal (int, int *);
147:
148: #endif /* !_LINUX_SIGNAL_H */
CVSweb