1 /*        $NetBSD: linux_signo.c,v 1.7 2021/09/23 06:56:27 ryo Exp $  */
2 /*-
3  * Copyright (c) 1995, 1998 The NetBSD Foundation, Inc.
4  * All rights reserved.
5  *
6  * This code is derived from software contributed to The NetBSD Foundation
7  * by Frank van der Linden and Eric Haszlakiewicz.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions
11  * are met:
12  * 1. Redistributions of source code must retain the above copyright
13  *    notice, this list of conditions and the following disclaimer.
14  * 2. Redistributions in binary form must reproduce the above copyright
15  *    notice, this list of conditions and the following disclaimer in the
16  *    documentation and/or other materials provided with the distribution.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
19  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
22  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28  * POSSIBILITY OF SUCH DAMAGE.
29  */
30 
31 #include <sys/cdefs.h>
32 __KERNEL_RCSID(0, "$NetBSD: linux_signo.c,v 1.7 2021/09/23 06:56:27 ryo Exp $");
33 
34 #include <sys/types.h>
35 #include <sys/signal.h>
36 
37 #include <compat/linux/common/linux_types.h>
38 #include <compat/linux/common/linux_signal.h>
39 
40 #ifndef LINUX_SIGINFO
41 #define LINUX_SIGINFO         0
42 #endif
43 
44 #ifndef LINUX_SIGEMT
45 #define LINUX_SIGEMT          0
46 #endif
47 
48 /* Note: linux_to_native_signo[] is in <arch>/linux_sigarray.c */
49 #ifdef LINUX_SIGHUP
50 const int native_to_linux_signo[] = {
51           0,                            /* 0 */
52           LINUX_SIGHUP,                 /* 1 */
53           LINUX_SIGINT,                 /* 2 */
54           LINUX_SIGQUIT,                /* 3 */
55           LINUX_SIGILL,                 /* 4 */
56           LINUX_SIGTRAP,                /* 5 */
57           LINUX_SIGABRT,                /* 6 */
58           LINUX_SIGEMT,                 /* 7 */
59           LINUX_SIGFPE,                 /* 8 */
60           LINUX_SIGKILL,                /* 9 */
61           LINUX_SIGBUS,                 /* 10 */
62           LINUX_SIGSEGV,                /* 11 */
63           LINUX_SIGSYS,                 /* 12 */
64           LINUX_SIGPIPE,                /* 13 */
65           LINUX_SIGALRM,                /* 14 */
66           LINUX_SIGTERM,                /* 15 */
67           LINUX_SIGURG,                 /* 16 */
68           LINUX_SIGSTOP,                /* 17 */
69           LINUX_SIGTSTP,                /* 18 */
70           LINUX_SIGCONT,                /* 19 */
71           LINUX_SIGCHLD,                /* 20 */
72           LINUX_SIGTTIN,                /* 21 */
73           LINUX_SIGTTOU,                /* 22 */
74           LINUX_SIGIO,                  /* 23 */
75           LINUX_SIGXCPU,                /* 24 */
76           LINUX_SIGXFSZ,                /* 25 */
77           LINUX_SIGVTALRM,    /* 26 */
78           LINUX_SIGPROF,                /* 27 */
79           LINUX_SIGWINCH,               /* 28 */
80           LINUX_SIGINFO,                /* 29 */
81           LINUX_SIGUSR1,                /* 30 */
82           LINUX_SIGUSR2,                /* 31 */
83           LINUX_SIGPWR,                 /* 32 */
84           LINUX_SIGRTMIN + 0, /* 33 */
85           LINUX_SIGRTMIN + 1, /* 34 */
86           LINUX_SIGRTMIN + 2, /* 35 */
87           LINUX_SIGRTMIN + 3, /* 36 */
88           LINUX_SIGRTMIN + 4, /* 37 */
89           LINUX_SIGRTMIN + 5, /* 38 */
90           LINUX_SIGRTMIN + 6, /* 39 */
91           LINUX_SIGRTMIN + 7, /* 40 */
92           LINUX_SIGRTMIN + 8, /* 41 */
93           LINUX_SIGRTMIN + 9, /* 42 */
94           LINUX_SIGRTMIN + 10,          /* 43 */
95           LINUX_SIGRTMIN + 11,          /* 44 */
96           LINUX_SIGRTMIN + 12,          /* 45 */
97           LINUX_SIGRTMIN + 13,          /* 46 */
98           LINUX_SIGRTMIN + 14,          /* 47 */
99           LINUX_SIGRTMIN + 15,          /* 48 */
100           LINUX_SIGRTMIN + 16,          /* 49 */
101           LINUX_SIGRTMIN + 17,          /* 50 */
102           LINUX_SIGRTMIN + 18,          /* 51 */
103           LINUX_SIGRTMIN + 19,          /* 52 */
104           LINUX_SIGRTMIN + 20,          /* 53 */
105           LINUX_SIGRTMIN + 21,          /* 54 */
106           LINUX_SIGRTMIN + 22,          /* 55 */
107           LINUX_SIGRTMIN + 23,          /* 56 */
108           LINUX_SIGRTMIN + 24,          /* 57 */
109           LINUX_SIGRTMIN + 25,          /* 58 */
110           LINUX_SIGRTMIN + 26,          /* 59 */
111           LINUX_SIGRTMIN + 27,          /* 60 */
112           LINUX_SIGRTMIN + 28,          /* 61 */
113           LINUX_SIGRTMIN + 29,          /* 62 */
114           LINUX_SIGRTMIN + 30,          /* 63 */
115 };
116 #else
117 const int native_to_linux_signo[NSIG];
118 #endif
119 
120 #if defined(__i386__)
121 #include <compat/linux/arch/i386/linux_sigarray.c>
122 #elif defined(__m68k__)
123 #include <compat/linux/arch/m68k/linux_sigarray.c>
124 #elif defined(__alpha__)
125 #include <compat/linux/arch/alpha/linux_sigarray.c>
126 #elif defined(__powerpc__)
127 #include <compat/linux/arch/powerpc/linux_sigarray.c>
128 #elif defined(__mips__)
129 #include <compat/linux/arch/mips/linux_sigarray.c>
130 #elif defined(__aarch64__)
131 #include <compat/linux/arch/aarch64/linux_sigarray.c>
132 #elif defined(__arm__)
133 #include <compat/linux/arch/arm/linux_sigarray.c>
134 #elif defined(__amd64__)
135 #include <compat/linux/arch/amd64/linux_sigarray.c>
136 #else
137 const int linux_to_native_signo[NSIG];
138 #endif
139