Sat Jul 29 13:40:51 2023 UTC ()
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!


(rin)
diff -r1.55 -r1.56 src/sys/compat/netbsd32/netbsd32_compat_50.c
diff -r1.6 -r1.7 src/sys/compat/netbsd32/netbsd32_compat_80.c

cvs diff -r1.55 -r1.56 src/sys/compat/netbsd32/netbsd32_compat_50.c (expand / switch to unified diff)

--- 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
977MODULE(MODULE_CLASS_EXEC, compat_netbsd32_50, 977MODULE(MODULE_CLASS_EXEC, compat_netbsd32_50, "compat_netbsd32_60,compat_50");
978 "compat_netbsd32_100,compat_netbsd32_60,compat_50"); 
979 978
980static int 979static int
981compat_netbsd32_50_modcmd(modcmd_t cmd, void *arg) 980compat_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);

cvs diff -r1.6 -r1.7 src/sys/compat/netbsd32/netbsd32_compat_80.c (expand / switch to unified diff)

--- 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
178MODULE(MODULE_CLASS_EXEC, compat_netbsd32_80, "compat_netbsd32,compat_80"); 178MODULE(MODULE_CLASS_EXEC, compat_netbsd32_80, "compat_netbsd32_100,compat_80");
179 179
180static int 180static int
181compat_netbsd32_80_modcmd(modcmd_t cmd, void *arg) 181compat_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;