COMPAT_NETBSD32: Reorganize the previous; Make compat_netbsd32_50 recursively depended on compat_netbsd32_100, rather than directly depended on it. Thanks pgoyette@ again for useful comments!diff -r1.55 -r1.56 src/sys/compat/netbsd32/netbsd32_compat_50.c
(rin)
--- src/sys/compat/netbsd32/netbsd32_compat_50.c 2023/07/29 13:13:50 1.55
+++ src/sys/compat/netbsd32/netbsd32_compat_50.c 2023/07/29 13:40:51 1.56
@@ -1,14 +1,14 @@ | @@ -1,14 +1,14 @@ | |||
1 | /* $NetBSD: netbsd32_compat_50.c,v 1.55 2023/07/29 13:13:50 rin Exp $ */ | 1 | /* $NetBSD: netbsd32_compat_50.c,v 1.56 2023/07/29 13:40:51 rin Exp $ */ | |
2 | 2 | |||
3 | /*- | 3 | /*- | |
4 | * Copyright (c) 2008, 2020 The NetBSD Foundation, Inc. | 4 | * Copyright (c) 2008, 2020 The NetBSD Foundation, Inc. | |
5 | * All rights reserved. | 5 | * All rights reserved. | |
6 | * | 6 | * | |
7 | * This code is derived from software contributed to The NetBSD Foundation | 7 | * This code is derived from software contributed to The NetBSD Foundation | |
8 | * by Christos Zoulas. | 8 | * by Christos Zoulas. | |
9 | * | 9 | * | |
10 | * Redistribution and use in source and binary forms, with or without | 10 | * Redistribution and use in source and binary forms, with or without | |
11 | * modification, are permitted provided that the following conditions | 11 | * modification, are permitted provided that the following conditions | |
12 | * are met: | 12 | * are met: | |
13 | * 1. Redistributions of source code must retain the above copyright | 13 | * 1. Redistributions of source code must retain the above copyright | |
14 | * notice, this list of conditions and the following disclaimer. | 14 | * notice, this list of conditions and the following disclaimer. | |
@@ -19,27 +19,27 @@ | @@ -19,27 +19,27 @@ | |||
19 | * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS | 19 | * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS | |
20 | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | 20 | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | |
21 | * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | 21 | * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | |
22 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | 22 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | |
23 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | 23 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
24 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | 24 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
25 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | 25 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
26 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | 26 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
27 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | 27 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
28 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | 28 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
29 | * POSSIBILITY OF SUCH DAMAGE. | 29 | * POSSIBILITY OF SUCH DAMAGE. | |
30 | */ | 30 | */ | |
31 | #include <sys/cdefs.h> | 31 | #include <sys/cdefs.h> | |
32 | __KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.55 2023/07/29 13:13:50 rin Exp $"); | 32 | __KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.56 2023/07/29 13:40:51 rin Exp $"); | |
33 | 33 | |||
34 | #if defined(_KERNEL_OPT) | 34 | #if defined(_KERNEL_OPT) | |
35 | #include "opt_compat_netbsd.h" | 35 | #include "opt_compat_netbsd.h" | |
36 | #include "opt_compat_netbsd32.h" | 36 | #include "opt_compat_netbsd32.h" | |
37 | #include "opt_ntp.h" | 37 | #include "opt_ntp.h" | |
38 | #include "opt_quota.h" | 38 | #include "opt_quota.h" | |
39 | #endif | 39 | #endif | |
40 | 40 | |||
41 | 41 | |||
42 | #include <sys/param.h> | 42 | #include <sys/param.h> | |
43 | #include <sys/systm.h> | 43 | #include <sys/systm.h> | |
44 | #include <sys/module.h> | 44 | #include <sys/module.h> | |
45 | #include <sys/mount.h> | 45 | #include <sys/mount.h> | |
@@ -964,28 +964,27 @@ static struct syscall_package compat_net | @@ -964,28 +964,27 @@ static struct syscall_package compat_net | |||
964 | { NETBSD32_SYS_compat_50_netbsd32_getrusage, 0, | 964 | { NETBSD32_SYS_compat_50_netbsd32_getrusage, 0, | |
965 | (sy_call_t *)compat_50_netbsd32_getrusage }, | 965 | (sy_call_t *)compat_50_netbsd32_getrusage }, | |
966 | { NETBSD32_SYS_compat_50_netbsd32_setitimer, 0, | 966 | { NETBSD32_SYS_compat_50_netbsd32_setitimer, 0, | |
967 | (sy_call_t *)compat_50_netbsd32_setitimer }, | 967 | (sy_call_t *)compat_50_netbsd32_setitimer }, | |
968 | { NETBSD32_SYS_compat_50_netbsd32_getitimer, 0, | 968 | { NETBSD32_SYS_compat_50_netbsd32_getitimer, 0, | |
969 | (sy_call_t *)compat_50_netbsd32_getitimer }, | 969 | (sy_call_t *)compat_50_netbsd32_getitimer }, | |
970 | #ifdef NTP | 970 | #ifdef NTP | |
971 | { NETBSD32_SYS_compat_50_netbsd32_ntp_gettime, 0, | 971 | { NETBSD32_SYS_compat_50_netbsd32_ntp_gettime, 0, | |
972 | (sy_call_t *)compat_50_netbsd32_ntp_gettime }, | 972 | (sy_call_t *)compat_50_netbsd32_ntp_gettime }, | |
973 | #endif | 973 | #endif | |
974 | { 0, 0, NULL } | 974 | { 0, 0, NULL } | |
975 | }; | 975 | }; | |
976 | 976 | |||
977 | MODULE(MODULE_CLASS_EXEC, compat_netbsd32_50, | 977 | MODULE(MODULE_CLASS_EXEC, compat_netbsd32_50, "compat_netbsd32_60,compat_50"); | |
978 | "compat_netbsd32_100,compat_netbsd32_60,compat_50"); | |||
979 | 978 | |||
980 | static int | 979 | static int | |
981 | compat_netbsd32_50_modcmd(modcmd_t cmd, void *arg) | 980 | compat_netbsd32_50_modcmd(modcmd_t cmd, void *arg) | |
982 | { | 981 | { | |
983 | int ret; | 982 | int ret; | |
984 | 983 | |||
985 | switch (cmd) { | 984 | switch (cmd) { | |
986 | case MODULE_CMD_INIT: | 985 | case MODULE_CMD_INIT: | |
987 | ret = syscall_establish(&emul_netbsd32, | 986 | ret = syscall_establish(&emul_netbsd32, | |
988 | compat_netbsd32_50_syscalls); | 987 | compat_netbsd32_50_syscalls); | |
989 | if (ret == 0) | 988 | if (ret == 0) | |
990 | MODULE_HOOK_SET(rnd_ioctl32_50_hook, | 989 | MODULE_HOOK_SET(rnd_ioctl32_50_hook, | |
991 | compat32_50_rnd_ioctl); | 990 | compat32_50_rnd_ioctl); |
--- src/sys/compat/netbsd32/netbsd32_compat_80.c 2019/12/12 02:15:42 1.6
+++ src/sys/compat/netbsd32/netbsd32_compat_80.c 2023/07/29 13:40:51 1.7
@@ -1,14 +1,14 @@ | @@ -1,14 +1,14 @@ | |||
1 | /* $NetBSD: netbsd32_compat_80.c,v 1.6 2019/12/12 02:15:42 pgoyette Exp $ */ | 1 | /* $NetBSD: netbsd32_compat_80.c,v 1.7 2023/07/29 13:40:51 rin Exp $ */ | |
2 | 2 | |||
3 | /*- | 3 | /*- | |
4 | * Copyright (c) 2008 The NetBSD Foundation, Inc. | 4 | * Copyright (c) 2008 The NetBSD Foundation, Inc. | |
5 | * All rights reserved. | 5 | * All rights reserved. | |
6 | * | 6 | * | |
7 | * This code is derived from software developed for The NetBSD Foundation. | 7 | * This code is derived from software developed for The NetBSD Foundation. | |
8 | * | 8 | * | |
9 | * Redistribution and use in source and binary forms, with or without | 9 | * Redistribution and use in source and binary forms, with or without | |
10 | * modification, are permitted provided that the following conditions | 10 | * modification, are permitted provided that the following conditions | |
11 | * are met: | 11 | * are met: | |
12 | * 1. Redistributions of source code must retain the above copyright | 12 | * 1. Redistributions of source code must retain the above copyright | |
13 | * notice, this list of conditions and the following disclaimer. | 13 | * notice, this list of conditions and the following disclaimer. | |
14 | * 2. Redistributions in binary form must reproduce the above copyright | 14 | * 2. Redistributions in binary form must reproduce the above copyright | |
@@ -19,27 +19,27 @@ | @@ -19,27 +19,27 @@ | |||
19 | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | 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 | 20 | * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | |
21 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | 21 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | |
22 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | 22 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
23 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | 23 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
24 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | 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 | 25 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
26 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | 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 | 27 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
28 | * POSSIBILITY OF SUCH DAMAGE. | 28 | * POSSIBILITY OF SUCH DAMAGE. | |
29 | */ | 29 | */ | |
30 | 30 | |||
31 | #include <sys/cdefs.h> | 31 | #include <sys/cdefs.h> | |
32 | __KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_80.c,v 1.6 2019/12/12 02:15:42 pgoyette Exp $"); | 32 | __KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_80.c,v 1.7 2023/07/29 13:40:51 rin Exp $"); | |
33 | 33 | |||
34 | #include <sys/param.h> | 34 | #include <sys/param.h> | |
35 | #include <sys/dirent.h> | 35 | #include <sys/dirent.h> | |
36 | #include <sys/kauth.h> | 36 | #include <sys/kauth.h> | |
37 | #include <sys/module.h> | 37 | #include <sys/module.h> | |
38 | #include <sys/kobj.h> | 38 | #include <sys/kobj.h> | |
39 | 39 | |||
40 | #include <compat/sys/siginfo.h> | 40 | #include <compat/sys/siginfo.h> | |
41 | 41 | |||
42 | #include <compat/sys/module.h> | 42 | #include <compat/sys/module.h> | |
43 | 43 | |||
44 | #include <compat/netbsd32/netbsd32.h> | 44 | #include <compat/netbsd32/netbsd32.h> | |
45 | #include <compat/netbsd32/netbsd32_syscall.h> | 45 | #include <compat/netbsd32/netbsd32_syscall.h> | |
@@ -165,27 +165,27 @@ netbsd32_80_modctl(struct lwp *lwp, cons | @@ -165,27 +165,27 @@ netbsd32_80_modctl(struct lwp *lwp, cons | |||
165 | if (error != 0) { | 165 | if (error != 0) { | |
166 | break; | 166 | break; | |
167 | } | 167 | } | |
168 | error = modctl32_handle_ostat(SCARG(uap, cmd), &iov, arg); | 168 | error = modctl32_handle_ostat(SCARG(uap, cmd), &iov, arg); | |
169 | break; | 169 | break; | |
170 | default: | 170 | default: | |
171 | error = EPASSTHROUGH; | 171 | error = EPASSTHROUGH; | |
172 | break; | 172 | break; | |
173 | } | 173 | } | |
174 | 174 | |||
175 | return error; | 175 | return error; | |
176 | } | 176 | } | |
177 | 177 | |||
178 | MODULE(MODULE_CLASS_EXEC, compat_netbsd32_80, "compat_netbsd32,compat_80"); | 178 | MODULE(MODULE_CLASS_EXEC, compat_netbsd32_80, "compat_netbsd32_100,compat_80"); | |
179 | 179 | |||
180 | static int | 180 | static int | |
181 | compat_netbsd32_80_modcmd(modcmd_t cmd, void *arg) | 181 | compat_netbsd32_80_modcmd(modcmd_t cmd, void *arg) | |
182 | { | 182 | { | |
183 | 183 | |||
184 | switch (cmd) { | 184 | switch (cmd) { | |
185 | case MODULE_CMD_INIT: | 185 | case MODULE_CMD_INIT: | |
186 | MODULE_HOOK_SET(compat32_80_modctl_hook, netbsd32_80_modctl); | 186 | MODULE_HOOK_SET(compat32_80_modctl_hook, netbsd32_80_modctl); | |
187 | return 0; | 187 | return 0; | |
188 | 188 | |||
189 | case MODULE_CMD_FINI: | 189 | case MODULE_CMD_FINI: | |
190 | MODULE_HOOK_UNSET(compat32_80_modctl_hook); | 190 | MODULE_HOOK_UNSET(compat32_80_modctl_hook); | |
191 | return 0; | 191 | return 0; |