CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: christos Date: Sun Apr 25 22:27:08 UTC 2021 Modified Files: src/sys/compat/netbsd32: netbsd32.mk Log Message: All mips64 has compat_netbsd32 To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/compat/netbsd32/netbsd32.mk Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32.mk diff -u src/sys/compat/netbsd32/netbsd32.mk:1.2 src/sys/compat/netbsd32/netbsd32.mk:1.3 --- src/sys/compat/netbsd32/netbsd32.mk:1.2 Thu Mar 5 23:54:08 2020 +++ src/sys/compat/netbsd32/netbsd32.mk Sun Apr 25 18:27:08 2021 @@ -1,4 +1,4 @@ -# $NetBSD: netbsd32.mk,v 1.2 2020/03/06 04:54:08 pgoyette Exp $ +# $NetBSD: netbsd32.mk,v 1.3 2021/04/25 22:27:08 christos Exp $ # makefile fragment that tells you if you should support netbsd32 or not. # include this and check ${COMPAT_USE_NETBSD32} != "no". @@ -7,7 +7,7 @@ || ${MACHINE_CPU} == "arm" \ || ${MACHINE_CPU} == "aarch64" \ || ${MACHINE_ARCH} == "sparc64" \ -|| (!empty(MACHINE_ARCH:Mmips64*) && !defined(BSD_MK_COMPAT_FILE)) +|| (${MACHINE_MIPS64} && !defined(BSD_MK_COMPAT_FILE)) COMPAT_USE_NETBSD32?=yes .else COMPAT_USE_NETBSD32?=no
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: simonb Date: Sat Apr 17 03:57:42 UTC 2021 Modified Files: src/sys/compat/netbsd32: files.netbsd32 Log Message: Compile in compat32 syscall names all the time, as we do for native syscall names. Needed for dtrace. To generate a diff of this commit: cvs rdiff -u -r1.52 -r1.53 src/sys/compat/netbsd32/files.netbsd32 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/files.netbsd32 diff -u src/sys/compat/netbsd32/files.netbsd32:1.52 src/sys/compat/netbsd32/files.netbsd32:1.53 --- src/sys/compat/netbsd32/files.netbsd32:1.52 Sat May 16 18:31:48 2020 +++ src/sys/compat/netbsd32/files.netbsd32 Sat Apr 17 03:57:42 2021 @@ -1,4 +1,4 @@ -# $NetBSD: files.netbsd32,v 1.52 2020/05/16 18:31:48 christos Exp $ +# $NetBSD: files.netbsd32,v 1.53 2021/04/17 03:57:42 simonb Exp $ # # config file description for machine-independent netbsd32 compat code. # included by ports that need it. @@ -41,7 +41,7 @@ file compat/netbsd32/netbsd32_time.c co file compat/netbsd32/netbsd32_wait.c compat_netbsd32 file compat/netbsd32/netbsd32_vm.c compat_netbsd32 file compat/netbsd32/netbsd32_sysent.c compat_netbsd32 -file compat/netbsd32/netbsd32_syscalls.c compat_netbsd32 & syscall_debug +file compat/netbsd32/netbsd32_syscalls.c compat_netbsd32 file compat/netbsd32/netbsd32_compat_09.c compat_netbsd32 & (compat_09 | compat_sunos) file compat/netbsd32/netbsd32_compat_10_sysv.c compat_netbsd32 & compat_10 &
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mlelstv Date: Wed Apr 14 16:26:23 UTC 2021 Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.c netbsd32_ioctl.h Log Message: Add DIOCGDISKINFO compat. To generate a diff of this commit: cvs rdiff -u -r1.118 -r1.119 src/sys/compat/netbsd32/netbsd32_ioctl.c cvs rdiff -u -r1.77 -r1.78 src/sys/compat/netbsd32/netbsd32_ioctl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.118 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.119 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.118 Sun Jan 17 10:50:01 2021 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Wed Apr 14 16:26:23 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.118 2021/01/17 10:50:01 simonb Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.119 2021/04/14 16:26:23 mlelstv Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.118 2021/01/17 10:50:01 simonb Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.119 2021/04/14 16:26:23 mlelstv Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -1693,6 +1693,8 @@ netbsd32_ioctl(struct lwp *l, IOCTL_STRUCT_CONV_TO(DIOCGSTRATEGY, disk_strategy); case DIOCSSTRATEGY32: IOCTL_STRUCT_CONV_TO(DIOCSSTRATEGY, disk_strategy); + case DIOCGDISKINFO32: + IOCTL_STRUCT_CONV_TO(DIOCGDISKINFO, plistref); case DIOCLWEDGES32: IOCTL_STRUCT_CONV_TO(DIOCLWEDGES, dkwedge_list); Index: src/sys/compat/netbsd32/netbsd32_ioctl.h diff -u src/sys/compat/netbsd32/netbsd32_ioctl.h:1.77 src/sys/compat/netbsd32/netbsd32_ioctl.h:1.78 --- src/sys/compat/netbsd32/netbsd32_ioctl.h:1.77 Sun Jan 17 10:50:01 2021 +++ src/sys/compat/netbsd32/netbsd32_ioctl.h Wed Apr 14 16:26:23 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.h,v 1.77 2021/01/17 10:50:01 simonb Exp $ */ +/* $NetBSD: netbsd32_ioctl.h,v 1.78 2021/04/14 16:26:23 mlelstv Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -672,6 +672,7 @@ struct netbsd32_disk_strategy { #define DIOCGSTRATEGY32 _IOR('d', 125, struct netbsd32_disk_strategy) #define DIOCSSTRATEGY32 _IOW('d', 126, struct netbsd32_disk_strategy) +#define DIOCGDISKINFO32 _IOR('d', 127, struct netbsd32_plistref) /* from */ struct netbsd32_lsenable {
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: christos Date: Wed Apr 14 02:48:00 UTC 2021 Modified Files: src/sys/compat/netbsd32: netbsd32_systrace_args.c Log Message: regen To generate a diff of this commit: cvs rdiff -u -r1.46 -r1.47 src/sys/compat/netbsd32/netbsd32_systrace_args.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_systrace_args.c diff -u src/sys/compat/netbsd32/netbsd32_systrace_args.c:1.46 src/sys/compat/netbsd32/netbsd32_systrace_args.c:1.47 --- src/sys/compat/netbsd32/netbsd32_systrace_args.c:1.46 Tue Apr 13 19:57:23 2021 +++ src/sys/compat/netbsd32/netbsd32_systrace_args.c Tue Apr 13 22:48:00 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_systrace_args.c,v 1.46 2021/04/13 23:57:23 christos Exp $ */ +/* $NetBSD: netbsd32_systrace_args.c,v 1.47 2021/04/14 02:48:00 christos Exp $ */ /* * System call argument to DTrace register array conversion. @@ -16,7 +16,7 @@ systrace_args(register_t sysnum, const v case 0: { const struct netbsd32_syscall_args *p = params; iarg[0] = SCARG(p, code); /* int */ - uarg[1] = (intptr_t) SCARG(p, args); /* register32_t */ + iarg[1] = SCARG(p, args[0]); /* register32_t */ *n_args = 2; break; } @@ -1412,7 +1412,7 @@ systrace_args(register_t sysnum, const v case 198: { const struct netbsd32syscall_args *p = params; iarg[0] = SCARG(p, code); /* quad_t */ - uarg[1] = (intptr_t) SCARG(p, args); /* register32_t */ + iarg[1] = SCARG(p, args[0]); /* register32_t */ *n_args = 2; break; }
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: christos Date: Tue Apr 13 23:57:23 UTC 2021 Modified Files: src/sys/compat/netbsd32: netbsd32_systrace_args.c Log Message: regen To generate a diff of this commit: cvs rdiff -u -r1.45 -r1.46 src/sys/compat/netbsd32/netbsd32_systrace_args.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_systrace_args.c diff -u src/sys/compat/netbsd32/netbsd32_systrace_args.c:1.45 src/sys/compat/netbsd32/netbsd32_systrace_args.c:1.46 --- src/sys/compat/netbsd32/netbsd32_systrace_args.c:1.45 Fri Oct 9 20:03:53 2020 +++ src/sys/compat/netbsd32/netbsd32_systrace_args.c Tue Apr 13 19:57:23 2021 @@ -1,7 +1,7 @@ -/* $NetBSD: netbsd32_systrace_args.c,v 1.45 2020/10/10 00:03:53 rin Exp $ */ +/* $NetBSD: netbsd32_systrace_args.c,v 1.46 2021/04/13 23:57:23 christos Exp $ */ /* - * System call argument to DTrace register array converstion. + * System call argument to DTrace register array conversion. * * DO NOT EDIT-- this file is automatically generated. * This file is part of the DTrace syscall provider. @@ -16,7 +16,7 @@ systrace_args(register_t sysnum, const v case 0: { const struct netbsd32_syscall_args *p = params; iarg[0] = SCARG(p, code); /* int */ - iarg[1] = SCARG(p, args[NETBSD32_SYS_MAXSYSARGS]); /* register32_t */ + uarg[1] = (intptr_t) SCARG(p, args); /* register32_t */ *n_args = 2; break; } @@ -1412,7 +1412,7 @@ systrace_args(register_t sysnum, const v case 198: { const struct netbsd32syscall_args *p = params; iarg[0] = SCARG(p, code); /* quad_t */ - iarg[1] = SCARG(p, args[NETBSD32_SYS_MAXSYSARGS]); /* register32_t */ + uarg[1] = (intptr_t) SCARG(p, args); /* register32_t */ *n_args = 2; break; }
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mrg Date: Tue Apr 13 05:28:16 UTC 2021 Modified Files: src/sys/compat/netbsd32: netbsd32_execve.c Log Message: GCC 10 does not like casting from one identical anonymous enum to another enum. supply some quietening cast. To generate a diff of this commit: cvs rdiff -u -r1.42 -r1.43 src/sys/compat/netbsd32/netbsd32_execve.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_execve.c diff -u src/sys/compat/netbsd32/netbsd32_execve.c:1.42 src/sys/compat/netbsd32/netbsd32_execve.c:1.43 --- src/sys/compat/netbsd32/netbsd32_execve.c:1.42 Sun Apr 19 20:31:59 2020 +++ src/sys/compat/netbsd32/netbsd32_execve.c Tue Apr 13 05:28:16 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_execve.c,v 1.42 2020/04/19 20:31:59 thorpej Exp $ */ +/* $NetBSD: netbsd32_execve.c,v 1.43 2021/04/13 05:28:16 mrg Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -28,7 +28,7 @@ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_execve.c,v 1.42 2020/04/19 20:31:59 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_execve.c,v 1.43 2021/04/13 05:28:16 mrg Exp $"); #include #include @@ -130,7 +130,7 @@ netbsd32_posix_spawn_fa_alloc(struct pos for (; i < fa->len; i++) { fae = &fa->fae[i]; f32 = &fae32[i]; - fae->fae_action = f32->fae_action; + fae->fae_action = (unsigned)f32->fae_action; fae->fae_fildes = f32->fae_fildes; if (fae->fae_action == FAE_DUP2) fae->fae_data.dup2.newfildes =
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: simonb Date: Thu Feb 18 12:54:03 UTC 2021 Modified Files: src/sys/compat/netbsd32: netbsd32_compat_50.c netbsd32_time.c Log Message: In the compat setitimer(2) calls, don't validate which timer is being used since dosetitimer() does this anyway. The compat functions hadn't been updated since ITIMER_MONOTONIC was introduced, so they reported that that ITIMER_MONOTONIC timer was invalid. To generate a diff of this commit: cvs rdiff -u -r1.50 -r1.51 src/sys/compat/netbsd32/netbsd32_compat_50.c cvs rdiff -u -r1.54 -r1.55 src/sys/compat/netbsd32/netbsd32_time.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_compat_50.c diff -u src/sys/compat/netbsd32/netbsd32_compat_50.c:1.50 src/sys/compat/netbsd32/netbsd32_compat_50.c:1.51 --- src/sys/compat/netbsd32/netbsd32_compat_50.c:1.50 Tue Jan 19 03:20:13 2021 +++ src/sys/compat/netbsd32/netbsd32_compat_50.c Thu Feb 18 12:54:03 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_50.c,v 1.50 2021/01/19 03:20:13 simonb Exp $ */ +/* $NetBSD: netbsd32_compat_50.c,v 1.51 2021/02/18 12:54:03 simonb Exp $ */ /*- * Copyright (c) 2008, 2020 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.50 2021/01/19 03:20:13 simonb Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.51 2021/02/18 12:54:03 simonb Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd.h" @@ -875,8 +875,6 @@ compat_50_netbsd32_setitimer(struct lwp struct itimerval aitv; int error; - if ((u_int)which > ITIMER_PROF) - return EINVAL; itv32 = SCARG_P32(uap, itv); if (itv32) { if ((error = copyin(itv32, &s32it, sizeof(s32it Index: src/sys/compat/netbsd32/netbsd32_time.c diff -u src/sys/compat/netbsd32/netbsd32_time.c:1.54 src/sys/compat/netbsd32/netbsd32_time.c:1.55 --- src/sys/compat/netbsd32/netbsd32_time.c:1.54 Tue Jan 19 03:20:13 2021 +++ src/sys/compat/netbsd32/netbsd32_time.c Thu Feb 18 12:54:03 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_time.c,v 1.54 2021/01/19 03:20:13 simonb Exp $ */ +/* $NetBSD: netbsd32_time.c,v 1.55 2021/02/18 12:54:03 simonb Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_time.c,v 1.54 2021/01/19 03:20:13 simonb Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_time.c,v 1.55 2021/02/18 12:54:03 simonb Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -142,8 +142,6 @@ netbsd32___setitimer50(struct lwp *l, co struct itimerval aitv; int error; - if ((u_int)which > ITIMER_PROF) - return EINVAL; itv32 = SCARG_P32(uap, itv); if (itv32) { if ((error = copyin(itv32, &s32it, sizeof(s32it
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: simonb Date: Tue Feb 16 14:47:20 UTC 2021 Modified Files: src/sys/compat/netbsd32: netbsd32_fs.c Log Message: In netbsd32___mount50() zero out the native fs_args union before use so we don't pass stack garbage to the lower layers in the MNT_GETARGS case. Fixes random errors like "Bad address" from "mount -vv" with nfs mounts. To generate a diff of this commit: cvs rdiff -u -r1.92 -r1.93 src/sys/compat/netbsd32/netbsd32_fs.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_fs.c diff -u src/sys/compat/netbsd32/netbsd32_fs.c:1.92 src/sys/compat/netbsd32/netbsd32_fs.c:1.93 --- src/sys/compat/netbsd32/netbsd32_fs.c:1.92 Tue Jan 19 03:41:22 2021 +++ src/sys/compat/netbsd32/netbsd32_fs.c Tue Feb 16 14:47:20 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_fs.c,v 1.92 2021/01/19 03:41:22 simonb Exp $ */ +/* $NetBSD: netbsd32_fs.c,v 1.93 2021/02/16 14:47:20 simonb Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_fs.c,v 1.92 2021/01/19 03:41:22 simonb Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_fs.c,v 1.93 2021/02/16 14:47:20 simonb Exp $"); #include #include @@ -825,6 +825,7 @@ netbsd32___mount50(struct lwp *l, const udata = data = SCARG_P32(uap, data); memset(&fs_args32, 0, sizeof(fs_args32)); + memset(&fs_args, 0, sizeof(fs_args)); error = copyinstr(type, mtype, sizeof(mtype), &len); if (error)
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: wiz Date: Tue Jan 19 08:10:17 UTC 2021 Modified Files: src/sys/compat/netbsd32: netbsd32_compat_20.c Log Message: Fix syntax error To generate a diff of this commit: cvs rdiff -u -r1.40 -r1.41 src/sys/compat/netbsd32/netbsd32_compat_20.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_compat_20.c diff -u src/sys/compat/netbsd32/netbsd32_compat_20.c:1.40 src/sys/compat/netbsd32/netbsd32_compat_20.c:1.41 --- src/sys/compat/netbsd32/netbsd32_compat_20.c:1.40 Tue Jan 19 03:20:13 2021 +++ src/sys/compat/netbsd32/netbsd32_compat_20.c Tue Jan 19 08:10:17 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_20.c,v 1.40 2021/01/19 03:20:13 simonb Exp $ */ +/* $NetBSD: netbsd32_compat_20.c,v 1.41 2021/01/19 08:10:17 wiz Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_20.c,v 1.40 2021/01/19 03:20:13 simonb Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_20.c,v 1.41 2021/01/19 08:10:17 wiz Exp $"); #include #include @@ -201,7 +201,7 @@ compat_20_netbsd32_fstatfs(struct lwp *l out: STATVFSBUF_PUT(sb); fd_putfile(SCARG(uap, fd)); - return error) + return error; } int
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: simonb Date: Tue Jan 19 03:41:22 UTC 2021 Modified Files: src/sys/compat/netbsd32: netbsd32.h netbsd32_conv.h netbsd32_fs.c netbsd32_netbsd.c netbsd32_socket.c Log Message: The read/write/send/recv system calls return ssize_t because -1 is returned on error. Therefore we must restrict the lengths of any buffers to NETBSD32_SSIZE_MAX with compat32 to avoid garbage return values. Fixes ATF lib/libc/sys/t_write:write_err. To generate a diff of this commit: cvs rdiff -u -r1.136 -r1.137 src/sys/compat/netbsd32/netbsd32.h cvs rdiff -u -r1.44 -r1.45 src/sys/compat/netbsd32/netbsd32_conv.h cvs rdiff -u -r1.91 -r1.92 src/sys/compat/netbsd32/netbsd32_fs.c cvs rdiff -u -r1.231 -r1.232 src/sys/compat/netbsd32/netbsd32_netbsd.c cvs rdiff -u -r1.55 -r1.56 src/sys/compat/netbsd32/netbsd32_socket.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32.h diff -u src/sys/compat/netbsd32/netbsd32.h:1.136 src/sys/compat/netbsd32/netbsd32.h:1.137 --- src/sys/compat/netbsd32/netbsd32.h:1.136 Mon Jan 18 23:14:22 2021 +++ src/sys/compat/netbsd32/netbsd32.h Tue Jan 19 03:41:22 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32.h,v 1.136 2021/01/18 23:14:22 simonb Exp $ */ +/* $NetBSD: netbsd32.h,v 1.137 2021/01/19 03:41:22 simonb Exp $ */ /* * Copyright (c) 1998, 2001, 2008, 2015 Matthew R. Green @@ -58,7 +58,7 @@ #include /* - * first, define the basic types we need. + * first define the basic types we need, and any applicable limits. */ typedef int32_t netbsd32_long; @@ -73,6 +73,9 @@ typedef int32_t netbsd32_key_t; typedef int32_t netbsd32_intptr_t; typedef uint32_t netbsd32_uintptr_t; +/* Note: 32-bit sparc defines ssize_t as long but still has same size as int. */ +#define NETBSD32_SSIZE_MAX INT32_MAX + /* netbsd32_[u]int64 are machine dependent and defined below */ /* Index: src/sys/compat/netbsd32/netbsd32_conv.h diff -u src/sys/compat/netbsd32/netbsd32_conv.h:1.44 src/sys/compat/netbsd32/netbsd32_conv.h:1.45 --- src/sys/compat/netbsd32/netbsd32_conv.h:1.44 Tue Jan 19 03:20:13 2021 +++ src/sys/compat/netbsd32/netbsd32_conv.h Tue Jan 19 03:41:22 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_conv.h,v 1.44 2021/01/19 03:20:13 simonb Exp $ */ +/* $NetBSD: netbsd32_conv.h,v 1.45 2021/01/19 03:41:22 simonb Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -246,13 +246,15 @@ netbsd32_to_iovecin(const struct netbsd3 { int i, error=0; uint32_t iov_base; - uint32_t iov_len; + uint32_t iov_len, total_iov_len; + /* * We could allocate an iov32p, do a copyin, and translate * each field and then free it all up, or we could copyin * each field separately. I'm doing the latter to reduce * the number of MALLOC()s. */ + total_iov_len = 0; for (i = 0; i < len; i++, iovp++, iov32p++) { if ((error = copyin(&iov32p->iov_base, &iov_base, sizeof(iov_base return error; @@ -260,6 +262,19 @@ netbsd32_to_iovecin(const struct netbsd3 return error; iovp->iov_base = (void *)(u_long)iov_base; iovp->iov_len = (size_t)iov_len; + + /* + * System calls return ssize_t because -1 is returned + * on error. Therefore we must restrict the length to + * SSIZE_MAX (NETBSD32_SSIZE_MAX with compat32) to + * avoid garbage return values. + */ + total_iov_len += iov_len; + if (iov_len > NETBSD32_SSIZE_MAX || + total_iov_len > NETBSD32_SSIZE_MAX) { + return EINVAL; + break; + } } return error; } Index: src/sys/compat/netbsd32/netbsd32_fs.c diff -u src/sys/compat/netbsd32/netbsd32_fs.c:1.91 src/sys/compat/netbsd32/netbsd32_fs.c:1.92 --- src/sys/compat/netbsd32/netbsd32_fs.c:1.91 Tue Jan 19 03:20:13 2021 +++ src/sys/compat/netbsd32/netbsd32_fs.c Tue Jan 19 03:41:22 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_fs.c,v 1.91 2021/01/19 03:20:13 simonb Exp $ */ +/* $NetBSD: netbsd32_fs.c,v 1.92 2021/01/19 03:41:22 simonb Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_fs.c,v 1.91 2021/01/19 03:20:13 simonb Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_fs.c,v 1.92 2021/01/19 03:41:22 simonb Exp $"); #include #include @@ -176,7 +176,8 @@ dofilereadv32(int fd, struct file *fp, s * Therefore we must restrict the length to SSIZE_MAX to * avoid garbage return values. */ - if (iov->iov_len > SSIZE_MAX || auio.uio_resid > SSIZE_MAX) { + if (iov->iov_len > NETBSD32_SSIZE_MAX || + auio.uio_resid > NETBSD32_SSIZE_MAX) { error = EINVAL; goto done; } @@ -281,7 +282,8 @@ dofilewritev32(int fd, struct file *fp, * Therefore we must restrict the length to SSIZE_MAX to * avoid garbage return values. */ - if (iov->iov_len > SSIZE_MAX || auio.uio_resid > SSIZE_MAX) { + if (iov->iov_len > NETBSD32_SSIZE_MAX || + auio.uio_resid > NETBSD32_SSIZE_MAX) { error = EINVAL
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: simonb Date: Tue Jan 19 03:20:13 UTC 2021 Modified Files: src/sys/compat/netbsd32: netbsd32_compat_09.c netbsd32_compat_10_sysv.c netbsd32_compat_12.c netbsd32_compat_13.c netbsd32_compat_14_sysv.c netbsd32_compat_20.c netbsd32_compat_30.c netbsd32_compat_43.c netbsd32_compat_50.c netbsd32_compat_50_quota.c netbsd32_compat_50_sysv.c netbsd32_conv.h netbsd32_exec_aout.c netbsd32_fs.c netbsd32_ipc.c netbsd32_rlimit.c netbsd32_rndpseudo_50.c netbsd32_signal.c netbsd32_socket.c netbsd32_sysctl.c netbsd32_time.c Log Message: KNF consistency: No parentheses are needed around the return value. To generate a diff of this commit: cvs rdiff -u -r1.19 -r1.20 src/sys/compat/netbsd32/netbsd32_compat_09.c \ src/sys/compat/netbsd32/netbsd32_ipc.c cvs rdiff -u -r1.2 -r1.3 src/sys/compat/netbsd32/netbsd32_compat_10_sysv.c cvs rdiff -u -r1.34 -r1.35 src/sys/compat/netbsd32/netbsd32_compat_12.c cvs rdiff -u -r1.27 -r1.28 src/sys/compat/netbsd32/netbsd32_compat_13.c cvs rdiff -u -r1.3 -r1.4 src/sys/compat/netbsd32/netbsd32_compat_14_sysv.c \ src/sys/compat/netbsd32/netbsd32_compat_50_sysv.c cvs rdiff -u -r1.39 -r1.40 src/sys/compat/netbsd32/netbsd32_compat_20.c cvs rdiff -u -r1.35 -r1.36 src/sys/compat/netbsd32/netbsd32_compat_30.c cvs rdiff -u -r1.60 -r1.61 src/sys/compat/netbsd32/netbsd32_compat_43.c cvs rdiff -u -r1.49 -r1.50 src/sys/compat/netbsd32/netbsd32_compat_50.c cvs rdiff -u -r1.1 -r1.2 src/sys/compat/netbsd32/netbsd32_compat_50_quota.c \ src/sys/compat/netbsd32/netbsd32_rlimit.c cvs rdiff -u -r1.43 -r1.44 src/sys/compat/netbsd32/netbsd32_conv.h cvs rdiff -u -r1.30 -r1.31 src/sys/compat/netbsd32/netbsd32_exec_aout.c cvs rdiff -u -r1.90 -r1.91 src/sys/compat/netbsd32/netbsd32_fs.c cvs rdiff -u -r1.5 -r1.6 src/sys/compat/netbsd32/netbsd32_rndpseudo_50.c cvs rdiff -u -r1.50 -r1.51 src/sys/compat/netbsd32/netbsd32_signal.c cvs rdiff -u -r1.54 -r1.55 src/sys/compat/netbsd32/netbsd32_socket.c cvs rdiff -u -r1.44 -r1.45 src/sys/compat/netbsd32/netbsd32_sysctl.c cvs rdiff -u -r1.53 -r1.54 src/sys/compat/netbsd32/netbsd32_time.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_compat_09.c diff -u src/sys/compat/netbsd32/netbsd32_compat_09.c:1.19 src/sys/compat/netbsd32/netbsd32_compat_09.c:1.20 --- src/sys/compat/netbsd32/netbsd32_compat_09.c:1.19 Sun Jan 27 02:08:40 2019 +++ src/sys/compat/netbsd32/netbsd32_compat_09.c Tue Jan 19 03:20:13 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_09.c,v 1.19 2019/01/27 02:08:40 pgoyette Exp $ */ +/* $NetBSD: netbsd32_compat_09.c,v 1.20 2021/01/19 03:20:13 simonb Exp $ */ /* * Copyright (c) 1998 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_09.c,v 1.19 2019/01/27 02:08:40 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_09.c,v 1.20 2021/01/19 03:20:13 simonb Exp $"); #include #include @@ -59,8 +59,8 @@ compat_09_netbsd32_ogetdomainname(struct name[0] = CTL_KERN; name[1] = KERN_DOMAINNAME; sz = SCARG(uap, len); - return (old_sysctl(&name[0], 2, - (char *)SCARG_P32(uap, domainname), &sz, 0, 0, l)); + return old_sysctl(&name[0], 2, + (char *)SCARG_P32(uap, domainname), &sz, 0, 0, l); } int @@ -74,8 +74,8 @@ compat_09_netbsd32_osetdomainname(struct name[0] = CTL_KERN; name[1] = KERN_DOMAINNAME; - return (old_sysctl(&name[0], 2, 0, 0, - (char *)SCARG_P32(uap, domainname), SCARG(uap, len), l)); + return old_sysctl(&name[0], 2, 0, 0, + (char *)SCARG_P32(uap, domainname), SCARG(uap, len), l); } int @@ -87,7 +87,7 @@ compat_09_netbsd32_uname(struct lwp *l, struct compat_09_sys_uname_args ua; NETBSD32TOP_UAP(name, struct outsname); - return (compat_09_sys_uname(l, &ua, retval)); + return compat_09_sys_uname(l, &ua, retval); } static struct syscall_package compat_netbsd32_09_syscalls[] = { Index: src/sys/compat/netbsd32/netbsd32_ipc.c diff -u src/sys/compat/netbsd32/netbsd32_ipc.c:1.19 src/sys/compat/netbsd32/netbsd32_ipc.c:1.20 --- src/sys/compat/netbsd32/netbsd32_ipc.c:1.19 Sun Jan 27 02:08:40 2019 +++ src/sys/compat/netbsd32/netbsd32_ipc.c Tue Jan 19 03:20:13 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ipc.c,v 1.19 2019/01/27 02:08:40 pgoyette Exp $ */ +/* $NetBSD: netbsd32_ipc.c,v 1.20 2021/01/19 03:20:13 simonb Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ipc.c,v 1.19 2019/01/27 02:08:40 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ipc.c,v 1.20 2021/01/19 03:20:13 simonb Exp $"); #if defined(_KERNEL_OPT) #include "opt_sysv.h" @@ -162,7 +162,7 @@ netbsd32_semctl50(struct lwp *l, con error = copyin(NETBSD32PTR64(karg32.buf), &sembuf32, sizeof(sembuf32)); if (error) -return
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: simonb Date: Tue Jan 19 02:40:07 UTC 2021 Modified Files: src/sys/compat/netbsd32: netbsd32_exec.h Log Message: Whitespace nits. To generate a diff of this commit: cvs rdiff -u -r1.35 -r1.36 src/sys/compat/netbsd32/netbsd32_exec.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_exec.h diff -u src/sys/compat/netbsd32/netbsd32_exec.h:1.35 src/sys/compat/netbsd32/netbsd32_exec.h:1.36 --- src/sys/compat/netbsd32/netbsd32_exec.h:1.35 Mon Jan 18 23:14:22 2021 +++ src/sys/compat/netbsd32/netbsd32_exec.h Tue Jan 19 02:40:07 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_exec.h,v 1.35 2021/01/18 23:14:22 simonb Exp $ */ +/* $NetBSD: netbsd32_exec.h,v 1.36 2021/01/19 02:40:07 simonb Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -70,9 +70,9 @@ int netbsd32_elf32_copyargs(struct lwp * static __inline int netbsd32_copyargs(struct lwp *, struct exec_package *, struct ps_strings *, char **, void *); -void netbsd32_setregs (struct lwp *, struct exec_package *, vaddr_t stack); -int netbsd32_sigreturn (struct proc *, void *, register_t *); -void netbsd32_sendsig (const ksiginfo_t *, const sigset_t *); +void netbsd32_setregs(struct lwp *, struct exec_package *, vaddr_t stack); +int netbsd32_sigreturn(struct proc *, void *, register_t *); +void netbsd32_sendsig(const ksiginfo_t *, const sigset_t *); extern char netbsd32_esigcode[], netbsd32_sigcode[];
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: simonb Date: Tue Jan 19 01:47:58 UTC 2021 Modified Files: src/sys/compat/netbsd32: netbsd32_vm.c Log Message: Also print mmap return value and error code #ifdef DEBUG_MMAP. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/compat/netbsd32/netbsd32_vm.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_vm.c diff -u src/sys/compat/netbsd32/netbsd32_vm.c:1.2 src/sys/compat/netbsd32/netbsd32_vm.c:1.3 --- src/sys/compat/netbsd32/netbsd32_vm.c:1.2 Tue Jan 7 07:26:21 2020 +++ src/sys/compat/netbsd32/netbsd32_vm.c Tue Jan 19 01:47:58 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_vm.c,v 1.2 2020/01/07 07:26:21 mrg Exp $ */ +/* $NetBSD: netbsd32_vm.c,v 1.3 2021/01/19 01:47:58 simonb Exp $ */ /* * Copyright (c) 1998, 2001, 2008, 2018 Matthew R. Green @@ -29,7 +29,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_vm.c,v 1.2 2020/01/07 07:26:21 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_vm.c,v 1.3 2021/01/19 01:47:58 simonb Exp $"); #include #include @@ -86,6 +86,9 @@ netbsd32_mmap(struct lwp *l, const struc #endif error = sys_mmap(l, &ua, retval); +#ifdef DEBUG_MMAP + printf("mmap error = %d *retval = %#"PRIxREGISTER"\n", error, *retval); +#endif if (error == 0 && (u_long)*retval > (u_long)UINT_MAX) { const char *name = curlwp->l_name;
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: simonb Date: Mon Jan 18 23:14:22 UTC 2021 Modified Files: src/sys/compat/netbsd32: netbsd32.h netbsd32_conv.h netbsd32_exec.h netbsd32_socket.c Log Message: s/u_intN_t/uintN_t/ To generate a diff of this commit: cvs rdiff -u -r1.135 -r1.136 src/sys/compat/netbsd32/netbsd32.h cvs rdiff -u -r1.42 -r1.43 src/sys/compat/netbsd32/netbsd32_conv.h cvs rdiff -u -r1.34 -r1.35 src/sys/compat/netbsd32/netbsd32_exec.h cvs rdiff -u -r1.53 -r1.54 src/sys/compat/netbsd32/netbsd32_socket.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32.h diff -u src/sys/compat/netbsd32/netbsd32.h:1.135 src/sys/compat/netbsd32/netbsd32.h:1.136 --- src/sys/compat/netbsd32/netbsd32.h:1.135 Thu Jan 14 08:00:45 2021 +++ src/sys/compat/netbsd32/netbsd32.h Mon Jan 18 23:14:22 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32.h,v 1.135 2021/01/14 08:00:45 simonb Exp $ */ +/* $NetBSD: netbsd32.h,v 1.136 2021/01/18 23:14:22 simonb Exp $ */ /* * Copyright (c) 1998, 2001, 2008, 2015 Matthew R. Green @@ -1071,14 +1071,14 @@ typedef netbsd32_pointer_t netbsd32_nfsd struct netbsd32_nfsd_srvargs { netbsd32_nfsdp nsd_nfsd; uid_t nsd_uid; - u_int32_t nsd_haddr; + uint32_t nsd_haddr; struct uucred nsd_cr; int nsd_authlen; netbsd32_u_charp nsd_authstr; int nsd_verflen; netbsd32_u_charp nsd_verfstr; struct netbsd32_timeval nsd_timestamp; - u_int32_t nsd_ttl; + uint32_t nsd_ttl; NFSKERBKEY_T nsd_key; }; Index: src/sys/compat/netbsd32/netbsd32_conv.h diff -u src/sys/compat/netbsd32/netbsd32_conv.h:1.42 src/sys/compat/netbsd32/netbsd32_conv.h:1.43 --- src/sys/compat/netbsd32/netbsd32_conv.h:1.42 Mon Nov 18 04:17:08 2019 +++ src/sys/compat/netbsd32/netbsd32_conv.h Mon Jan 18 23:14:22 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_conv.h,v 1.42 2019/11/18 04:17:08 rin Exp $ */ +/* $NetBSD: netbsd32_conv.h,v 1.43 2021/01/18 23:14:22 simonb Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -245,8 +245,8 @@ netbsd32_to_iovecin(const struct netbsd3 int len) { int i, error=0; - u_int32_t iov_base; - u_int32_t iov_len; + uint32_t iov_base; + uint32_t iov_len; /* * We could allocate an iov32p, do a copyin, and translate * each field and then free it all up, or we could copyin @@ -799,11 +799,11 @@ netbsd32_to_dirent12(char *buf, int nbyt */ for (; ndp < endp; ndp = nndp) { nndp = _DIRENT_NEXT(ndp); - odp->d_fileno = (u_int32_t)ndp->d_fileno; + odp->d_fileno = (uint32_t)ndp->d_fileno; if (ndp->d_namlen >= sizeof(odp->d_name)) odp->d_namlen = sizeof(odp->d_name) - 1; else - odp->d_namlen = (u_int8_t)ndp->d_namlen; + odp->d_namlen = (uint8_t)ndp->d_namlen; odp->d_type = ndp->d_type; (void)memcpy(odp->d_name, ndp->d_name, (size_t)odp->d_namlen); odp->d_name[odp->d_namlen] = '\0'; Index: src/sys/compat/netbsd32/netbsd32_exec.h diff -u src/sys/compat/netbsd32/netbsd32_exec.h:1.34 src/sys/compat/netbsd32/netbsd32_exec.h:1.35 --- src/sys/compat/netbsd32/netbsd32_exec.h:1.34 Sun Jan 27 02:08:40 2019 +++ src/sys/compat/netbsd32/netbsd32_exec.h Mon Jan 18 23:14:22 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_exec.h,v 1.34 2019/01/27 02:08:40 pgoyette Exp $ */ +/* $NetBSD: netbsd32_exec.h,v 1.35 2021/01/18 23:14:22 simonb Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -83,9 +83,9 @@ static __inline int netbsd32_copyargs(struct lwp *l, struct exec_package *pack, struct ps_strings *arginfo, char **stackp, void *argp) { - u_int32_t *cpp = (u_int32_t *)*stackp; + uint32_t *cpp = (uint32_t *)*stackp; netbsd32_pointer_t dp; - u_int32_t nullp = 0; + uint32_t nullp = 0; char *sp; size_t len; int argc = arginfo->ps_nargvstr; Index: src/sys/compat/netbsd32/netbsd32_socket.c diff -u src/sys/compat/netbsd32/netbsd32_socket.c:1.53 src/sys/compat/netbsd32/netbsd32_socket.c:1.54 --- src/sys/compat/netbsd32/netbsd32_socket.c:1.53 Sat Sep 28 08:21:08 2019 +++ src/sys/compat/netbsd32/netbsd32_socket.c Mon Jan 18 23:14:22 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_socket.c,v 1.53 2019/09/28 08:21:08 mlelstv Exp $ */ +/* $NetBSD: netbsd32_socket.c,v 1.54 2021/01/18 23:14:22 simonb Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_socket.c,v 1.53 2019/09/28 08:21:08 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_socket.c,v 1.54 2021/01/18 23:14:22 simonb Exp $"); #include #include @@ -386,7 +386,7 @@ copyin32_msg_control(struct lwp *l, stru struct mbuf *ctl_mbuf; ssize_t resid = mp->msg_controllen; size_t clen, cidx = 0, cspace; - u_int8_t *control; + uint8_t *control; int error; ctl_mbuf = m_get(M_WAIT, MT_CONTROL); @@ -414,7 +414,7 @@ copyin32_msg_control(struct lwp *l, stru /* Check the buffer is big enough */ if (__predict_false(cidx + cspace > clen)) { - u_int8_t *nc; + uint8_t
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: simonb Date: Sun Jan 17 10:50:01 UTC 2021 Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.c netbsd32_ioctl.h Log Message: Handle the SIOCGNBRINFO_IN6 ioctl for compat32. ndp -a works with compat32 now. To generate a diff of this commit: cvs rdiff -u -r1.117 -r1.118 src/sys/compat/netbsd32/netbsd32_ioctl.c cvs rdiff -u -r1.76 -r1.77 src/sys/compat/netbsd32/netbsd32_ioctl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.117 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.118 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.117 Thu Jan 14 23:30:50 2021 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Sun Jan 17 10:50:01 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.117 2021/01/14 23:30:50 simonb Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.118 2021/01/17 10:50:01 simonb Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.117 2021/01/14 23:30:50 simonb Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.118 2021/01/17 10:50:01 simonb Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -86,6 +86,9 @@ __KERNEL_RCSID(0, "$NetBSD: netbsd32_ioc #include #include +#include +#include + #include #include @@ -177,6 +180,20 @@ netbsd32_to_ifmediareq(struct netbsd32_i } static inline void +netbsd32_to_in6_nbrinfo(struct netbsd32_in6_nbrinfo *s32p, struct in6_nbrinfo *p, +u_long cmd) +{ + + memcpy(p->ifname, s32p->ifname, sizeof p->ifname); + memcpy(&p->addr, &s32p->addr, sizeof p->addr); + p->asked = s32p->asked; + p->isrouter = s32p->isrouter; + p->state = s32p->state; + p->expire = s32p->expire; + +} + +static inline void netbsd32_to_pppoediscparms(struct netbsd32_pppoediscparms *s32p, struct pppoediscparms *p, u_long cmd) { @@ -698,6 +715,19 @@ netbsd32_from_ifmediareq(struct ifmediar } static inline void +netbsd32_from_in6_nbrinfo(struct in6_nbrinfo *p, struct netbsd32_in6_nbrinfo *s32p, +u_long cmd) +{ + + memcpy(s32p->ifname, p->ifname, sizeof s32p->ifname); + memcpy(&s32p->addr, &p->addr, sizeof s32p->addr); + s32p->asked = p->asked; + s32p->isrouter = p->isrouter; + s32p->state = p->state; + s32p->expire = p->expire; +} + +static inline void netbsd32_from_pppoediscparms(struct pppoediscparms *p, struct netbsd32_pppoediscparms *s32p, u_long cmd) { @@ -1495,6 +1525,9 @@ netbsd32_ioctl(struct lwp *l, case SIOCGIFMEDIA32: IOCTL_STRUCT_CONV_TO(SIOCGIFMEDIA, ifmediareq); + case SIOCGNBRINFO_IN632: + IOCTL_STRUCT_CONV_TO(SIOCGNBRINFO_IN6, in6_nbrinfo); + case SIOCGIFGENERIC32: IOCTL_STRUCT_CONV_TO(SIOCGIFGENERIC, ifreq); case SIOCSIFGENERIC32: Index: src/sys/compat/netbsd32/netbsd32_ioctl.h diff -u src/sys/compat/netbsd32/netbsd32_ioctl.h:1.76 src/sys/compat/netbsd32/netbsd32_ioctl.h:1.77 --- src/sys/compat/netbsd32/netbsd32_ioctl.h:1.76 Thu Jan 14 08:22:51 2021 +++ src/sys/compat/netbsd32/netbsd32_ioctl.h Sun Jan 17 10:50:01 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.h,v 1.76 2021/01/14 08:22:51 simonb Exp $ */ +/* $NetBSD: netbsd32_ioctl.h,v 1.77 2021/01/17 10:50:01 simonb Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -480,6 +480,18 @@ struct netbsd32_sioc_vif_req { /* from */ #define SIOCGETVIFCNT32 _IOWR('u', 51, struct netbsd32_sioc_vif_req)/* vif pkt cnt */ +/* from */ +struct netbsd32_in6_nbrinfo { + char ifname[IFNAMSIZ]; /* if name, e.g. "en0" */ + struct in6_addr addr; /* IPv6 address of the neighbor */ + netbsd32_long asked; /* number of queries already sent for this addr */ + int isrouter; /* if it acts as a router */ + int state; /* reachability state */ + int expire; /* lifetime for NDP state transition */ +}; +/* from */ +#define SIOCGNBRINFO_IN632 _IOWR('i', 78, struct netbsd32_in6_nbrinfo) + struct netbsd32_sioc_sg_req { struct in_addr src; struct in_addr grp;
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: simonb Date: Fri Jan 15 03:51:41 UTC 2021 Modified Files: src/sys/compat/netbsd32: netbsd32_netbsd.c Log Message: Remove unused LIMITCHECK() macro (now contained in netbsd32_rlimit.c). To generate a diff of this commit: cvs rdiff -u -r1.230 -r1.231 src/sys/compat/netbsd32/netbsd32_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_netbsd.c diff -u src/sys/compat/netbsd32/netbsd32_netbsd.c:1.230 src/sys/compat/netbsd32/netbsd32_netbsd.c:1.231 --- src/sys/compat/netbsd32/netbsd32_netbsd.c:1.230 Sat Oct 10 00:00:54 2020 +++ src/sys/compat/netbsd32/netbsd32_netbsd.c Fri Jan 15 03:51:41 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_netbsd.c,v 1.230 2020/10/10 00:00:54 rin Exp $ */ +/* $NetBSD: netbsd32_netbsd.c,v 1.231 2021/01/15 03:51:41 simonb Exp $ */ /* * Copyright (c) 1998, 2001, 2008, 2018 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.230 2020/10/10 00:00:54 rin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.231 2021/01/15 03:51:41 simonb Exp $"); /* * below are all the standard NetBSD system calls, in the 32bit @@ -109,8 +109,6 @@ void netbsd32_syscall_intern(struct proc void syscall(void); #endif -#define LIMITCHECK(a, b) ((a) != RLIM_INFINITY && (a) > (b)) - #ifdef MODULAR #include #endif
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: simonb Date: Thu Jan 14 23:30:50 UTC 2021 Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.c Log Message: Remove some blank lines to group the VND and FSS ioctls together. To generate a diff of this commit: cvs rdiff -u -r1.116 -r1.117 src/sys/compat/netbsd32/netbsd32_ioctl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.116 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.117 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.116 Thu Jan 14 08:22:51 2021 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Thu Jan 14 23:30:50 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.116 2021/01/14 08:22:51 simonb Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.117 2021/01/14 23:30:50 simonb Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.116 2021/01/14 08:22:51 simonb Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.117 2021/01/14 23:30:50 simonb Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -1522,22 +1522,17 @@ netbsd32_ioctl(struct lwp *l, case FSSIOCSET32: /* XXX FSSIOCSET50 not yet handled */ IOCTL_STRUCT_CONV_TO(FSSIOCSET, fss_set); - case FSSIOCGET32: /* XXX FSSIOCGET50 not yet handled */ IOCTL_STRUCT_CONV_TO(FSSIOCGET, fss_get); case VNDIOCSET32: IOCTL_STRUCT_CONV_TO(VNDIOCSET, vnd_ioctl); - case VNDIOCCLR32: IOCTL_STRUCT_CONV_TO(VNDIOCCLR, vnd_ioctl); - case VNDIOCGET32: IOCTL_STRUCT_CONV_TO(VNDIOCGET, vnd_user); - case VNDIOCSET5032: IOCTL_STRUCT_CONV_TO(VNDIOCSET50, vnd_ioctl50); - case VNDIOCCLR5032: IOCTL_STRUCT_CONV_TO(VNDIOCCLR50, vnd_ioctl50);
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: simonb Date: Thu Jan 14 08:22:51 UTC 2021 Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.c netbsd32_ioctl.h Log Message: Handle the KFILTER_BYFILTER and KFILTER_BYNAME ioctls for compat32. Passes "atf kernel/kqueue/t_ioctl". To generate a diff of this commit: cvs rdiff -u -r1.115 -r1.116 src/sys/compat/netbsd32/netbsd32_ioctl.c cvs rdiff -u -r1.75 -r1.76 src/sys/compat/netbsd32/netbsd32_ioctl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.115 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.116 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.115 Thu Jan 14 08:00:45 2021 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Thu Jan 14 08:22:51 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.115 2021/01/14 08:00:45 simonb Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.116 2021/01/14 08:22:51 simonb Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.115 2021/01/14 08:00:45 simonb Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.116 2021/01/14 08:22:51 simonb Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -244,6 +244,16 @@ netbsd32_to_sioc_sg_req(struct netbsd32_ } static inline void +netbsd32_to_kfilter_mapping(struct netbsd32_kfilter_mapping *s32p, +struct kfilter_mapping *p, u_long cmd) +{ + + p->name = (char *)NETBSD32PTR64(s32p->name); + p->len = s32p->len; + p->filter = s32p->filter; +} + +static inline void netbsd32_to_atareq(struct netbsd32_atareq *s32p, struct atareq *p, u_long cmd) { @@ -755,6 +765,16 @@ netbsd32_from_sioc_sg_req(struct sioc_sg } static inline void +netbsd32_from_kfilter_mapping(struct kfilter_mapping *p, +struct netbsd32_kfilter_mapping *s32p, u_long cmd) +{ + + NETBSD32PTR32(s32p->name, p->name); + s32p->len = p->len; + s32p->filter = p->filter; +} + +static inline void netbsd32_from_atareq(struct atareq *p, struct netbsd32_atareq *s32p, u_long cmd) { @@ -1369,6 +1389,11 @@ netbsd32_ioctl(struct lwp *l, IOCTL_STRUCT_CONV_TO(DIOCWFORMAT, format_op); #endif + case KFILTER_BYFILTER32: + IOCTL_STRUCT_CONV_TO(KFILTER_BYFILTER, kfilter_mapping); + case KFILTER_BYNAME32: + IOCTL_STRUCT_CONV_TO(KFILTER_BYNAME, kfilter_mapping); + case ATAIOCCOMMAND32: IOCTL_STRUCT_CONV_TO(ATAIOCCOMMAND, atareq); Index: src/sys/compat/netbsd32/netbsd32_ioctl.h diff -u src/sys/compat/netbsd32/netbsd32_ioctl.h:1.75 src/sys/compat/netbsd32/netbsd32_ioctl.h:1.76 --- src/sys/compat/netbsd32/netbsd32_ioctl.h:1.75 Thu Jan 14 08:00:45 2021 +++ src/sys/compat/netbsd32/netbsd32_ioctl.h Thu Jan 14 08:22:51 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.h,v 1.75 2021/01/14 08:00:45 simonb Exp $ */ +/* $NetBSD: netbsd32_ioctl.h,v 1.76 2021/01/14 08:22:51 simonb Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -89,6 +89,19 @@ struct netbsd32_format_op { #define DIOCWFORMAT32 _IOWR('d', 106, struct netbsd32_format_op) #endif +/* from */ + +struct netbsd32_kfilter_mapping { + netbsd32_charp name; /* name to lookup or return */ + netbsd32_size_t len; /* length of name */ + uint32_t filter; /* filter to lookup or return */ +}; + +/* map filter to name (max size len) */ +#define KFILTER_BYFILTER32 _IOWR('k', 0, struct netbsd32_kfilter_mapping) +/* map name to filter (len ignored) */ +#define KFILTER_BYNAME32 _IOWR('k', 1, struct netbsd32_kfilter_mapping) + /* from */ struct netbsd32_atareq { netbsd32_u_long flags;
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: simonb Date: Thu Jan 14 08:00:45 UTC 2021 Modified Files: src/sys/compat/netbsd32: netbsd32.h netbsd32_ioctl.c netbsd32_ioctl.h Log Message: Handle FSSIOCSET and FSSIOCGET; vndconfig(8) works with compat32 now. XXX: FSSIOCSET50 and FSSIOCGET50 are not (yet) handled. To generate a diff of this commit: cvs rdiff -u -r1.134 -r1.135 src/sys/compat/netbsd32/netbsd32.h cvs rdiff -u -r1.114 -r1.115 src/sys/compat/netbsd32/netbsd32_ioctl.c cvs rdiff -u -r1.74 -r1.75 src/sys/compat/netbsd32/netbsd32_ioctl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32.h diff -u src/sys/compat/netbsd32/netbsd32.h:1.134 src/sys/compat/netbsd32/netbsd32.h:1.135 --- src/sys/compat/netbsd32/netbsd32.h:1.134 Sun Nov 1 18:51:02 2020 +++ src/sys/compat/netbsd32/netbsd32.h Thu Jan 14 08:00:45 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32.h,v 1.134 2020/11/01 18:51:02 pgoyette Exp $ */ +/* $NetBSD: netbsd32.h,v 1.135 2021/01/14 08:00:45 simonb Exp $ */ /* * Copyright (c) 1998, 2001, 2008, 2015 Matthew R. Green @@ -203,6 +203,7 @@ typedef netbsd32_pointer_t netbsd32_semi typedef netbsd32_uint64 netbsd32_dev_t; typedef netbsd32_int64 netbsd32_off_t; typedef netbsd32_uint64 netbsd32_ino_t; +typedef netbsd32_int64 netbsd32_blkcnt_t; /* from */ typedef netbsd32_pointer_t netbsd32_posix_spawn_file_actionsp; Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.114 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.115 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.114 Tue Jul 21 05:33:51 2020 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Thu Jan 14 08:00:45 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.114 2020/07/21 05:33:51 simonb Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.115 2021/01/14 08:00:45 simonb Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.114 2020/07/21 05:33:51 simonb Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.115 2021/01/14 08:00:45 simonb Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -93,6 +93,7 @@ __KERNEL_RCSID(0, "$NetBSD: netbsd32_ioc #include #include +#include #include /* convert to/from different structures */ @@ -261,6 +262,30 @@ netbsd32_to_atareq(struct netbsd32_atare } static inline void +netbsd32_to_fss_set(struct netbsd32_fss_set *s32p, struct fss_set *p, +u_long cmd) +{ + + p->fss_mount = (char *)NETBSD32PTR64(s32p->fss_mount); + p->fss_bstore = (char *)NETBSD32PTR64(s32p->fss_bstore); + p->fss_csize = s32p->fss_csize; + p->fss_flags = s32p->fss_flags; +} + +static inline void +netbsd32_to_fss_get(struct netbsd32_fss_get *s32p, struct fss_get *p, +u_long cmd) +{ + + memcpy(p->fsg_mount, s32p->fsg_mount, MNAMELEN); + netbsd32_to_timeval(&s32p->fsg_time, &p->fsg_time); + p->fsg_csize = s32p->fsg_csize; + p->fsg_mount_size = s32p->fsg_mount_size; + p->fsg_bs_size = s32p->fsg_bs_size; + +} + +static inline void netbsd32_to_vnd_ioctl(struct netbsd32_vnd_ioctl *s32p, struct vnd_ioctl *p, u_long cmd) { @@ -749,6 +774,30 @@ netbsd32_from_atareq(struct atareq *p, } static inline void +netbsd32_from_fss_set(struct fss_set *p, struct netbsd32_fss_set *s32p, +u_long cmd) +{ + + NETBSD32PTR32(s32p->fss_mount, p->fss_mount); + NETBSD32PTR32(s32p->fss_bstore, p->fss_bstore); + s32p->fss_csize = p->fss_csize; + s32p->fss_flags = p->fss_flags; +} + +static inline void +netbsd32_from_fss_get(struct fss_get *p, struct netbsd32_fss_get *s32p, +u_long cmd) +{ + + memcpy(s32p->fsg_mount, p->fsg_mount, MNAMELEN); + netbsd32_from_timeval(&p->fsg_time, &s32p->fsg_time); + s32p->fsg_csize = p->fsg_csize; + s32p->fsg_mount_size = p->fsg_mount_size; + s32p->fsg_bs_size = p->fsg_bs_size; + +} + +static inline void netbsd32_from_vnd_ioctl(struct vnd_ioctl *p, struct netbsd32_vnd_ioctl *s32p, u_long cmd) { @@ -1446,6 +1495,12 @@ netbsd32_ioctl(struct lwp *l, case SIOCGETSGCNT32: IOCTL_STRUCT_CONV_TO(SIOCGETSGCNT, sioc_sg_req); + case FSSIOCSET32: /* XXX FSSIOCSET50 not yet handled */ + IOCTL_STRUCT_CONV_TO(FSSIOCSET, fss_set); + + case FSSIOCGET32: /* XXX FSSIOCGET50 not yet handled */ + IOCTL_STRUCT_CONV_TO(FSSIOCGET, fss_get); + case VNDIOCSET32: IOCTL_STRUCT_CONV_TO(VNDIOCSET, vnd_ioctl); Index: src/sys/compat/netbsd32/netbsd32_ioctl.h diff -u src/sys/compat/netbsd32/netbsd32_ioctl.h:1.74 src/sys/compat/netbsd32/netbsd32_ioctl.h:1.75 --- src/sys/compat/netbsd32/netbsd32_ioctl.h:1.74 Thu Jan 14 02:43:04 2021 +++ src/sys/compat/netbsd32/netbsd32_ioctl.h Thu Jan 14 08:00:45 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.h,v 1.74 2021/01/14 02:43:04 simonb Exp $ */ +/* $NetBSD: netbsd32_ioctl.h,v 1.75 2021/01/14 08:00:45 simonb Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -477,6 +477,26 @@ struct n
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: simonb Date: Thu Jan 14 02:51:52 UTC 2021 Modified Files: src/sys/compat/netbsd32: netbsd32_lwp.c Log Message: Handle rev 1.62 of kern/sys_lwp.c make _lwp_park return the remaining time to sleep in the "ts" argument if it is a relative timestamp, as discussed in tech-kern. for compat32. Thanks skrll@ for some cleanup tips. To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/sys/compat/netbsd32/netbsd32_lwp.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_lwp.c diff -u src/sys/compat/netbsd32/netbsd32_lwp.c:1.22 src/sys/compat/netbsd32/netbsd32_lwp.c:1.23 --- src/sys/compat/netbsd32/netbsd32_lwp.c:1.22 Wed Jan 29 15:47:52 2020 +++ src/sys/compat/netbsd32/netbsd32_lwp.c Thu Jan 14 02:51:52 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_lwp.c,v 1.22 2020/01/29 15:47:52 ad Exp $ */ +/* $NetBSD: netbsd32_lwp.c,v 1.23 2021/01/14 02:51:52 simonb Exp $ */ /* * Copyright (c) 2005, 2006, 2007, 2020 The NetBSD Foundation. @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_lwp.c,v 1.22 2020/01/29 15:47:52 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_lwp.c,v 1.23 2021/01/14 02:51:52 simonb Exp $"); #include #include @@ -170,6 +170,7 @@ netbsd32lwp_park60(struct lwp *l, } */ struct timespec ts, *tsp; struct netbsd32_timespec ts32; + int ret; int error; if (SCARG_P32(uap, ts) == NULL) @@ -188,7 +189,12 @@ netbsd32lwp_park60(struct lwp *l, return error; } - return lwp_park(SCARG(uap, clock_id), SCARG(uap, flags), tsp); + ret = lwp_park(SCARG(uap, clock_id), SCARG(uap, flags), tsp); + if (SCARG_P32(uap, ts) != NULL && (SCARG(uap, flags) & TIMER_ABSTIME) == 0) { + netbsd32_from_timespec(&ts, &ts32); + (void)copyout(&ts32, SCARG_P32(uap, ts), sizeof(ts32)); + } + return ret; } int
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: simonb Date: Thu Jan 14 02:43:04 UTC 2021 Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.h Log Message: Use netbsd32_* types instead of relying on __packed in the vnd ioctl structures. __packed didn't work on archs where 64-bit types were 64-bit aligned with a 32-bit ABI (eg MIPS n32). OK mrg@ To generate a diff of this commit: cvs rdiff -u -r1.73 -r1.74 src/sys/compat/netbsd32/netbsd32_ioctl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.h diff -u src/sys/compat/netbsd32/netbsd32_ioctl.h:1.73 src/sys/compat/netbsd32/netbsd32_ioctl.h:1.74 --- src/sys/compat/netbsd32/netbsd32_ioctl.h:1.73 Mon Sep 7 03:12:51 2020 +++ src/sys/compat/netbsd32/netbsd32_ioctl.h Thu Jan 14 02:43:04 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.h,v 1.73 2020/09/07 03:12:51 mrg Exp $ */ +/* $NetBSD: netbsd32_ioctl.h,v 1.74 2021/01/14 02:43:04 simonb Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -42,6 +42,8 @@ #include #include +#include + /* we define some handy macros here... */ #define IOCTL_STRUCT_CONV_TO(cmd, type) \ size = IOCPARM_LEN(cmd); \ @@ -475,23 +477,19 @@ struct netbsd32_sioc_sg_req { /* from */ #define SIOCGETSGCNT32 _IOWR('u', 52, struct netbsd32_sioc_sg_req) /* sg pkt cnt */ -/* - * The next two structures are marked "__packed" as they normally end up - * being padded in 64-bit mode. - */ struct netbsd32_vnd_ioctl { netbsd32_charp vnd_file; /* pathname of file to mount */ int vnd_flags; /* flags; see below */ struct vndgeom vnd_geom; /* geometry to emulate */ unsigned int vnd_osize; /* (returned) size of disk */ - uint64_t vnd_size; /* (returned) size of disk */ -} __packed; + netbsd32_uint64 vnd_size; /* (returned) size of disk */ +}; struct netbsd32_vnd_user { int vnu_unit; /* which vnd unit */ - dev_t vnu_dev; /* file is on this device... */ - ino_t vnu_ino; /* ...at this inode */ -} __packed; + netbsd32_dev_t vnu_dev; /* file is on this device... */ + netbsd32_ino_t vnu_ino; /* ...at this inode */ +}; /* from */ #define VNDIOCSET32 _IOWR('F', 0, struct netbsd32_vnd_ioctl) /* enable disk */
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: rin Date: Sun Nov 8 07:30:09 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_core.c Log Message: Fix typo; s/__LP64/_LP64/ To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 src/sys/compat/netbsd32/netbsd32_core.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_core.c diff -u src/sys/compat/netbsd32/netbsd32_core.c:1.17 src/sys/compat/netbsd32/netbsd32_core.c:1.18 --- src/sys/compat/netbsd32/netbsd32_core.c:1.17 Wed Nov 4 20:54:20 2020 +++ src/sys/compat/netbsd32/netbsd32_core.c Sun Nov 8 07:30:09 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_core.c,v 1.17 2020/11/04 20:54:20 pgoyette Exp $ */ +/* $NetBSD: netbsd32_core.c,v 1.18 2020/11/08 07:30:09 rin Exp $ */ /* * Copyright (c) 1997 Charles D. Cranor and Washington University. @@ -45,7 +45,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_core.c,v 1.17 2020/11/04 20:54:20 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_core.c,v 1.18 2020/11/08 07:30:09 rin Exp $"); #include #include @@ -72,13 +72,13 @@ compat_netbsd32_coredump_modcmd(modcmd_t switch (cmd) { case MODULE_CMD_INIT: MODULE_HOOK_SET(coredump_netbsd32_hook, real_coredump_netbsd32); -#if defined(EXEC_ELF32) && defined(__LP64) +#if defined(EXEC_ELF32) && defined(_LP64) MODULE_HOOK_SET(coredump_elf32_hook, real_coredump_elf32); #endif return 0; case MODULE_CMD_FINI: MODULE_HOOK_UNSET(coredump_netbsd32_hook); -#if defined(EXEC_ELF32) && defined(__LP64) +#if defined(EXEC_ELF32) && defined(_LP64) MODULE_HOOK_UNSET(coredump_elf32_hook); #endif return 0;
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: rin Date: Thu Oct 15 23:06:06 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_wait.c Log Message: wait4(2): make error paths match with that of native wait4(2): https://nxr.netbsd.org/xref/src/sys/kern/kern_exit.c#720 To generate a diff of this commit: cvs rdiff -u -r1.23 -r1.24 src/sys/compat/netbsd32/netbsd32_wait.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_wait.c diff -u src/sys/compat/netbsd32/netbsd32_wait.c:1.23 src/sys/compat/netbsd32/netbsd32_wait.c:1.24 --- src/sys/compat/netbsd32/netbsd32_wait.c:1.23 Fri Sep 23 14:09:39 2016 +++ src/sys/compat/netbsd32/netbsd32_wait.c Thu Oct 15 23:06:06 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_wait.c,v 1.23 2016/09/23 14:09:39 skrll Exp $ */ +/* $NetBSD: netbsd32_wait.c,v 1.24 2020/10/15 23:06:06 rin Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_wait.c,v 1.23 2016/09/23 14:09:39 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_wait.c,v 1.24 2020/10/15 23:06:06 rin Exp $"); #include #include @@ -66,14 +66,15 @@ netbsd32___wait450(struct lwp *l, const if (pid == 0) return error; - if (SCARG_P32(uap, rusage)) { + if (SCARG_P32(uap, status)) + error = copyout(&status, SCARG_P32(uap, status), + sizeof(status)); + + if (SCARG_P32(uap, rusage) && error == 0) { netbsd32_from_rusage(&ru, &ru32); error = copyout(&ru32, SCARG_P32(uap, rusage), sizeof(ru32)); } - if (error == 0 && SCARG_P32(uap, status)) - error = copyout(&status, SCARG_P32(uap, status), sizeof(status)); - return error; }
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: rin Date: Sat Oct 10 00:03:53 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_syscall.h netbsd32_syscallargs.h netbsd32_syscalls.c netbsd32_syscalls_autoload.c netbsd32_sysent.c netbsd32_systrace_args.c Log Message: regen for getrandom(2) To generate a diff of this commit: cvs rdiff -u -r1.154 -r1.155 src/sys/compat/netbsd32/netbsd32_syscall.h cvs rdiff -u -r1.153 -r1.154 src/sys/compat/netbsd32/netbsd32_syscallargs.h \ src/sys/compat/netbsd32/netbsd32_syscalls.c cvs rdiff -u -r1.33 -r1.34 \ src/sys/compat/netbsd32/netbsd32_syscalls_autoload.c cvs rdiff -u -r1.152 -r1.153 src/sys/compat/netbsd32/netbsd32_sysent.c cvs rdiff -u -r1.44 -r1.45 src/sys/compat/netbsd32/netbsd32_systrace_args.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_syscall.h diff -u src/sys/compat/netbsd32/netbsd32_syscall.h:1.154 src/sys/compat/netbsd32/netbsd32_syscall.h:1.155 --- src/sys/compat/netbsd32/netbsd32_syscall.h:1.154 Sat May 16 18:31:48 2020 +++ src/sys/compat/netbsd32/netbsd32_syscall.h Sat Oct 10 00:03:52 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: netbsd32_syscall.h,v 1.154 2020/05/16 18:31:48 christos Exp $ */ +/* $NetBSD: netbsd32_syscall.h,v 1.155 2020/10/10 00:03:52 rin Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.137 2020/04/26 19:18:36 thorpej Exp + * created from NetBSD: syscalls.master,v 1.139 2020/10/10 00:00:54 rin Exp */ #ifndef _NETBSD32_SYS_SYSCALL_H_ @@ -271,6 +271,9 @@ /* syscall: "netbsd32_dup2" ret: "int" args: "int" "int" */ #define NETBSD32_SYS_netbsd32_dup2 90 +/* syscall: "netbsd32_getrandom" ret: "netbsd32_ssize_t" args: "netbsd32_voidp" "netbsd32_size_t" "unsigned int" */ +#define NETBSD32_SYS_netbsd32_getrandom 91 + /* syscall: "netbsd32_fcntl" ret: "int" args: "int" "int" "..." */ #define NETBSD32_SYS_netbsd32_fcntl 92 Index: src/sys/compat/netbsd32/netbsd32_syscallargs.h diff -u src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.153 src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.154 --- src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.153 Sat May 16 18:31:48 2020 +++ src/sys/compat/netbsd32/netbsd32_syscallargs.h Sat Oct 10 00:03:52 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: netbsd32_syscallargs.h,v 1.153 2020/05/16 18:31:48 christos Exp $ */ +/* $NetBSD: netbsd32_syscallargs.h,v 1.154 2020/10/10 00:03:52 rin Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.137 2020/04/26 19:18:36 thorpej Exp + * created from NetBSD: syscalls.master,v 1.139 2020/10/10 00:00:54 rin Exp */ #ifndef _NETBSD32_SYS_SYSCALLARGS_H_ @@ -471,6 +471,13 @@ struct netbsd32_dup2_args { }; check_syscall_args(netbsd32_dup2) +struct netbsd32_getrandom_args { + syscallarg(netbsd32_voidp) buf; + syscallarg(netbsd32_size_t) buflen; + syscallarg(unsigned int) flags; +}; +check_syscall_args(netbsd32_getrandom) + struct netbsd32_fcntl_args { syscallarg(int) fd; syscallarg(int) cmd; @@ -2928,6 +2935,8 @@ int compat_43_sys_getdtablesize(struct l int netbsd32_dup2(struct lwp *, const struct netbsd32_dup2_args *, register_t *); +int netbsd32_getrandom(struct lwp *, const struct netbsd32_getrandom_args *, register_t *); + int netbsd32_fcntl(struct lwp *, const struct netbsd32_fcntl_args *, register_t *); int compat_50_netbsd32_select(struct lwp *, const struct compat_50_netbsd32_select_args *, register_t *); Index: src/sys/compat/netbsd32/netbsd32_syscalls.c diff -u src/sys/compat/netbsd32/netbsd32_syscalls.c:1.153 src/sys/compat/netbsd32/netbsd32_syscalls.c:1.154 --- src/sys/compat/netbsd32/netbsd32_syscalls.c:1.153 Sat May 16 18:31:48 2020 +++ src/sys/compat/netbsd32/netbsd32_syscalls.c Sat Oct 10 00:03:53 2020 @@ -1,14 +1,14 @@ -/* $NetBSD: netbsd32_syscalls.c,v 1.153 2020/05/16 18:31:48 christos Exp $ */ +/* $NetBSD: netbsd32_syscalls.c,v 1.154 2020/10/10 00:03:53 rin Exp $ */ /* * System call names. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.137 2020/04/26 19:18:36 thorpej Exp + * created from NetBSD: syscalls.master,v 1.139 2020/10/10 00:00:54 rin Exp */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_syscalls.c,v 1.153 2020/05/16 18:31:48 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_syscalls.c,v 1.154 2020/10/10 00:03:53 rin Exp $"); #if defined(_KERNEL_OPT) #if defined(_KERNEL_OPT) @@ -121,7 +121,7 @@ const char *const netbsd32_syscallnames[ /* 88 */ "compat_43_netbsd32_osethostname", /* 89 */ "compat_43_ogetdtablesize", /* 90 */ "netbsd32_dup2", - /* 91 */ "#91 (unimplemented getdopt)", + /* 91 */ "netbsd32_getrandom", /* 92 */ "netbsd32_fcntl", /* 93 */ "compat_50_netbsd32_select", /*
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: rin Date: Sat Oct 10 00:00:54 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_netbsd.c syscalls.master Log Message: Teach about getrandom(2) to COMPAT_NETBSD32. To generate a diff of this commit: cvs rdiff -u -r1.229 -r1.230 src/sys/compat/netbsd32/netbsd32_netbsd.c cvs rdiff -u -r1.138 -r1.139 src/sys/compat/netbsd32/syscalls.master Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_netbsd.c diff -u src/sys/compat/netbsd32/netbsd32_netbsd.c:1.229 src/sys/compat/netbsd32/netbsd32_netbsd.c:1.230 --- src/sys/compat/netbsd32/netbsd32_netbsd.c:1.229 Sat May 16 18:31:48 2020 +++ src/sys/compat/netbsd32/netbsd32_netbsd.c Sat Oct 10 00:00:54 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_netbsd.c,v 1.229 2020/05/16 18:31:48 christos Exp $ */ +/* $NetBSD: netbsd32_netbsd.c,v 1.230 2020/10/10 00:00:54 rin Exp $ */ /* * Copyright (c) 1998, 2001, 2008, 2018 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.229 2020/05/16 18:31:48 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.230 2020/10/10 00:00:54 rin Exp $"); /* * below are all the standard NetBSD system calls, in the 32bit @@ -2607,6 +2607,22 @@ netbsd32__pset_bind(struct lwp *l, return sys__pset_bind(l, &ua, retval); } +int +netbsd32_getrandom(struct lwp *l, const struct netbsd32_getrandom_args *uap, +register_t *retval) +{ + /* { + syscallarg(netbsd32_voidp) buf; + syscallarg(netbsd32_size_t) buflen; + syscallarg(unsigned) flags; + } */ + struct sys_getrandom_args ua; + + NETBSD32TOP_UAP(buf, void *); + NETBSD32TOX_UAP(buflen, size_t); + NETBSD32TO64_UAP(flags); + return sys_getrandom(l, &ua, retval); +} /* * MI indirect system call support. Index: src/sys/compat/netbsd32/syscalls.master diff -u src/sys/compat/netbsd32/syscalls.master:1.138 src/sys/compat/netbsd32/syscalls.master:1.139 --- src/sys/compat/netbsd32/syscalls.master:1.138 Sat May 16 18:31:48 2020 +++ src/sys/compat/netbsd32/syscalls.master Sat Oct 10 00:00:54 2020 @@ -1,4 +1,4 @@ - $NetBSD: syscalls.master,v 1.138 2020/05/16 18:31:48 christos Exp $ + $NetBSD: syscalls.master,v 1.139 2020/10/10 00:00:54 rin Exp $ ; from: NetBSD: syscalls.master,v 1.81 1998/07/05 08:49:50 jonathan Exp ; @(#)syscalls.master 8.2 (Berkeley) 1/13/94 @@ -235,7 +235,9 @@ 89 COMPAT_43 MODULAR compat_43 \ { int|sys||getdtablesize(void); } ogetdtablesize 90 STD { int|netbsd32||dup2(int from, int to); } -91 UNIMPL getdopt +91 STD { netbsd32_ssize_t|netbsd32||getrandom( \ + netbsd32_voidp buf, netbsd32_size_t buflen, \ + unsigned int flags); } 92 STD { int|netbsd32||fcntl(int fd, int cmd, \ ... netbsd32_voidp arg); } 93 COMPAT_50 MODULAR compat_netbsd32_50 \
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mrg Date: Mon Sep 7 03:12:51 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.h Log Message: remove __packed from struct netbsd32_lsdisable. the structure is already properly aligned (the embedded int64 already has align(4) marker applied where needed.) same size structure generated. To generate a diff of this commit: cvs rdiff -u -r1.72 -r1.73 src/sys/compat/netbsd32/netbsd32_ioctl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.h diff -u src/sys/compat/netbsd32/netbsd32_ioctl.h:1.72 src/sys/compat/netbsd32/netbsd32_ioctl.h:1.73 --- src/sys/compat/netbsd32/netbsd32_ioctl.h:1.72 Tue Jul 21 05:33:51 2020 +++ src/sys/compat/netbsd32/netbsd32_ioctl.h Mon Sep 7 03:12:51 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.h,v 1.72 2020/07/21 05:33:51 simonb Exp $ */ +/* $NetBSD: netbsd32_ioctl.h,v 1.73 2020/09/07 03:12:51 mrg Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -645,7 +645,7 @@ struct netbsd32_lsdisable { netbsd32_size_t ld_size; /* buffer space allocated */ struct netbsd32_timespec ld_time; /* time spent enabled */ uint64_t ld_freq[64]; /* counter HZ by CPU number */ -} __packed; +}; #define IOC_LOCKSTAT_ENABLE32 _IOW('L', 1, struct netbsd32_lsenable) #define IOC_LOCKSTAT_DISABLE32 _IOR('L', 2, struct netbsd32_lsdisable)
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: simonb Date: Tue Jul 21 05:33:51 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.c netbsd32_ioctl.h Log Message: Add lockstat(1) ioctl handling. mrg@: "looks ok." To generate a diff of this commit: cvs rdiff -u -r1.113 -r1.114 src/sys/compat/netbsd32/netbsd32_ioctl.c cvs rdiff -u -r1.71 -r1.72 src/sys/compat/netbsd32/netbsd32_ioctl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.113 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.114 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.113 Sat Jul 18 12:46:19 2020 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Tue Jul 21 05:33:51 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.113 2020/07/18 12:46:19 jmcneill Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.114 2020/07/21 05:33:51 simonb Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.113 2020/07/18 12:46:19 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.114 2020/07/21 05:33:51 simonb Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -1043,6 +1043,54 @@ netbsd32_from_dkwedge_list(const struct s32p->dkwl_ncopied = p->dkwl_ncopied; } +static inline void +netbsd32_to_lsenable(struct netbsd32_lsenable *le32, struct lsenable *le, +u_long cmd) +{ + + le->le_csstart = le32->le_csstart; + le->le_csend = le32->le_csend; + le->le_lockstart = le32->le_lockstart; + le->le_lockend = le32->le_lockend; + le->le_nbufs = le32->le_nbufs; + le->le_flags = le32->le_flags; + le->le_mask = le32->le_mask; +} + +static inline void +netbsd32_from_lsenable(struct lsenable *le, struct netbsd32_lsenable *le32, +u_long cmd) +{ + + le32->le_csstart = le->le_csstart; + le32->le_csend = le->le_csend; + le32->le_lockstart = le->le_lockstart; + le32->le_lockend = le->le_lockend; + le32->le_nbufs = le->le_nbufs; + le32->le_flags = le->le_flags; + le32->le_mask = le->le_mask; +} + +static inline void +netbsd32_to_lsdisable(struct netbsd32_lsdisable *ld32, struct lsdisable *ld, +u_long cmd) +{ + + ld->ld_size = ld32->ld_size; + netbsd32_to_timespec(&ld32->ld_time, &ld->ld_time); + memcpy(&ld->ld_time, &ld32->ld_time, sizeof(ld->ld_time)); +} + +static inline void +netbsd32_from_lsdisable(struct lsdisable *ld, struct netbsd32_lsdisable *ld32, +u_long cmd) +{ + + ld->ld_size = ld32->ld_size; + netbsd32_from_timespec(&ld->ld_time, &ld32->ld_time); + memcpy(&ld->ld_time, &ld32->ld_time, sizeof(ld->ld_time)); +} + #ifdef NTP static int netbsd32_do_clockctl_ntp_adjtime(struct file *fp, @@ -1540,6 +1588,11 @@ netbsd32_ioctl(struct lwp *l, case DIOCLWEDGES32: IOCTL_STRUCT_CONV_TO(DIOCLWEDGES, dkwedge_list); + case IOC_LOCKSTAT_ENABLE32: + IOCTL_STRUCT_CONV_TO(IOC_LOCKSTAT_ENABLE, lsenable); + case IOC_LOCKSTAT_DISABLE32: + IOCTL_STRUCT_CONV_TO(IOC_LOCKSTAT_DISABLE, lsdisable); + default: #ifdef NETBSD32_DRMKMS if (IOCGROUP(com) == 'd') { Index: src/sys/compat/netbsd32/netbsd32_ioctl.h diff -u src/sys/compat/netbsd32/netbsd32_ioctl.h:1.71 src/sys/compat/netbsd32/netbsd32_ioctl.h:1.72 --- src/sys/compat/netbsd32/netbsd32_ioctl.h:1.71 Sat Jul 18 12:46:19 2020 +++ src/sys/compat/netbsd32/netbsd32_ioctl.h Tue Jul 21 05:33:51 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.h,v 1.71 2020/07/18 12:46:19 jmcneill Exp $ */ +/* $NetBSD: netbsd32_ioctl.h,v 1.72 2020/07/21 05:33:51 simonb Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -35,6 +35,7 @@ #include #include +#include #include #include #include @@ -629,4 +630,24 @@ struct netbsd32_disk_strategy { #define DIOCGSTRATEGY32 _IOR('d', 125, struct netbsd32_disk_strategy) #define DIOCSSTRATEGY32 _IOW('d', 126, struct netbsd32_disk_strategy) +/* from */ +struct netbsd32_lsenable { + netbsd32_uintptr_t le_csstart; /* callsite start */ + netbsd32_uintptr_t le_csend; /* callsite end */ + netbsd32_uintptr_t le_lockstart; /* lock address start */ + netbsd32_uintptr_t le_lockend; /* lock address end */ + netbsd32_uintptr_t le_nbufs; /* buffers to allocate, 0 = default */ + u_int le_flags; /* request flags */ + u_int le_mask; /* event mask (LB_*) */ +}; + +struct netbsd32_lsdisable { + netbsd32_size_t ld_size; /* buffer space allocated */ + struct netbsd32_timespec ld_time; /* time spent enabled */ + uint64_t ld_freq[64]; /* counter HZ by CPU number */ +} __packed; + +#define IOC_LOCKSTAT_ENABLE32 _IOW('L', 1, struct netbsd32_lsenable) +#define IOC_LOCKSTAT_DISABLE32 _IOR('L', 2, struct netbsd32_lsdisable) + int netbsd32_drm_ioctl(struct file *, unsigned long, void *, struct lwp *);
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: jmcneill Date: Sat Jul 18 12:46:19 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.c netbsd32_ioctl.h Log Message: Add BIOCSETWF32 (bpf) To generate a diff of this commit: cvs rdiff -u -r1.112 -r1.113 src/sys/compat/netbsd32/netbsd32_ioctl.c cvs rdiff -u -r1.70 -r1.71 src/sys/compat/netbsd32/netbsd32_ioctl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.112 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.113 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.112 Mon Mar 16 01:37:51 2020 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Sat Jul 18 12:46:19 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.112 2020/03/16 01:37:51 christos Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.113 2020/07/18 12:46:19 jmcneill Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.112 2020/03/16 01:37:51 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.113 2020/07/18 12:46:19 jmcneill Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -1425,6 +1425,8 @@ netbsd32_ioctl(struct lwp *l, case BIOCSETF32: IOCTL_STRUCT_CONV_TO(BIOCSETF, bpf_program); + case BIOCSETWF32: + IOCTL_STRUCT_CONV_TO(BIOCSETWF, bpf_program); case BIOCSTCPF32: IOCTL_STRUCT_CONV_TO(BIOCSTCPF, bpf_program); case BIOCSUDPF32: Index: src/sys/compat/netbsd32/netbsd32_ioctl.h diff -u src/sys/compat/netbsd32/netbsd32_ioctl.h:1.70 src/sys/compat/netbsd32/netbsd32_ioctl.h:1.71 --- src/sys/compat/netbsd32/netbsd32_ioctl.h:1.70 Mon Nov 18 04:17:08 2019 +++ src/sys/compat/netbsd32/netbsd32_ioctl.h Sat Jul 18 12:46:19 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.h,v 1.70 2019/11/18 04:17:08 rin Exp $ */ +/* $NetBSD: netbsd32_ioctl.h,v 1.71 2020/07/18 12:46:19 jmcneill Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -120,6 +120,7 @@ struct netbsd32_bpf_dltlist { #define BIOCSUDPF32 _IOW('B',115, struct netbsd32_bpf_program) #define BIOCGDLTLIST32 _IOWR('B',119, struct netbsd32_bpf_dltlist) #define BIOCSRTIMEOUT32 _IOW('B',122, struct netbsd32_timeval) +#define BIOCSETWF32 _IOW('B',127, struct netbsd32_bpf_program) struct netbsd32_wsdisplay_addscreendata {
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: christos Date: Mon Apr 27 17:37:34 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_fs.c Log Message: data_len == 0 on mount means "the kernel knows". Fixes amd on compat32. To generate a diff of this commit: cvs rdiff -u -r1.88 -r1.89 src/sys/compat/netbsd32/netbsd32_fs.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_fs.c diff -u src/sys/compat/netbsd32/netbsd32_fs.c:1.88 src/sys/compat/netbsd32/netbsd32_fs.c:1.89 --- src/sys/compat/netbsd32/netbsd32_fs.c:1.88 Tue Apr 21 17:42:47 2020 +++ src/sys/compat/netbsd32/netbsd32_fs.c Mon Apr 27 13:37:34 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_fs.c,v 1.88 2020/04/21 21:42:47 ad Exp $ */ +/* $NetBSD: netbsd32_fs.c,v 1.89 2020/04/27 17:37:34 christos Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_fs.c,v 1.88 2020/04/21 21:42:47 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_fs.c,v 1.89 2020/04/27 17:37:34 christos Exp $"); #include #include @@ -829,7 +829,7 @@ netbsd32___mount50(struct lwp *l, const return error; if (strcmp(mtype, MOUNT_TMPFS) == 0) { - if (data_len < sizeof(fs_args32.tmpfs_args)) + if (data_len != 0 && data_len < sizeof(fs_args32.tmpfs_args)) return EINVAL; if ((flags & MNT_GETARGS) == 0) { error = copyin(data, &fs_args32.tmpfs_args, @@ -853,7 +853,7 @@ netbsd32___mount50(struct lwp *l, const data = &fs_args.tmpfs_args; data_len = sizeof(fs_args.tmpfs_args); } else if (strcmp(mtype, MOUNT_MFS) == 0) { - if (data_len < sizeof(fs_args32.mfs_args)) + if (data_len != 0 && data_len < sizeof(fs_args32.mfs_args)) return EINVAL; if ((flags & MNT_GETARGS) == 0) { error = copyin(data, &fs_args32.mfs_args, @@ -874,7 +874,7 @@ netbsd32___mount50(struct lwp *l, const } else if ((strcmp(mtype, MOUNT_UFS) == 0) || (strcmp(mtype, MOUNT_EXT2FS) == 0) || (strcmp(mtype, MOUNT_LFS) == 0)) { - if (data_len < sizeof(fs_args32.ufs_args)) + if (data_len != 0 && data_len < sizeof(fs_args32.ufs_args)) return EINVAL; if ((flags & MNT_GETARGS) == 0) { error = copyin(data, &fs_args32.ufs_args, @@ -888,7 +888,7 @@ netbsd32___mount50(struct lwp *l, const data = &fs_args.ufs_args; data_len = sizeof(fs_args.ufs_args); } else if (strcmp(mtype, MOUNT_CD9660) == 0) { - if (data_len < sizeof(fs_args32.iso_args)) + if (data_len != 0 && data_len < sizeof(fs_args32.iso_args)) return EINVAL; if ((flags & MNT_GETARGS) == 0) { error = copyin(data, &fs_args32.iso_args, @@ -935,7 +935,7 @@ netbsd32___mount50(struct lwp *l, const data = &fs_args.msdosfs_args; data_len = sizeof(fs_args.msdosfs_args); } else if (strcmp(mtype, MOUNT_NFS) == 0) { - if (data_len < sizeof(fs_args32.nfs_args)) + if (data_len != 0 && data_len < sizeof(fs_args32.nfs_args)) return EINVAL; /* XXX: NFS requires copyin even with MNT_GETARGS */ if ((flags & MNT_GETARGS) == 0) { @@ -963,7 +963,7 @@ netbsd32___mount50(struct lwp *l, const data = &fs_args.nfs_args; data_len = sizeof(fs_args.nfs_args); } else if (strcmp(mtype, MOUNT_NULL) == 0) { - if (data_len < sizeof(fs_args32.null_args)) + if (data_len != 0 && data_len < sizeof(fs_args32.null_args)) return EINVAL; if ((flags & MNT_GETARGS) == 0) { error = copyin(data, &fs_args32.null_args, @@ -988,7 +988,8 @@ netbsd32___mount50(struct lwp *l, const if (flags & MNT_GETARGS) { data_len = *retval; if (strcmp(mtype, MOUNT_TMPFS) == 0) { - if (data_len != sizeof(fs_args.tmpfs_args)) + if (data_len != 0 && + data_len != sizeof(fs_args.tmpfs_args)) return EINVAL; fs_args32.tmpfs_args.ta_version = fs_args.tmpfs_args.ta_version; @@ -1006,7 +1007,8 @@ netbsd32___mount50(struct lwp *l, const sizeof(fs_args32.tmpfs_args)); *retval = sizeof(fs_args32.tmpfs_args); } else if (strcmp(mtype, MOUNT_MFS) == 0) { - if (data_len != sizeof(fs_args.mfs_args)) + if (data_len != 0 && + data_len != sizeof(fs_args.mfs_args)) return EINVAL; NETBSD32PTR32(fs_args32.mfs_args.fspec, fs_args.mfs_args.fspec); @@ -1019,7 +1021,8 @@ netbsd32___mount50(struct lwp *l, const sizeof(fs_args32.mfs_args)); *retval = sizeof(fs_args32.mfs_args); } else if (strcmp(mtype, MOUNT_UFS) == 0) { - if (data_len != sizeof(fs_args.ufs_args)) + if (data_len != 0 && + data_len != sizeof(fs_args.ufs_args)) return EINVAL; NETBSD32PTR32(fs_args32.ufs_args.fspec, fs_args.ufs_args.fspec); @@ -1027,7 +1030,8 @@ netbsd32___mount50(struct lwp *l, const sizeof(fs_args32.ufs_args)); *retval = sizeof(fs_args32.ufs_args); } else if (strcmp(mtype, MOUNT_CD9660) == 0) { - if (data_len != sizeof(fs_args.iso_args)) + if (data_len != 0 && + data_len != sizeof(fs_args.iso_a
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: thorpej Date: Sun Apr 26 19:18:52 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_syscall.h netbsd32_syscallargs.h netbsd32_syscalls.c netbsd32_syscalls_autoload.c netbsd32_sysent.c netbsd32_systrace_args.c Log Message: Regen for native futex calls. To generate a diff of this commit: cvs rdiff -u -r1.152 -r1.153 src/sys/compat/netbsd32/netbsd32_syscall.h cvs rdiff -u -r1.151 -r1.152 src/sys/compat/netbsd32/netbsd32_syscallargs.h \ src/sys/compat/netbsd32/netbsd32_syscalls.c cvs rdiff -u -r1.31 -r1.32 \ src/sys/compat/netbsd32/netbsd32_syscalls_autoload.c cvs rdiff -u -r1.150 -r1.151 src/sys/compat/netbsd32/netbsd32_sysent.c cvs rdiff -u -r1.42 -r1.43 src/sys/compat/netbsd32/netbsd32_systrace_args.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_syscall.h diff -u src/sys/compat/netbsd32/netbsd32_syscall.h:1.152 src/sys/compat/netbsd32/netbsd32_syscall.h:1.153 --- src/sys/compat/netbsd32/netbsd32_syscall.h:1.152 Wed Apr 22 21:25:17 2020 +++ src/sys/compat/netbsd32/netbsd32_syscall.h Sun Apr 26 19:18:52 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: netbsd32_syscall.h,v 1.152 2020/04/22 21:25:17 thorpej Exp $ */ +/* $NetBSD: netbsd32_syscall.h,v 1.153 2020/04/26 19:18:52 thorpej Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.135 2020/04/22 21:22:21 thorpej Exp + * created from NetBSD: syscalls.master,v 1.137 2020/04/26 19:18:36 thorpej Exp */ #ifndef _NETBSD32_SYS_SYSCALL_H_ @@ -462,6 +462,15 @@ /* syscall: "netbsd32_sysarch" ret: "int" args: "int" "netbsd32_voidp" */ #define NETBSD32_SYS_netbsd32_sysarch 165 +/* syscall: "netbsd32___futex" ret: "int" args: "netbsd32_intp" "int" "int" "const netbsd32_timespecp_t" "netbsd32_intp" "int" "int" */ +#define NETBSD32_SYS_netbsd32___futex 166 + +/* syscall: "netbsd32___futex_set_robust_list" ret: "int" args: "netbsd32_voidp" "netbsd32_size_t" */ +#define NETBSD32_SYS_netbsd32___futex_set_robust_list 167 + +/* syscall: "netbsd32___futex_get_robust_list" ret: "int" args: "lwpid_t" "netbsd32_voidp" "netbsd32_size_tp" */ +#define NETBSD32_SYS_netbsd32___futex_get_robust_list 168 + /* syscall: "compat_10_osemsys" ret: "int" args: "int" "int" "int" "int" "int" */ #define NETBSD32_SYS_compat_10_osemsys 169 Index: src/sys/compat/netbsd32/netbsd32_syscallargs.h diff -u src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.151 src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.152 --- src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.151 Wed Apr 22 21:25:17 2020 +++ src/sys/compat/netbsd32/netbsd32_syscallargs.h Sun Apr 26 19:18:52 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: netbsd32_syscallargs.h,v 1.151 2020/04/22 21:25:17 thorpej Exp $ */ +/* $NetBSD: netbsd32_syscallargs.h,v 1.152 2020/04/26 19:18:52 thorpej Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.135 2020/04/22 21:22:21 thorpej Exp + * created from NetBSD: syscalls.master,v 1.137 2020/04/26 19:18:36 thorpej Exp */ #ifndef _NETBSD32_SYS_SYSCALLARGS_H_ @@ -864,6 +864,30 @@ struct netbsd32_sysarch_args { }; check_syscall_args(netbsd32_sysarch) +struct netbsd32___futex_args { + syscallarg(netbsd32_intp) uaddr; + syscallarg(int) op; + syscallarg(int) val; + syscallarg(const netbsd32_timespecp_t) timeout; + syscallarg(netbsd32_intp) uaddr2; + syscallarg(int) val2; + syscallarg(int) val3; +}; +check_syscall_args(netbsd32___futex) + +struct netbsd32___futex_set_robust_list_args { + syscallarg(netbsd32_voidp) head; + syscallarg(netbsd32_size_t) len; +}; +check_syscall_args(netbsd32___futex_set_robust_list) + +struct netbsd32___futex_get_robust_list_args { + syscallarg(lwpid_t) lwpid; + syscallarg(netbsd32_voidp) headp; + syscallarg(netbsd32_size_tp) lenp; +}; +check_syscall_args(netbsd32___futex_get_robust_list) + struct compat_10_netbsd32_semsys_args { syscallarg(int) which; syscallarg(int) a2; @@ -2941,6 +2965,12 @@ int compat_09_netbsd32_uname(struct lwp int netbsd32_sysarch(struct lwp *, const struct netbsd32_sysarch_args *, register_t *); +int netbsd32___futex(struct lwp *, const struct netbsd32___futex_args *, register_t *); + +int netbsd32___futex_set_robust_list(struct lwp *, const struct netbsd32___futex_set_robust_list_args *, register_t *); + +int netbsd32___futex_get_robust_list(struct lwp *, const struct netbsd32___futex_get_robust_list_args *, register_t *); + int compat_10_netbsd32_semsys(struct lwp *, const struct compat_10_netbsd32_semsys_args *, register_t *); int compat_10_netbsd32_msgsys(struct lwp *, const struct compat_10_netbsd32_msgsys_args *, register_t *); Index: src/sys/compat/netbsd32/netbsd32_syscalls.c diff -u src/sys/compat/netbsd32/netbsd32_syscalls.c:1.151 src/
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: thorpej Date: Sun Apr 26 19:18:36 UTC 2020 Modified Files: src/sys/compat/netbsd32: syscalls.master Log Message: Mirror the change made to native -- move futex calls to 166-168. To generate a diff of this commit: cvs rdiff -u -r1.136 -r1.137 src/sys/compat/netbsd32/syscalls.master Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/syscalls.master diff -u src/sys/compat/netbsd32/syscalls.master:1.136 src/sys/compat/netbsd32/syscalls.master:1.137 --- src/sys/compat/netbsd32/syscalls.master:1.136 Sun Apr 26 18:53:33 2020 +++ src/sys/compat/netbsd32/syscalls.master Sun Apr 26 19:18:36 2020 @@ -1,4 +1,4 @@ - $NetBSD: syscalls.master,v 1.136 2020/04/26 18:53:33 thorpej Exp $ + $NetBSD: syscalls.master,v 1.137 2020/04/26 19:18:36 thorpej Exp $ ; from: NetBSD: syscalls.master,v 1.81 1998/07/05 08:49:50 jonathan Exp ; @(#)syscalls.master 8.2 (Berkeley) 1/13/94 @@ -398,9 +398,13 @@ 164 COMPAT_09 MODULAR compat_netbsd32_09 \ { int|netbsd32||uname(netbsd32_outsnamep_t name); } 165 STD { int|netbsd32||sysarch(int op, netbsd32_voidp parms); } -166 UNIMPL -167 UNIMPL -168 UNIMPL +166 STD { int|netbsd32||__futex(netbsd32_intp uaddr, int op, \ + int val, const netbsd32_timespecp_t timeout, \ + netbsd32_intp uaddr2, int val2, int val3); } +167 STD { int|netbsd32||__futex_set_robust_list( \ + netbsd32_voidp head, netbsd32_size_t len); } +168 STD { int|netbsd32||__futex_get_robust_list(lwpid_t lwpid, \ + netbsd32_voidp headp, netbsd32_size_tp lenp); } 169 COMPAT_10 MODULAR compat_netbsd32_sysvipc_10 \ { int|netbsd32||semsys(int which, int a2, int a3, \ int a4, int a5); } osemsys @@ -1168,10 +1172,3 @@ 486 STD { int|netbsd32|90|fhstatvfs1(netbsd32_voidp fhp, \ netbsd32_size_t fh_size, netbsd32_statvfsp_t buf, \ int flags); } -487 STD { int|netbsd32||__futex(netbsd32_intp uaddr, int op, \ - int val, const netbsd32_timespecp_t timeout, \ - netbsd32_intp uaddr2, int val2, int val3); } -488 STD { int|netbsd32||__futex_set_robust_list( \ - netbsd32_voidp head, netbsd32_size_t len); } -489 STD { int|netbsd32||__futex_get_robust_list(lwpid_t lwpid, \ - netbsd32_voidp headp, netbsd32_size_tp lenp); }
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: pgoyette Date: Sat Mar 21 16:17:08 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_mod.c netbsd32_sysctl.c Added Files: src/sys/compat/netbsd32: netbsd32_sysctl.h Log Message: Restore code to sysctl_free() the compat32 shadow tree To generate a diff of this commit: cvs rdiff -u -r1.21 -r1.22 src/sys/compat/netbsd32/netbsd32_mod.c cvs rdiff -u -r1.43 -r1.44 src/sys/compat/netbsd32/netbsd32_sysctl.c cvs rdiff -u -r0 -r1.3 src/sys/compat/netbsd32/netbsd32_sysctl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_mod.c diff -u src/sys/compat/netbsd32/netbsd32_mod.c:1.21 src/sys/compat/netbsd32/netbsd32_mod.c:1.22 --- src/sys/compat/netbsd32/netbsd32_mod.c:1.21 Sun Mar 15 14:15:12 2020 +++ src/sys/compat/netbsd32/netbsd32_mod.c Sat Mar 21 16:17:08 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_mod.c,v 1.21 2020/03/15 14:15:12 pgoyette Exp $ */ +/* $NetBSD: netbsd32_mod.c,v 1.22 2020/03/21 16:17:08 pgoyette Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -59,7 +59,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_mod.c,v 1.21 2020/03/15 14:15:12 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_mod.c,v 1.22 2020/03/21 16:17:08 pgoyette Exp $"); #ifdef _KERNEL_OPT #include "opt_execfmt.h" @@ -76,6 +76,7 @@ __KERNEL_RCSID(0, "$NetBSD: netbsd32_mod #include #include +#include #include #include @@ -180,6 +181,7 @@ compat_netbsd32_modcmd(modcmd_t cmd, voi MODULE_HOOK_UNSET(amd64_oosyscall_hook); #endif /* defined(__amd64__) */ netbsd32_machdep_md_fini(); + netbsd32_sysctl_fini(); netbsd32_kern_proc_32_fini(); error = exec_remove(netbsd32_execsw, Index: src/sys/compat/netbsd32/netbsd32_sysctl.c diff -u src/sys/compat/netbsd32/netbsd32_sysctl.c:1.43 src/sys/compat/netbsd32/netbsd32_sysctl.c:1.44 --- src/sys/compat/netbsd32/netbsd32_sysctl.c:1.43 Tue Mar 17 17:16:26 2020 +++ src/sys/compat/netbsd32/netbsd32_sysctl.c Sat Mar 21 16:17:08 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_sysctl.c,v 1.43 2020/03/17 17:16:26 pgoyette Exp $ */ +/* $NetBSD: netbsd32_sysctl.c,v 1.44 2020/03/21 16:17:08 pgoyette Exp $ */ /* * Copyright (c) 2003 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_sysctl.c,v 1.43 2020/03/17 17:16:26 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_sysctl.c,v 1.44 2020/03/21 16:17:08 pgoyette Exp $"); #if defined(_KERNEL_OPT) #include "opt_ddb.h" @@ -57,6 +57,7 @@ __KERNEL_RCSID(0, "$NetBSD: netbsd32_sys #include #include #include +#include #if defined(DDB) #include @@ -180,6 +181,13 @@ SYSCTL_SETUP(netbsd32_sysctl_emul_setup, CTL_HW, HW_MACHINE_ARCH, CTL_EOL); } +void +netbsd32_sysctl_fini(void) +{ + + sysctl_free(&netbsd32_sysctl_root); +} + int netbsd32___sysctl(struct lwp *l, const struct netbsd32___sysctl_args *uap, register_t *retval) { Added files: Index: src/sys/compat/netbsd32/netbsd32_sysctl.h diff -u /dev/null src/sys/compat/netbsd32/netbsd32_sysctl.h:1.3 --- /dev/null Sat Mar 21 16:17:08 2020 +++ src/sys/compat/netbsd32/netbsd32_sysctl.h Sat Mar 21 16:17:08 2020 @@ -0,0 +1,37 @@ +/* $NetBSD: netbsd32_sysctl.h,v 1.3 2020/03/21 16:17:08 pgoyette Exp $ */ + +/*- + * Copyright (c) 2008 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software developed for The NetBSD Foundation + * by Andrew Doran. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _NETBSD32_SYSCTL_H +#define _NETBSD32_SYSCTL_H + +void netbsd32_sysctl_fini(void); + +#e
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: pgoyette Date: Tue Mar 17 17:16:26 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_sysctl.c Log Message: Remove a debug printf() that accidentally got committed. :( To generate a diff of this commit: cvs rdiff -u -r1.42 -r1.43 src/sys/compat/netbsd32/netbsd32_sysctl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_sysctl.c diff -u src/sys/compat/netbsd32/netbsd32_sysctl.c:1.42 src/sys/compat/netbsd32/netbsd32_sysctl.c:1.43 --- src/sys/compat/netbsd32/netbsd32_sysctl.c:1.42 Sun Mar 15 14:15:12 2020 +++ src/sys/compat/netbsd32/netbsd32_sysctl.c Tue Mar 17 17:16:26 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_sysctl.c,v 1.42 2020/03/15 14:15:12 pgoyette Exp $ */ +/* $NetBSD: netbsd32_sysctl.c,v 1.43 2020/03/17 17:16:26 pgoyette Exp $ */ /* * Copyright (c) 2003 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_sysctl.c,v 1.42 2020/03/15 14:15:12 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_sysctl.c,v 1.43 2020/03/17 17:16:26 pgoyette Exp $"); #if defined(_KERNEL_OPT) #include "opt_ddb.h" @@ -122,7 +122,6 @@ SYSCTL_SETUP(netbsd32_sysctl_emul_setup, const struct sysctlnode *_root = &netbsd32_sysctl_root; extern const char machine32[]; - printf("%s: called\n", __func__); /* XXX PRG */ sysctl_createv(clog, 0, &_root, NULL, CTLFLAG_PERMANENT, CTLTYPE_NODE, "kern", NULL,
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: christos Date: Mon Mar 16 01:37:51 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.c Log Message: Unfortunately all the clockctl ioctls contain pointers to structs instead of the structs themselves, so they need special handling. Undo previous and do the permissions checks explicitly. It would be better to fix the clockctl ioctls to contain the structs themselves... To generate a diff of this commit: cvs rdiff -u -r1.111 -r1.112 src/sys/compat/netbsd32/netbsd32_ioctl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.111 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.112 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.111 Sun Mar 15 20:05:29 2020 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Sun Mar 15 21:37:51 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.111 2020/03/16 00:05:29 christos Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.112 2020/03/16 01:37:51 christos Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.111 2020/03/16 00:05:29 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.112 2020/03/16 01:37:51 christos Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -64,6 +64,10 @@ __KERNEL_RCSID(0, "$NetBSD: netbsd32_ioc #include #include +#include +#include +#include + #ifdef __sparc__ #include #include @@ -498,6 +502,7 @@ netbsd32_to_clockctl_clock_settime( p->tp = NETBSD32PTR64(s32p->tp); } +#ifdef NTP static inline void netbsd32_to_clockctl_ntp_adjtime( const struct netbsd32_clockctl_ntp_adjtime *s32p, @@ -507,6 +512,7 @@ netbsd32_to_clockctl_ntp_adjtime( p->tp = NETBSD32PTR64(s32p->tp); p->retval = s32p->retval; } +#endif static inline void netbsd32_to_ksyms_gsymbol(const struct netbsd32_ksyms_gsymbol *s32p, @@ -945,6 +951,7 @@ netbsd32_from_clockctl_clock_settime(con NETBSD32PTR32(s32p->tp, p->tp); } +#ifdef NTP static inline void netbsd32_from_clockctl_ntp_adjtime(const struct clockctl_ntp_adjtime *p, struct netbsd32_clockctl_ntp_adjtime *s32p, u_long cmd) @@ -953,6 +960,7 @@ netbsd32_from_clockctl_ntp_adjtime(const NETBSD32PTR32(s32p->tp, p->tp); s32p->retval = p->retval; } +#endif static inline void netbsd32_from_ksyms_gsymbol( const struct ksyms_gsymbol *p, @@ -1035,6 +1043,51 @@ netbsd32_from_dkwedge_list(const struct s32p->dkwl_ncopied = p->dkwl_ncopied; } +#ifdef NTP +static int +netbsd32_do_clockctl_ntp_adjtime(struct file *fp, +struct clockctl_ntp_adjtime *args) +{ + struct vnode *vp; + struct specnode *sn; + const char *name; + + struct netbsd32_timex ntv32; + struct timex ntv; + int error; + + /* Verify that the file descriptor is is to the clockctl device */ + if (fp->f_type != DTYPE_VNODE) + return EINVAL; + + vp = fp->f_vnode; + if (vp->v_type != VCHR) + return EINVAL; + + sn = vp->v_specnode; + name = cdevsw_getname(major(sn->sn_rdev)); + if (name == NULL || strcmp(name, "clockctl") != 0) + return EINVAL; + + if (vec_ntp_adjtime1 == NULL) + return EINVAL; + + error = copyin(args->tp, &ntv32, sizeof(ntv32)); + if (error) + return error; + + netbsd32_to_timex(&ntv32, &ntv); + (*vec_ntp_adjtime1)(&ntv); + netbsd32_from_timex(&ntv, &ntv32); + + error = copyout(&ntv32, args->tp, sizeof(ntv32)); + if (error == 0) + args->retval = ntp_timestatus(); + + return error; +} +#endif + /* * main ioctl syscall. * @@ -1425,8 +1478,32 @@ netbsd32_ioctl(struct lwp *l, IOCTL_STRUCT_CONV_TO(CLOCKCTL_CLOCK_SETTIME, clockctl_clock_settime); case CLOCKCTL_NTP_ADJTIME32: - IOCTL_STRUCT_CONV_TO(CLOCKCTL_NTP_ADJTIME, - clockctl_ntp_adjtime); +#ifdef NTP + { + size = IOCPARM_LEN(CLOCKCTL_NTP_ADJTIME); + if (size > sizeof(stkbuf)) +data = memp = kmem_alloc(size, KM_SLEEP); + else +data = (void *)stkbuf; + + netbsd32_to_clockctl_ntp_adjtime( +(const struct netbsd32_clockctl_ntp_adjtime *)data32, +(struct clockctl_ntp_adjtime *)data, +CLOCKCTL_NTP_ADJTIME); + error = netbsd32_do_clockctl_ntp_adjtime(fp, +(struct clockctl_ntp_adjtime *)data); + netbsd32_from_clockctl_ntp_adjtime( +(const struct clockctl_ntp_adjtime *)data, +(struct netbsd32_clockctl_ntp_adjtime *)data32, +CLOCKCTL_NTP_ADJTIME); + + break; + } +#else + error = ENOTTY; + break; +#endif /* NTP */ + case KIOCGSYMBOL32: IOCTL_STRUCT_CONV_TO(KIOCGSYMBOL, ksyms_gsymbol); case KIOCGVALUE32:
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: christos Date: Mon Mar 16 00:05:29 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.c Log Message: Don't open-code ioctls, pass back to the 64 bit ones (found by maxv@), To generate a diff of this commit: cvs rdiff -u -r1.110 -r1.111 src/sys/compat/netbsd32/netbsd32_ioctl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.110 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.111 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.110 Sat Mar 14 00:39:15 2020 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Sun Mar 15 20:05:29 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.110 2020/03/14 04:39:15 maxv Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.111 2020/03/16 00:05:29 christos Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.110 2020/03/14 04:39:15 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.111 2020/03/16 00:05:29 christos Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -498,7 +498,6 @@ netbsd32_to_clockctl_clock_settime( p->tp = NETBSD32PTR64(s32p->tp); } -#ifdef NTP static inline void netbsd32_to_clockctl_ntp_adjtime( const struct netbsd32_clockctl_ntp_adjtime *s32p, @@ -508,7 +507,6 @@ netbsd32_to_clockctl_ntp_adjtime( p->tp = NETBSD32PTR64(s32p->tp); p->retval = s32p->retval; } -#endif static inline void netbsd32_to_ksyms_gsymbol(const struct netbsd32_ksyms_gsymbol *s32p, @@ -947,7 +945,6 @@ netbsd32_from_clockctl_clock_settime(con NETBSD32PTR32(s32p->tp, p->tp); } -#ifdef NTP static inline void netbsd32_from_clockctl_ntp_adjtime(const struct clockctl_ntp_adjtime *p, struct netbsd32_clockctl_ntp_adjtime *s32p, u_long cmd) @@ -956,7 +953,6 @@ netbsd32_from_clockctl_ntp_adjtime(const NETBSD32PTR32(s32p->tp, p->tp); s32p->retval = p->retval; } -#endif static inline void netbsd32_from_ksyms_gsymbol( const struct ksyms_gsymbol *p, @@ -1039,34 +1035,6 @@ netbsd32_from_dkwedge_list(const struct s32p->dkwl_ncopied = p->dkwl_ncopied; } -#ifdef NTP -static int -netbsd32_do_clockctl_ntp_adjtime(struct clockctl_ntp_adjtime *args) -{ - - struct netbsd32_timex ntv32; - struct timex ntv; - int error; - - if (vec_ntp_adjtime1 == NULL) - return EINVAL; - - error = copyin(args->tp, &ntv32, sizeof(ntv32)); - if (error) - return error; - - netbsd32_to_timex(&ntv32, &ntv); - (*vec_ntp_adjtime1)(&ntv); - netbsd32_from_timex(&ntv, &ntv32); - - error = copyout(&ntv32, args->tp, sizeof(ntv32)); - if (error == 0) - args->retval = ntp_timestatus(); - - return error; -} -#endif - /* * main ioctl syscall. * @@ -1457,32 +1425,8 @@ netbsd32_ioctl(struct lwp *l, IOCTL_STRUCT_CONV_TO(CLOCKCTL_CLOCK_SETTIME, clockctl_clock_settime); case CLOCKCTL_NTP_ADJTIME32: -#ifdef NTP - { - size = IOCPARM_LEN(CLOCKCTL_NTP_ADJTIME); - if (size > sizeof(stkbuf)) -data = memp = kmem_alloc(size, KM_SLEEP); - else -data = (void *)stkbuf; - - netbsd32_to_clockctl_ntp_adjtime( -(const struct netbsd32_clockctl_ntp_adjtime *)data32, -(struct clockctl_ntp_adjtime *)data, -CLOCKCTL_NTP_ADJTIME); - error = netbsd32_do_clockctl_ntp_adjtime( -(struct clockctl_ntp_adjtime *)data); - netbsd32_from_clockctl_ntp_adjtime( -(const struct clockctl_ntp_adjtime *)data, -(struct netbsd32_clockctl_ntp_adjtime *)data32, -CLOCKCTL_NTP_ADJTIME); - - break; - } -#else - error = ENOTTY; - break; -#endif /* NTP */ - + IOCTL_STRUCT_CONV_TO(CLOCKCTL_NTP_ADJTIME, + clockctl_ntp_adjtime); case KIOCGSYMBOL32: IOCTL_STRUCT_CONV_TO(KIOCGSYMBOL, ksyms_gsymbol); case KIOCGVALUE32:
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: pgoyette Date: Sun Mar 15 14:15:12 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_mod.c netbsd32_sysctl.c Removed Files: src/sys/compat/netbsd32: netbsd32_sysctl.h Log Message: Use SYSCTL_SETUP mechanism to establish our sysctl tree, rather than using explicit calls to netbsd32_sysctl_{init,fini}() To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 src/sys/compat/netbsd32/netbsd32_mod.c cvs rdiff -u -r1.41 -r1.42 src/sys/compat/netbsd32/netbsd32_sysctl.c cvs rdiff -u -r1.1 -r0 src/sys/compat/netbsd32/netbsd32_sysctl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_mod.c diff -u src/sys/compat/netbsd32/netbsd32_mod.c:1.20 src/sys/compat/netbsd32/netbsd32_mod.c:1.21 --- src/sys/compat/netbsd32/netbsd32_mod.c:1.20 Mon Mar 9 21:49:26 2020 +++ src/sys/compat/netbsd32/netbsd32_mod.c Sun Mar 15 14:15:12 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_mod.c,v 1.20 2020/03/09 21:49:26 pgoyette Exp $ */ +/* $NetBSD: netbsd32_mod.c,v 1.21 2020/03/15 14:15:12 pgoyette Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -59,7 +59,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_mod.c,v 1.20 2020/03/09 21:49:26 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_mod.c,v 1.21 2020/03/15 14:15:12 pgoyette Exp $"); #ifdef _KERNEL_OPT #include "opt_execfmt.h" @@ -76,7 +76,6 @@ __KERNEL_RCSID(0, "$NetBSD: netbsd32_mod #include #include -#include #include #include @@ -167,7 +166,6 @@ compat_netbsd32_modcmd(modcmd_t cmd, voi error = exec_add(netbsd32_execsw, __arraycount(netbsd32_execsw)); if (error == 0) { - netbsd32_sysctl_init(); netbsd32_machdep_md_init(); netbsd32_kern_proc_32_init(); #if defined(__amd64__) @@ -182,14 +180,12 @@ compat_netbsd32_modcmd(modcmd_t cmd, voi MODULE_HOOK_UNSET(amd64_oosyscall_hook); #endif /* defined(__amd64__) */ netbsd32_machdep_md_fini(); - netbsd32_sysctl_fini(); netbsd32_kern_proc_32_fini(); error = exec_remove(netbsd32_execsw, __arraycount(netbsd32_execsw)); if (error) { netbsd32_kern_proc_32_init(); - netbsd32_sysctl_init(); netbsd32_machdep_md_init(); #if defined(__amd64__) MODULE_HOOK_SET(amd64_oosyscall_hook, Index: src/sys/compat/netbsd32/netbsd32_sysctl.c diff -u src/sys/compat/netbsd32/netbsd32_sysctl.c:1.41 src/sys/compat/netbsd32/netbsd32_sysctl.c:1.42 --- src/sys/compat/netbsd32/netbsd32_sysctl.c:1.41 Thu Jan 2 15:42:26 2020 +++ src/sys/compat/netbsd32/netbsd32_sysctl.c Sun Mar 15 14:15:12 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_sysctl.c,v 1.41 2020/01/02 15:42:26 thorpej Exp $ */ +/* $NetBSD: netbsd32_sysctl.c,v 1.42 2020/03/15 14:15:12 pgoyette Exp $ */ /* * Copyright (c) 2003 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_sysctl.c,v 1.41 2020/01/02 15:42:26 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_sysctl.c,v 1.42 2020/03/15 14:15:12 pgoyette Exp $"); #if defined(_KERNEL_OPT) #include "opt_ddb.h" @@ -57,7 +57,6 @@ __KERNEL_RCSID(0, "$NetBSD: netbsd32_sys #include #include #include -#include #if defined(DDB) #include @@ -70,8 +69,6 @@ struct sysctlnode netbsd32_sysctl_root = .sysctl_size = sizeof(struct sysctlnode), }; -static struct sysctllog *netbsd32_clog; - /* * sysctl helper routine for netbsd32's kern.boottime node */ @@ -120,78 +117,70 @@ sysctl_hw_machine_arch32(SYSCTLFN_ARGS) return sysctl_lookup(SYSCTLFN_CALL(&node)); } -void -netbsd32_sysctl_init(void) +SYSCTL_SETUP(netbsd32_sysctl_emul_setup, "netbsd32 shadow tree") { const struct sysctlnode *_root = &netbsd32_sysctl_root; extern const char machine32[]; - sysctl_createv(&netbsd32_clog, 0, &_root, NULL, + printf("%s: called\n", __func__); /* XXX PRG */ + sysctl_createv(clog, 0, &_root, NULL, CTLFLAG_PERMANENT, CTLTYPE_NODE, "kern", NULL, NULL, 0, NULL, 0, CTL_KERN, CTL_EOL); - sysctl_createv(&netbsd32_clog, 0, &_root, NULL, + sysctl_createv(clog, 0, &_root, NULL, CTLFLAG_PERMANENT, CTLTYPE_STRUCT, "boottime", NULL, netbsd32_sysctl_kern_boottime, 0, NULL, sizeof(struct netbsd32_timeval), CTL_KERN, KERN_BOOTTIME, CTL_EOL); - sysctl_createv(&netbsd32_clog, 0, &_root, NULL, + sysctl_createv(clog, 0, &_root, NULL, CTLFLAG_PERMANENT, CTLTYPE_NODE, "vm", NULL, NULL, 0, NULL, 0, CTL_VM, CTL_EOL); - sysctl_createv(&netbsd32_clog, 0, &_root, NULL, + sysctl_createv(clog, 0, &_root, NULL, CTLFLAG_PERMANENT, CTLTYPE_STRUCT, "loadavg", NULL, netbsd32_sysctl_vm_loadavg, 0, NULL, sizeof(struct netbsd32_loadavg), CTL_VM, VM_LOADAVG, CTL_EOL); - sysctl_createv(&netbsd32_clog, 0, &_root, NULL, + sysctl_createv(clog, 0, &_root
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: pgoyette Date: Sun Mar 15 12:46:02 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_compat_50.c Log Message: Now that we have split the quota code out of the compat_netbsd32_50 module, it no longer depends on compat_50_quota. Should address PR kern/55073 To generate a diff of this commit: cvs rdiff -u -r1.47 -r1.48 src/sys/compat/netbsd32/netbsd32_compat_50.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_compat_50.c diff -u src/sys/compat/netbsd32/netbsd32_compat_50.c:1.47 src/sys/compat/netbsd32/netbsd32_compat_50.c:1.48 --- src/sys/compat/netbsd32/netbsd32_compat_50.c:1.47 Thu Mar 12 15:02:29 2020 +++ src/sys/compat/netbsd32/netbsd32_compat_50.c Sun Mar 15 12:46:02 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_50.c,v 1.47 2020/03/12 15:02:29 pgoyette Exp $ */ +/* $NetBSD: netbsd32_compat_50.c,v 1.48 2020/03/15 12:46:02 pgoyette Exp $ */ /*- * Copyright (c) 2008, 2020 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.47 2020/03/12 15:02:29 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.48 2020/03/15 12:46:02 pgoyette Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd.h" @@ -1013,9 +1013,7 @@ static struct syscall_package compat_net { 0, 0, NULL } }; -MODULE(MODULE_CLASS_EXEC, compat_netbsd32_50, -"compat_netbsd32_60,compat_50,compat_50_quota"); - +MODULE(MODULE_CLASS_EXEC, compat_netbsd32_50, "compat_netbsd32_60,compat_50"); static int compat_netbsd32_50_modcmd(modcmd_t cmd, void *arg)
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: maxv Date: Sat Mar 14 04:39:15 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.c Log Message: wrong size passed to copyout To generate a diff of this commit: cvs rdiff -u -r1.109 -r1.110 src/sys/compat/netbsd32/netbsd32_ioctl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.109 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.110 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.109 Tue Feb 11 06:33:51 2020 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Sat Mar 14 04:39:15 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.109 2020/02/11 06:33:51 mlelstv Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.110 2020/03/14 04:39:15 maxv Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.109 2020/02/11 06:33:51 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.110 2020/03/14 04:39:15 maxv Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -1059,7 +1059,7 @@ netbsd32_do_clockctl_ntp_adjtime(struct (*vec_ntp_adjtime1)(&ntv); netbsd32_from_timex(&ntv, &ntv32); - error = copyout(&ntv32, args->tp, sizeof(ntv)); + error = copyout(&ntv32, args->tp, sizeof(ntv32)); if (error == 0) args->retval = ntp_timestatus();
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: pgoyette Date: Thu Mar 12 15:03:15 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_syscall.h netbsd32_syscallargs.h netbsd32_syscalls.c netbsd32_syscalls_autoload.c netbsd32_sysent.c netbsd32_systrace_args.c Log Message: regen To generate a diff of this commit: cvs rdiff -u -r1.149 -r1.150 src/sys/compat/netbsd32/netbsd32_syscall.h cvs rdiff -u -r1.148 -r1.149 src/sys/compat/netbsd32/netbsd32_syscallargs.h \ src/sys/compat/netbsd32/netbsd32_syscalls.c cvs rdiff -u -r1.28 -r1.29 \ src/sys/compat/netbsd32/netbsd32_syscalls_autoload.c cvs rdiff -u -r1.147 -r1.148 src/sys/compat/netbsd32/netbsd32_sysent.c cvs rdiff -u -r1.39 -r1.40 src/sys/compat/netbsd32/netbsd32_systrace_args.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_syscall.h diff -u src/sys/compat/netbsd32/netbsd32_syscall.h:1.149 src/sys/compat/netbsd32/netbsd32_syscall.h:1.150 --- src/sys/compat/netbsd32/netbsd32_syscall.h:1.149 Sat Mar 7 00:57:31 2020 +++ src/sys/compat/netbsd32/netbsd32_syscall.h Thu Mar 12 15:03:15 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: netbsd32_syscall.h,v 1.149 2020/03/07 00:57:31 pgoyette Exp $ */ +/* $NetBSD: netbsd32_syscall.h,v 1.150 2020/03/12 15:03:15 pgoyette Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.132 2020/03/07 00:56:41 pgoyette Exp + * created from NetBSD: syscalls.master,v 1.133 2020/03/12 15:02:29 pgoyette Exp */ #ifndef _NETBSD32_SYS_SYSCALL_H_ @@ -428,13 +428,9 @@ /* syscall: "setsid" ret: "int" args: */ #define NETBSD32_SYS_setsid 147 -#if defined(QUOTA) || !defined(_KERNEL_OPT) /* syscall: "compat_50_netbsd32_quotactl" ret: "int" args: "netbsd32_charp" "int" "int" "netbsd32_voidp" */ #define NETBSD32_SYS_compat_50_netbsd32_quotactl 148 -#else -/* 148 is excluded compat_netbsd32_quotactl */ -#endif /* 149 is excluded compat_netbsd32_quota */ /* syscall: "compat_43_netbsd32_ogetsockname" ret: "int" args: "int" "netbsd32_voidp" "netbsd32_intp" */ #define NETBSD32_SYS_compat_43_netbsd32_ogetsockname 150 @@ -1237,13 +1233,9 @@ /* syscall: "netbsd32_futimens" ret: "int" args: "int" "const netbsd32_timespecp_t" */ #define NETBSD32_SYS_netbsd32_futimens 472 -#if defined(QUOTA) || !defined(_KERNEL_OPT) /* syscall: "netbsd32___quotactl" ret: "int" args: "const netbsd32_charp" "netbsd32_voidp" */ #define NETBSD32_SYS_netbsd32___quotactl 473 -#else -/* 473 is excluded netbsd32___quotactl */ -#endif /* syscall: "netbsd32_posix_spawn" ret: "int" args: "netbsd32_pid_tp" "const netbsd32_charp" "const netbsd32_posix_spawn_file_actionsp" "const netbsd32_posix_spawnattrp" "netbsd32_charpp" "netbsd32_charpp" */ #define NETBSD32_SYS_netbsd32_posix_spawn 474 Index: src/sys/compat/netbsd32/netbsd32_syscallargs.h diff -u src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.148 src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.149 --- src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.148 Sat Mar 7 00:57:31 2020 +++ src/sys/compat/netbsd32/netbsd32_syscallargs.h Thu Mar 12 15:03:15 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: netbsd32_syscallargs.h,v 1.148 2020/03/07 00:57:31 pgoyette Exp $ */ +/* $NetBSD: netbsd32_syscallargs.h,v 1.149 2020/03/12 15:03:15 pgoyette Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.132 2020/03/07 00:56:41 pgoyette Exp + * created from NetBSD: syscalls.master,v 1.133 2020/03/12 15:02:29 pgoyette Exp */ #ifndef _NETBSD32_SYS_SYSCALLARGS_H_ @@ -793,7 +793,6 @@ struct compat_43_netbsd32_killpg_args { syscallarg(int) signum; }; check_syscall_args(compat_43_netbsd32_killpg) -#if defined(QUOTA) || !defined(_KERNEL_OPT) struct compat_50_netbsd32_quotactl_args { syscallarg(netbsd32_charp) path; @@ -802,8 +801,6 @@ struct compat_50_netbsd32_quotactl_args syscallarg(netbsd32_voidp) arg; }; check_syscall_args(compat_50_netbsd32_quotactl) -#else -#endif struct compat_43_netbsd32_ogetsockname_args { syscallarg(int) fdec; @@ -2534,15 +2531,12 @@ struct netbsd32_futimens_args { syscallarg(const netbsd32_timespecp_t) tptr; }; check_syscall_args(netbsd32_futimens) -#if defined(QUOTA) || !defined(_KERNEL_OPT) struct netbsd32___quotactl_args { syscallarg(const netbsd32_charp) path; syscallarg(netbsd32_voidp) args; }; check_syscall_args(netbsd32___quotactl) -#else -#endif struct netbsd32_posix_spawn_args { syscallarg(netbsd32_pid_tp) pid; @@ -2925,11 +2919,8 @@ int compat_43_netbsd32_killpg(struct lwp int sys_setsid(struct lwp *, const void *, register_t *); -#if defined(QUOTA) || !defined(_KERNEL_OPT) int compat_50_netbsd32_quotactl(struct lwp *, const struct compat_50_netbsd32_quotactl_args *, register_t *); -#else -#endif i
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: pgoyette Date: Mon Mar 9 01:06:34 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_mod.c Log Message: If a syscall requires a module to be autoloaded, the initial invocation of that syscall will return ERESTART. For amd64's netbsd32_syscall() that means we need to back up the PC saved in the trap frame so we can re-issue the syscall instruction. For "normal" syscall traps, we saved the instruction length in the trap frame, but this was missing for the oosyscall/lcall path. Since the PC was not backed up, the kernel-only value ERESTART was returned to userland, causing all sort of grief for old compat_netbsd32 executables! XXX Pullup-9 To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/sys/compat/netbsd32/netbsd32_mod.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_mod.c diff -u src/sys/compat/netbsd32/netbsd32_mod.c:1.18 src/sys/compat/netbsd32/netbsd32_mod.c:1.19 --- src/sys/compat/netbsd32/netbsd32_mod.c:1.18 Sun Mar 8 04:17:49 2020 +++ src/sys/compat/netbsd32/netbsd32_mod.c Mon Mar 9 01:06:34 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_mod.c,v 1.18 2020/03/08 04:17:49 pgoyette Exp $ */ +/* $NetBSD: netbsd32_mod.c,v 1.19 2020/03/09 01:06:34 pgoyette Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -59,7 +59,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_mod.c,v 1.18 2020/03/08 04:17:49 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_mod.c,v 1.19 2020/03/09 01:06:34 pgoyette Exp $"); #ifdef _KERNEL_OPT #include "opt_execfmt.h" @@ -148,8 +148,9 @@ amd64_oosyscall_handle(struct proc *p, s copyin((void *)frame->tf_rip, tmp, sz) == 0 && memcmp(tmp, lcall, sz) == 0) { - /* Advance past the lcall. */ + /* Advance past the lcall and save instruction size. */ frame->tf_rip += sz; + frame->tf_err = sz; /* Do the syscall */ p->p_md.md_syscall(frame); @@ -157,7 +158,7 @@ amd64_oosyscall_handle(struct proc *p, s } else return EPASSTHROUGH; } -#endif +#endif /* defined(__amd64__) */ static int compat_netbsd32_modcmd(modcmd_t cmd, void *arg) @@ -175,14 +176,14 @@ compat_netbsd32_modcmd(modcmd_t cmd, voi #if defined(__amd64__) MODULE_HOOK_SET(amd64_oosyscall_hook, amd64_oosyscall_handle); -#endif +#endif /* defined(__amd64__) */ } return error; case MODULE_CMD_FINI: #if defined(__amd64__) MODULE_HOOK_UNSET(amd64_oosyscall_hook); -#endif +#endif /* defined(__amd64__) */ netbsd32_machdep_md_fini(); netbsd32_sysctl_fini(); netbsd32_kern_proc_32_fini(); @@ -196,7 +197,7 @@ compat_netbsd32_modcmd(modcmd_t cmd, voi #if defined(__amd64__) MODULE_HOOK_SET(amd64_oosyscall_hook, amd64_oosyscall_handle); -#endif +#endif /* defined(__amd64__) */ } return error;
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: pgoyette Date: Sun Mar 8 04:17:50 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_mod.c Log Message: fix indentation. NFCI To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 src/sys/compat/netbsd32/netbsd32_mod.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_mod.c diff -u src/sys/compat/netbsd32/netbsd32_mod.c:1.17 src/sys/compat/netbsd32/netbsd32_mod.c:1.18 --- src/sys/compat/netbsd32/netbsd32_mod.c:1.17 Sun Mar 8 00:53:12 2020 +++ src/sys/compat/netbsd32/netbsd32_mod.c Sun Mar 8 04:17:49 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_mod.c,v 1.17 2020/03/08 00:53:12 pgoyette Exp $ */ +/* $NetBSD: netbsd32_mod.c,v 1.18 2020/03/08 04:17:49 pgoyette Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -59,7 +59,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_mod.c,v 1.17 2020/03/08 00:53:12 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_mod.c,v 1.18 2020/03/08 04:17:49 pgoyette Exp $"); #ifdef _KERNEL_OPT #include "opt_execfmt.h" @@ -173,7 +173,8 @@ compat_netbsd32_modcmd(modcmd_t cmd, voi netbsd32_machdep_md_init(); netbsd32_kern_proc_32_init(); #if defined(__amd64__) - MODULE_HOOK_SET(amd64_oosyscall_hook, amd64_oosyscall_handle); + MODULE_HOOK_SET(amd64_oosyscall_hook, + amd64_oosyscall_handle); #endif } return error;
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: pgoyette Date: Sat Mar 7 00:57:31 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_syscall.h netbsd32_syscallargs.h netbsd32_syscalls.c netbsd32_syscalls_autoload.c netbsd32_sysent.c netbsd32_systrace_args.c Log Message: Regen To generate a diff of this commit: cvs rdiff -u -r1.148 -r1.149 src/sys/compat/netbsd32/netbsd32_syscall.h cvs rdiff -u -r1.147 -r1.148 src/sys/compat/netbsd32/netbsd32_syscallargs.h \ src/sys/compat/netbsd32/netbsd32_syscalls.c cvs rdiff -u -r1.27 -r1.28 \ src/sys/compat/netbsd32/netbsd32_syscalls_autoload.c cvs rdiff -u -r1.146 -r1.147 src/sys/compat/netbsd32/netbsd32_sysent.c cvs rdiff -u -r1.38 -r1.39 src/sys/compat/netbsd32/netbsd32_systrace_args.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_syscall.h diff -u src/sys/compat/netbsd32/netbsd32_syscall.h:1.148 src/sys/compat/netbsd32/netbsd32_syscall.h:1.149 --- src/sys/compat/netbsd32/netbsd32_syscall.h:1.148 Sat Jan 18 14:07:31 2020 +++ src/sys/compat/netbsd32/netbsd32_syscall.h Sat Mar 7 00:57:31 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: netbsd32_syscall.h,v 1.148 2020/01/18 14:07:31 pgoyette Exp $ */ +/* $NetBSD: netbsd32_syscall.h,v 1.149 2020/03/07 00:57:31 pgoyette Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.131 2020/01/18 07:33:24 kamil Exp + * created from NetBSD: syscalls.master,v 1.132 2020/03/07 00:56:41 pgoyette Exp */ #ifndef _NETBSD32_SYS_SYSCALL_H_ @@ -432,13 +432,10 @@ /* syscall: "compat_50_netbsd32_quotactl" ret: "int" args: "netbsd32_charp" "int" "int" "netbsd32_voidp" */ #define NETBSD32_SYS_compat_50_netbsd32_quotactl 148 -/* syscall: "compat_43_oquota" ret: "int" args: */ -#define NETBSD32_SYS_compat_43_oquota 149 - #else /* 148 is excluded compat_netbsd32_quotactl */ -/* 149 is excluded compat_netbsd32_quota */ #endif +/* 149 is excluded compat_netbsd32_quota */ /* syscall: "compat_43_netbsd32_ogetsockname" ret: "int" args: "int" "netbsd32_voidp" "netbsd32_intp" */ #define NETBSD32_SYS_compat_43_netbsd32_ogetsockname 150 Index: src/sys/compat/netbsd32/netbsd32_syscallargs.h diff -u src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.147 src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.148 --- src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.147 Sat Jan 18 14:07:31 2020 +++ src/sys/compat/netbsd32/netbsd32_syscallargs.h Sat Mar 7 00:57:31 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: netbsd32_syscallargs.h,v 1.147 2020/01/18 14:07:31 pgoyette Exp $ */ +/* $NetBSD: netbsd32_syscallargs.h,v 1.148 2020/03/07 00:57:31 pgoyette Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.131 2020/01/18 07:33:24 kamil Exp + * created from NetBSD: syscalls.master,v 1.132 2020/03/07 00:56:41 pgoyette Exp */ #ifndef _NETBSD32_SYS_SYSCALLARGS_H_ @@ -2928,8 +2928,6 @@ int sys_setsid(struct lwp *, const void #if defined(QUOTA) || !defined(_KERNEL_OPT) int compat_50_netbsd32_quotactl(struct lwp *, const struct compat_50_netbsd32_quotactl_args *, register_t *); -int compat_43_sys_quota(struct lwp *, const void *, register_t *); - #else #endif int compat_43_netbsd32_ogetsockname(struct lwp *, const struct compat_43_netbsd32_ogetsockname_args *, register_t *); Index: src/sys/compat/netbsd32/netbsd32_syscalls.c diff -u src/sys/compat/netbsd32/netbsd32_syscalls.c:1.147 src/sys/compat/netbsd32/netbsd32_syscalls.c:1.148 --- src/sys/compat/netbsd32/netbsd32_syscalls.c:1.147 Sat Jan 18 14:07:31 2020 +++ src/sys/compat/netbsd32/netbsd32_syscalls.c Sat Mar 7 00:57:31 2020 @@ -1,14 +1,14 @@ -/* $NetBSD: netbsd32_syscalls.c,v 1.147 2020/01/18 14:07:31 pgoyette Exp $ */ +/* $NetBSD: netbsd32_syscalls.c,v 1.148 2020/03/07 00:57:31 pgoyette Exp $ */ /* * System call names. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.131 2020/01/18 07:33:24 kamil Exp + * created from NetBSD: syscalls.master,v 1.132 2020/03/07 00:56:41 pgoyette Exp */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_syscalls.c,v 1.147 2020/01/18 14:07:31 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_syscalls.c,v 1.148 2020/03/07 00:57:31 pgoyette Exp $"); #if defined(_KERNEL_OPT) #if defined(_KERNEL_OPT) @@ -180,11 +180,10 @@ const char *const netbsd32_syscallnames[ /* 147 */ "setsid", #if defined(QUOTA) || !defined(_KERNEL_OPT) /* 148 */ "compat_50_netbsd32_quotactl", - /* 149 */ "compat_43_oquota", #else /* 148 */ "#148 (excluded compat_netbsd32_quotactl)", - /* 149 */ "#149 (excluded compat_netbsd32_quota)", #endif + /* 149 */ "#149 (excluded compat_netbsd32_quota)", /* 150 */ "compat_43_netbsd32_ogetsockname", /* 151 */ "#151 (unimplemen
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: pgoyette Date: Sat Mar 7 00:56:41 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_compat_43.c syscalls.master Log Message: Properly mark netbsd32_compat_43 syscalls that are directly implemented by calling their compat_43 equivalents. With these changes, and with built-in versions of COMPAT_NETBSD32, COMPAT_NOMID, and COMPAT_09, I can now run a netbsd-0.9 statically linked i386 (32-bit) version of /bin/ls on a 9.99.x amd64 host! Addresses PR kern/55047 but more changes coming to handle non-built-in modules. XXX pullup-9 To generate a diff of this commit: cvs rdiff -u -r1.59 -r1.60 src/sys/compat/netbsd32/netbsd32_compat_43.c cvs rdiff -u -r1.131 -r1.132 src/sys/compat/netbsd32/syscalls.master Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_compat_43.c diff -u src/sys/compat/netbsd32/netbsd32_compat_43.c:1.59 src/sys/compat/netbsd32/netbsd32_compat_43.c:1.60 --- src/sys/compat/netbsd32/netbsd32_compat_43.c:1.59 Wed Jan 1 09:17:45 2020 +++ src/sys/compat/netbsd32/netbsd32_compat_43.c Sat Mar 7 00:56:41 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_43.c,v 1.59 2020/01/01 09:17:45 maxv Exp $ */ +/* $NetBSD: netbsd32_compat_43.c,v 1.60 2020/03/07 00:56:41 pgoyette Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_43.c,v 1.59 2020/01/01 09:17:45 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_43.c,v 1.60 2020/03/07 00:56:41 pgoyette Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_43.h" @@ -769,6 +769,26 @@ static struct syscall_package compat_net (sy_call_t *)compat_43_netbsd32_sigsetmask }, { NETBSD32_SYS_compat_43_netbsd32_osigstack, 0, (sy_call_t *)compat_43_netbsd32_osigstack }, +/* + * These syscalls are provided by emul_netbsd compat_43 code, but their + * entry points must still be loaded in the emul_netbsd32 disatch table + */ + { NETBSD32_SYS_compat_43_ogetpagesize, 0, + (sy_call_t *)compat_43_sys_getpagesize }, + { NETBSD32_SYS_compat_43_ogetdtablesize, 0, + (sy_call_t *)compat_43_sys_getdtablesize}, + { NETBSD32_SYS_compat_43_ogethostid, 0, + (sy_call_t *)compat_43_sys_gethostid }, + { NETBSD32_SYS_compat_43_owait, 0, + (sy_call_t *)compat_43_sys_wait }, +/* + * Skip oquota since it isn't part of compat_43 + * { NETBSD32_SYS_compat_43_oquota, 0, + * (sy_call_t *)compat_43_sys_quota }, + */ + +/* End of compat_43 syscalls */ + { 0, 0, NULL } }; Index: src/sys/compat/netbsd32/syscalls.master diff -u src/sys/compat/netbsd32/syscalls.master:1.131 src/sys/compat/netbsd32/syscalls.master:1.132 --- src/sys/compat/netbsd32/syscalls.master:1.131 Sat Jan 18 07:33:24 2020 +++ src/sys/compat/netbsd32/syscalls.master Sat Mar 7 00:56:41 2020 @@ -1,4 +1,4 @@ - $NetBSD: syscalls.master,v 1.131 2020/01/18 07:33:24 kamil Exp $ + $NetBSD: syscalls.master,v 1.132 2020/03/07 00:56:41 pgoyette Exp $ ; from: NetBSD: syscalls.master,v 1.81 1998/07/05 08:49:50 jonathan Exp ; @(#)syscalls.master 8.2 (Berkeley) 1/13/94 @@ -183,7 +183,7 @@ { int|netbsd32||ogetkerninfo(int op, \ netbsd32_charp where, netbsd32_intp size, \ int arg); } -64 COMPAT_43 MODULAR compat_netbsd32_43 \ +64 COMPAT_43 MODULAR compat_43 \ { int|sys||getpagesize(void); } ogetpagesize 65 COMPAT_12 MODULAR compat_netbsd32_12 \ { int|netbsd32||msync(netbsd32_voidp addr, \ @@ -219,7 +219,7 @@ { int|netbsd32||setitimer(int which, \ netbsd32_itimerval50p_t itv, \ netbsd32_itimerval50p_t oitv); } -84 COMPAT_43 MODULAR compat_netbsd32_43 \ +84 COMPAT_43 MODULAR compat_43 \ { int|sys||wait(void); } owait 85 COMPAT_12 MODULAR compat_netbsd32_12 \ { int|netbsd32||oswapon(netbsd32_charp name); } @@ -232,7 +232,7 @@ 88 COMPAT_43 MODULAR compat_netbsd32_43 \ { int|netbsd32||osethostname(netbsd32_charp hostname, \ u_int len); } -89 COMPAT_43 MODULAR compat_netbsd32_43 \ +89 COMPAT_43 MODULAR compat_43 \ { int|sys||getdtablesize(void); } ogetdtablesize 90 STD { int|netbsd32||dup2(int from, int to); } 91 UNIMPL getdopt @@ -343,7 +343,7 @@ 141 COMPAT_43 MODULAR compat_netbsd32_43 \ { int|netbsd32||ogetpeername(int fdes, \ netbsd32_voidp asa, netbsd32_intp alen); } -142 COMPAT_43 MODULAR compat_netbsd32_43 \ +142 COMPAT_43 MODULAR compat_43 \ { int32_t|sys||gethostid(void); } ogethostid 143 COMPAT_43 MODULAR compat_netbsd32_43 \ { int|netbsd32||sethostid(int32_t hostid); } @@ -360,12 +360,10 @@ 148 COMPAT_50 MODULAR compat_netbsd32_50 \ { int|netbsd32||quotactl(netbsd32_charp path, int cmd, \ int uid, netbsd32_voidp arg); } -149 COMPAT_43 MODULAR compat_netbsd32_43 \ - { int|sys||quota(void); } oquota #else 148 EXCL compat_netbsd32_quotactl -149 EXCL compat_netbsd32_quota #endif +149 EXCL compat_netbsd
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: pgoyette Date: Fri Mar 6 04:54:08 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32.mk Log Message: According to mrg@ we need to include aarch64 in the list of those that need to support COMPAT_NETBSD32 To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/compat/netbsd32/netbsd32.mk Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32.mk diff -u src/sys/compat/netbsd32/netbsd32.mk:1.1 src/sys/compat/netbsd32/netbsd32.mk:1.2 --- src/sys/compat/netbsd32/netbsd32.mk:1.1 Mon Feb 4 21:57:47 2019 +++ src/sys/compat/netbsd32/netbsd32.mk Fri Mar 6 04:54:08 2020 @@ -1,10 +1,11 @@ -# $NetBSD: netbsd32.mk,v 1.1 2019/02/04 21:57:47 mrg Exp $ +# $NetBSD: netbsd32.mk,v 1.2 2020/03/06 04:54:08 pgoyette Exp $ # makefile fragment that tells you if you should support netbsd32 or not. # include this and check ${COMPAT_USE_NETBSD32} != "no". .if ${MACHINE_ARCH} == "x86_64" \ || ${MACHINE_CPU} == "arm" \ +|| ${MACHINE_CPU} == "aarch64" \ || ${MACHINE_ARCH} == "sparc64" \ || (!empty(MACHINE_ARCH:Mmips64*) && !defined(BSD_MK_COMPAT_FILE)) COMPAT_USE_NETBSD32?=yes
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: pgoyette Date: Thu Feb 27 20:54:24 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_compat_50.c Log Message: Module compat_netbsd32_50 requires module compat_50_quota To generate a diff of this commit: cvs rdiff -u -r1.45 -r1.46 src/sys/compat/netbsd32/netbsd32_compat_50.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_compat_50.c diff -u src/sys/compat/netbsd32/netbsd32_compat_50.c:1.45 src/sys/compat/netbsd32/netbsd32_compat_50.c:1.46 --- src/sys/compat/netbsd32/netbsd32_compat_50.c:1.45 Wed Jan 29 15:47:51 2020 +++ src/sys/compat/netbsd32/netbsd32_compat_50.c Thu Feb 27 20:54:24 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_50.c,v 1.45 2020/01/29 15:47:51 ad Exp $ */ +/* $NetBSD: netbsd32_compat_50.c,v 1.46 2020/02/27 20:54:24 pgoyette Exp $ */ /*- * Copyright (c) 2008, 2020 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.45 2020/01/29 15:47:51 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.46 2020/02/27 20:54:24 pgoyette Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd.h" @@ -1037,7 +1037,9 @@ static struct syscall_package compat_net { 0, 0, NULL } }; -MODULE(MODULE_CLASS_EXEC, compat_netbsd32_50, "compat_netbsd32_60,compat_50"); +MODULE(MODULE_CLASS_EXEC, compat_netbsd32_50, +"compat_netbsd32_60,compat_50,compat_50_quota"); + static int compat_netbsd32_50_modcmd(modcmd_t cmd, void *arg)
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mlelstv Date: Tue Feb 11 06:33:51 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.c Log Message: Where did the +1 came from ? To generate a diff of this commit: cvs rdiff -u -r1.108 -r1.109 src/sys/compat/netbsd32/netbsd32_ioctl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.108 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.109 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.108 Mon Feb 10 22:33:28 2020 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Tue Feb 11 06:33:51 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.108 2020/02/10 22:33:28 mlelstv Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.109 2020/02/11 06:33:51 mlelstv Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.108 2020/02/10 22:33:28 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.109 2020/02/11 06:33:51 mlelstv Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -147,7 +147,7 @@ netbsd32_to_if_addrprefreq(const struct struct if_addrprefreq *ifap, u_long cmd) { - memcpy(ifap->ifap_name, ifap32->ifap_name, IFNAMSIZ+1); + memcpy(ifap->ifap_name, ifap32->ifap_name, IFNAMSIZ); ifap->ifap_preference = ifap32->ifap_preference; memcpy(&ifap->ifap_addr, &ifap32->ifap_addr, uimin(ifap32->ifap_addr.ss_len, _SS_MAXSIZE));
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mlelstv Date: Mon Feb 10 22:33:28 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.c Log Message: Don't use strlcpy to copy untrusted input, it may not be NUL-terminated. To generate a diff of this commit: cvs rdiff -u -r1.107 -r1.108 src/sys/compat/netbsd32/netbsd32_ioctl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.107 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.108 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.107 Sat Feb 1 02:23:03 2020 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Mon Feb 10 22:33:28 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.107 2020/02/01 02:23:03 riastradh Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.108 2020/02/10 22:33:28 mlelstv Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.107 2020/02/01 02:23:03 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.108 2020/02/10 22:33:28 mlelstv Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -147,7 +147,7 @@ netbsd32_to_if_addrprefreq(const struct struct if_addrprefreq *ifap, u_long cmd) { - strlcpy(ifap->ifap_name, ifap32->ifap_name, sizeof(ifap->ifap_name)); + memcpy(ifap->ifap_name, ifap32->ifap_name, IFNAMSIZ+1); ifap->ifap_preference = ifap32->ifap_preference; memcpy(&ifap->ifap_addr, &ifap32->ifap_addr, uimin(ifap32->ifap_addr.ss_len, _SS_MAXSIZE)); @@ -386,7 +386,7 @@ netbsd32_to_ieee80211req(struct netbsd32 struct ieee80211req *ireq, u_long cmd) { - strlcpy(ireq->i_name, ireq32->i_name, IFNAMSIZ); + memcpy(ireq->i_name, ireq32->i_name, IFNAMSIZ); ireq->i_type = ireq32->i_type; ireq->i_val = ireq32->i_val; ireq->i_len = ireq32->i_len; @@ -399,7 +399,7 @@ netbsd32_to_ieee80211_nwkey(struct netbs { int i; - strlcpy(nwk->i_name, nwk32->i_name, IFNAMSIZ); + memcpy(nwk->i_name, nwk32->i_name, IFNAMSIZ); nwk->i_wepon = nwk32->i_wepon; nwk->i_defkid = nwk32->i_defkid; for (i = 0; i < IEEE80211_WEP_NKID; i++) { @@ -630,7 +630,7 @@ netbsd32_from_if_addrprefreq(const struc struct netbsd32_if_addrprefreq *ifap32, u_long cmd) { - strlcpy(ifap32->ifap_name, ifap->ifap_name, sizeof(ifap32->ifap_name)); + memcpy(ifap32->ifap_name, ifap->ifap_name, IFNAMSIZ); ifap32->ifap_preference = ifap->ifap_preference; memcpy(&ifap32->ifap_addr, &ifap->ifap_addr, uimin(ifap->ifap_addr.ss_len, _SS_MAXSIZE)); @@ -865,7 +865,7 @@ netbsd32_from_ieee80211req(struct ieee80 struct netbsd32_ieee80211req *ireq32, u_long cmd) { - strlcpy(ireq32->i_name, ireq->i_name, IFNAMSIZ); + memcpy(ireq32->i_name, ireq->i_name, IFNAMSIZ); ireq32->i_type = ireq->i_type; ireq32->i_val = ireq->i_val; ireq32->i_len = ireq->i_len; @@ -878,7 +878,7 @@ netbsd32_from_ieee80211_nwkey(struct iee { int i; - strlcpy(nwk32->i_name, nwk->i_name, IFNAMSIZ); + memcpy(nwk32->i_name, nwk->i_name, IFNAMSIZ); nwk32->i_wepon = nwk->i_wepon; nwk32->i_defkid = nwk->i_defkid; for (i = 0; i < IEEE80211_WEP_NKID; i++) {
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: pgoyette Date: Sat Jan 18 14:07:31 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_syscall.h netbsd32_syscallargs.h netbsd32_syscalls.c netbsd32_syscalls_autoload.c netbsd32_sysent.c netbsd32_systrace_args.c Log Message: Regen generated files _after_ committing changes to the source file. This gets the "Generated from" comments to use the new version number. No functional change. To generate a diff of this commit: cvs rdiff -u -r1.147 -r1.148 src/sys/compat/netbsd32/netbsd32_syscall.h cvs rdiff -u -r1.146 -r1.147 src/sys/compat/netbsd32/netbsd32_syscallargs.h \ src/sys/compat/netbsd32/netbsd32_syscalls.c cvs rdiff -u -r1.26 -r1.27 \ src/sys/compat/netbsd32/netbsd32_syscalls_autoload.c cvs rdiff -u -r1.145 -r1.146 src/sys/compat/netbsd32/netbsd32_sysent.c cvs rdiff -u -r1.37 -r1.38 src/sys/compat/netbsd32/netbsd32_systrace_args.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_syscall.h diff -u src/sys/compat/netbsd32/netbsd32_syscall.h:1.147 src/sys/compat/netbsd32/netbsd32_syscall.h:1.148 --- src/sys/compat/netbsd32/netbsd32_syscall.h:1.147 Sat Jan 18 07:33:24 2020 +++ src/sys/compat/netbsd32/netbsd32_syscall.h Sat Jan 18 14:07:31 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: netbsd32_syscall.h,v 1.147 2020/01/18 07:33:24 kamil Exp $ */ +/* $NetBSD: netbsd32_syscall.h,v 1.148 2020/01/18 14:07:31 pgoyette Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.130 2019/11/04 11:32:22 rin Exp + * created from NetBSD: syscalls.master,v 1.131 2020/01/18 07:33:24 kamil Exp */ #ifndef _NETBSD32_SYS_SYSCALL_H_ Index: src/sys/compat/netbsd32/netbsd32_syscallargs.h diff -u src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.146 src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.147 --- src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.146 Sat Jan 18 07:33:24 2020 +++ src/sys/compat/netbsd32/netbsd32_syscallargs.h Sat Jan 18 14:07:31 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: netbsd32_syscallargs.h,v 1.146 2020/01/18 07:33:24 kamil Exp $ */ +/* $NetBSD: netbsd32_syscallargs.h,v 1.147 2020/01/18 14:07:31 pgoyette Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.130 2019/11/04 11:32:22 rin Exp + * created from NetBSD: syscalls.master,v 1.131 2020/01/18 07:33:24 kamil Exp */ #ifndef _NETBSD32_SYS_SYSCALLARGS_H_ Index: src/sys/compat/netbsd32/netbsd32_syscalls.c diff -u src/sys/compat/netbsd32/netbsd32_syscalls.c:1.146 src/sys/compat/netbsd32/netbsd32_syscalls.c:1.147 --- src/sys/compat/netbsd32/netbsd32_syscalls.c:1.146 Sat Jan 18 07:33:24 2020 +++ src/sys/compat/netbsd32/netbsd32_syscalls.c Sat Jan 18 14:07:31 2020 @@ -1,14 +1,14 @@ -/* $NetBSD: netbsd32_syscalls.c,v 1.146 2020/01/18 07:33:24 kamil Exp $ */ +/* $NetBSD: netbsd32_syscalls.c,v 1.147 2020/01/18 14:07:31 pgoyette Exp $ */ /* * System call names. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.130 2019/11/04 11:32:22 rin Exp + * created from NetBSD: syscalls.master,v 1.131 2020/01/18 07:33:24 kamil Exp */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_syscalls.c,v 1.146 2020/01/18 07:33:24 kamil Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_syscalls.c,v 1.147 2020/01/18 14:07:31 pgoyette Exp $"); #if defined(_KERNEL_OPT) #if defined(_KERNEL_OPT) Index: src/sys/compat/netbsd32/netbsd32_syscalls_autoload.c diff -u src/sys/compat/netbsd32/netbsd32_syscalls_autoload.c:1.26 src/sys/compat/netbsd32/netbsd32_syscalls_autoload.c:1.27 --- src/sys/compat/netbsd32/netbsd32_syscalls_autoload.c:1.26 Sat Jan 18 07:33:24 2020 +++ src/sys/compat/netbsd32/netbsd32_syscalls_autoload.c Sat Jan 18 14:07:31 2020 @@ -1,14 +1,14 @@ -/* $NetBSD: netbsd32_syscalls_autoload.c,v 1.26 2020/01/18 07:33:24 kamil Exp $ */ +/* $NetBSD: netbsd32_syscalls_autoload.c,v 1.27 2020/01/18 14:07:31 pgoyette Exp $ */ /* * System call autoload table. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.130 2019/11/04 11:32:22 rin Exp + * created from NetBSD: syscalls.master,v 1.131 2020/01/18 07:33:24 kamil Exp */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_syscalls_autoload.c,v 1.26 2020/01/18 07:33:24 kamil Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_syscalls_autoload.c,v 1.27 2020/01/18 14:07:31 pgoyette Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd.h" Index: src/sys/compat/netbsd32/netbsd32_sysent.c diff -u src/sys/compat/netbsd32/netbsd32_sysent.c:1.145 src/sys/compat/netbsd32/netbsd32_sysent.c:1.146 --- src/sys/compat/netbsd32/netbsd32_sysent.c:1.145 Sat Jan 18 07:33:24 2020 +++ src/sys/compat/netbsd32/netbsd32_sysent.c Sat Jan 18 1
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: kamil Date: Sat Jan 18 07:33:24 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_syscall.h netbsd32_syscallargs.h netbsd32_syscalls.c netbsd32_syscalls_autoload.c netbsd32_sysent.c netbsd32_systrace_args.c syscalls.master Log Message: Catch up after getpid/getgid/getuid changes in native ABI in 2008 getpid(), getuid() and getgid() used to call respectively sys_getpid(), sys_getuid() and sys_getgid(). In the BSD4.3 compat mode there was a fallback to call sys_getpid_with_ppid() and related functions. In 2008 the compat ifdef was removed in sys/kern/syscalls.master r. 1.216. For purity reasons we probably shall restore the NetBSD original behavior and implement BSD4.3 one as a compat module, however it is not worth the complexity. Align the netbsd32 compat ABI to native ABI and call functions that return two integers as in BSD4.3. To generate a diff of this commit: cvs rdiff -u -r1.146 -r1.147 src/sys/compat/netbsd32/netbsd32_syscall.h cvs rdiff -u -r1.145 -r1.146 src/sys/compat/netbsd32/netbsd32_syscallargs.h \ src/sys/compat/netbsd32/netbsd32_syscalls.c cvs rdiff -u -r1.25 -r1.26 \ src/sys/compat/netbsd32/netbsd32_syscalls_autoload.c cvs rdiff -u -r1.144 -r1.145 src/sys/compat/netbsd32/netbsd32_sysent.c cvs rdiff -u -r1.36 -r1.37 src/sys/compat/netbsd32/netbsd32_systrace_args.c cvs rdiff -u -r1.130 -r1.131 src/sys/compat/netbsd32/syscalls.master Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_syscall.h diff -u src/sys/compat/netbsd32/netbsd32_syscall.h:1.146 src/sys/compat/netbsd32/netbsd32_syscall.h:1.147 --- src/sys/compat/netbsd32/netbsd32_syscall.h:1.146 Mon Nov 4 11:33:01 2019 +++ src/sys/compat/netbsd32/netbsd32_syscall.h Sat Jan 18 07:33:24 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_syscall.h,v 1.146 2019/11/04 11:33:01 rin Exp $ */ +/* $NetBSD: netbsd32_syscall.h,v 1.147 2020/01/18 07:33:24 kamil Exp $ */ /* * System call numbers. Index: src/sys/compat/netbsd32/netbsd32_syscallargs.h diff -u src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.145 src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.146 --- src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.145 Mon Nov 4 11:33:01 2019 +++ src/sys/compat/netbsd32/netbsd32_syscallargs.h Sat Jan 18 07:33:24 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_syscallargs.h,v 1.145 2019/11/04 11:33:01 rin Exp $ */ +/* $NetBSD: netbsd32_syscallargs.h,v 1.146 2020/01/18 07:33:24 kamil Exp $ */ /* * System call argument lists. @@ -2693,7 +2693,7 @@ int compat_20_netbsd32_getfsstat(struct int compat_43_netbsd32_olseek(struct lwp *, const struct compat_43_netbsd32_olseek_args *, register_t *); -int sys_getpid(struct lwp *, const void *, register_t *); +int sys_getpid_with_ppid(struct lwp *, const void *, register_t *); int compat_40_netbsd32_mount(struct lwp *, const struct compat_40_netbsd32_mount_args *, register_t *); @@ -2701,7 +2701,7 @@ int netbsd32_unmount(struct lwp *, const int netbsd32_setuid(struct lwp *, const struct netbsd32_setuid_args *, register_t *); -int sys_getuid(struct lwp *, const void *, register_t *); +int sys_getuid_with_euid(struct lwp *, const void *, register_t *); int sys_geteuid(struct lwp *, const void *, register_t *); @@ -2747,7 +2747,7 @@ int netbsd32_ktrace(struct lwp *, const int netbsd32_sigaction(struct lwp *, const struct netbsd32_sigaction_args *, register_t *); -int sys_getgid(struct lwp *, const void *, register_t *); +int sys_getgid_with_egid(struct lwp *, const void *, register_t *); int compat_13_netbsd32_sigprocmask(struct lwp *, const struct compat_13_netbsd32_sigprocmask_args *, register_t *); Index: src/sys/compat/netbsd32/netbsd32_syscalls.c diff -u src/sys/compat/netbsd32/netbsd32_syscalls.c:1.145 src/sys/compat/netbsd32/netbsd32_syscalls.c:1.146 --- src/sys/compat/netbsd32/netbsd32_syscalls.c:1.145 Mon Nov 4 11:33:01 2019 +++ src/sys/compat/netbsd32/netbsd32_syscalls.c Sat Jan 18 07:33:24 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_syscalls.c,v 1.145 2019/11/04 11:33:01 rin Exp $ */ +/* $NetBSD: netbsd32_syscalls.c,v 1.146 2020/01/18 07:33:24 kamil Exp $ */ /* * System call names. @@ -8,7 +8,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_syscalls.c,v 1.145 2019/11/04 11:33:01 rin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_syscalls.c,v 1.146 2020/01/18 07:33:24 kamil Exp $"); #if defined(_KERNEL_OPT) #if defined(_KERNEL_OPT) @@ -584,11 +584,11 @@ const char *const altnetbsd32_syscallnam /* 17 */ "break", /* 18 */ NULL, /* compat_20_netbsd32_getfsstat */ /* 19 */ NULL, /* compat_43_netbsd32_olseek */ - /* 20 */ NULL, /* getpid */ + /* 20 */ "getpid_with_ppid", /* 21 */ NULL, /* compat_40_netbsd32_mount */ /* 22 */ "unmount", /* 23 */ "setuid", - /* 24 */ NULL, /* getuid */ + /* 24 */ "getuid_with_euid", /* 25 *
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mrg Date: Tue Jan 7 07:26:21 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_vm.c Log Message: don't check the value of retval in netbsd32_mmap() if sys_mmap() was not successful. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/compat/netbsd32/netbsd32_vm.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_vm.c diff -u src/sys/compat/netbsd32/netbsd32_vm.c:1.1 src/sys/compat/netbsd32/netbsd32_vm.c:1.2 --- src/sys/compat/netbsd32/netbsd32_vm.c:1.1 Mon Dec 24 21:27:06 2018 +++ src/sys/compat/netbsd32/netbsd32_vm.c Tue Jan 7 07:26:21 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_vm.c,v 1.1 2018/12/24 21:27:06 mrg Exp $ */ +/* $NetBSD: netbsd32_vm.c,v 1.2 2020/01/07 07:26:21 mrg Exp $ */ /* * Copyright (c) 1998, 2001, 2008, 2018 Matthew R. Green @@ -29,7 +29,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_vm.c,v 1.1 2018/12/24 21:27:06 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_vm.c,v 1.2 2020/01/07 07:26:21 mrg Exp $"); #include #include @@ -86,9 +86,13 @@ netbsd32_mmap(struct lwp *l, const struc #endif error = sys_mmap(l, &ua, retval); - if ((u_long)*retval > (u_long)UINT_MAX) { - printf("netbsd32_mmap: retval out of range: 0x%lx\n", - (u_long)*retval); + if (error == 0 && (u_long)*retval > (u_long)UINT_MAX) { + const char *name = curlwp->l_name; + + if (name == NULL) + name = curproc->p_comm; + printf("netbsd32_mmap(%s:%u:%u): retval out of range: 0x%lx\n", + name, curproc->p_pid, curlwp->l_lid, (u_long)*retval); /* Should try to recover and return an error here. */ } return error;
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: maxv Date: Wed Jan 1 09:17:45 UTC 2020 Modified Files: src/sys/compat/netbsd32: netbsd32_compat_43.c Log Message: Fix sizeof mismatch in copyin. This leads to a user-triggerable stack overflow. On my test build at least, by luck, the compiler orders the variables in a way that the overflow hits only local structures which haven't yet been initialized and used, so the overflow is harmless. Very easily seeable with kASan - just invoke the syscall from a 32bit binary. To generate a diff of this commit: cvs rdiff -u -r1.58 -r1.59 src/sys/compat/netbsd32/netbsd32_compat_43.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_compat_43.c diff -u src/sys/compat/netbsd32/netbsd32_compat_43.c:1.58 src/sys/compat/netbsd32/netbsd32_compat_43.c:1.59 --- src/sys/compat/netbsd32/netbsd32_compat_43.c:1.58 Fri Aug 23 13:59:45 2019 +++ src/sys/compat/netbsd32/netbsd32_compat_43.c Wed Jan 1 09:17:45 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_43.c,v 1.58 2019/08/23 13:59:45 maxv Exp $ */ +/* $NetBSD: netbsd32_compat_43.c,v 1.59 2020/01/01 09:17:45 maxv Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_43.c,v 1.58 2019/08/23 13:59:45 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_43.c,v 1.59 2020/01/01 09:17:45 maxv Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_43.h" @@ -433,7 +433,7 @@ compat_43_netbsd32_orecvmsg(struct lwp * struct iovec *iov, aiov[UIO_SMALLIOV]; int error; - error = copyin(SCARG_P32(uap, msg), &omsg, sizeof (struct omsghdr)); + error = copyin(SCARG_P32(uap, msg), &omsg, sizeof(omsg)); if (error) return (error); @@ -518,7 +518,7 @@ compat_43_netbsd32_osendmsg(struct lwp * struct sockaddr *sa; int error; - error = copyin(SCARG_P32(uap, msg), &omsg, sizeof (struct omsghdr)); + error = copyin(SCARG_P32(uap, msg), &omsg, sizeof(omsg)); if (error != 0) return (error);
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mrg Date: Wed Feb 27 03:01:08 UTC 2019 Removed Files: src/sys/compat/netbsd32: netbsd32_compat_14.c Log Message: this file was moved to netbsd32_compat_14_sysv.c. To generate a diff of this commit: cvs rdiff -u -r1.29 -r0 src/sys/compat/netbsd32/netbsd32_compat_14.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: rin Date: Tue Feb 26 06:28:43 UTC 2019 Modified Files: src/sys/compat/netbsd32: netbsd32_exec_elf32.c Log Message: Push AT_STACKBASE. Otherwise, pthread_attr_getstack(3) cannot find the stack address for initial thread (LID 1). Now, rust for i386 and armv7 work on amd64 and aarch64, respectively. To generate a diff of this commit: cvs rdiff -u -r1.41 -r1.42 src/sys/compat/netbsd32/netbsd32_exec_elf32.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_exec_elf32.c diff -u src/sys/compat/netbsd32/netbsd32_exec_elf32.c:1.41 src/sys/compat/netbsd32/netbsd32_exec_elf32.c:1.42 --- src/sys/compat/netbsd32/netbsd32_exec_elf32.c:1.41 Sun Jan 27 02:08:40 2019 +++ src/sys/compat/netbsd32/netbsd32_exec_elf32.c Tue Feb 26 06:28:43 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_exec_elf32.c,v 1.41 2019/01/27 02:08:40 pgoyette Exp $ */ +/* $NetBSD: netbsd32_exec_elf32.c,v 1.42 2019/02/26 06:28:43 rin Exp $ */ /* from: NetBSD: exec_aout.c,v 1.15 1996/09/26 23:34:46 cgd Exp */ /* @@ -57,7 +57,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_exec_elf32.c,v 1.41 2019/01/27 02:08:40 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_exec_elf32.c,v 1.42 2019/02/26 06:28:43 rin Exp $"); #define ELFSIZE 32 @@ -196,6 +196,10 @@ netbsd32_elf32_copyargs(struct lwp *l, s a->a_v = kauth_cred_getgid(l->l_cred); a++; + a->a_type = AT_STACKBASE; + a->a_v = l->l_proc->p_stackbase; + a++; + exec_free_emul_arg(pack); }
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mrg Date: Thu Feb 21 05:02:21 UTC 2019 Modified Files: src/sys/compat/netbsd32: netbsd32_compat_14.c Log Message: fix naming errors in previous. (this file is no longer compiled, but this fix makes the pull up more obvious, before deleting this file.) To generate a diff of this commit: cvs rdiff -u -r1.28 -r1.29 src/sys/compat/netbsd32/netbsd32_compat_14.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_compat_14.c diff -u src/sys/compat/netbsd32/netbsd32_compat_14.c:1.28 src/sys/compat/netbsd32/netbsd32_compat_14.c:1.29 --- src/sys/compat/netbsd32/netbsd32_compat_14.c:1.28 Thu Feb 21 03:37:19 2019 +++ src/sys/compat/netbsd32/netbsd32_compat_14.c Thu Feb 21 05:02:20 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_14.c,v 1.28 2019/02/21 03:37:19 mrg Exp $ */ +/* $NetBSD: netbsd32_compat_14.c,v 1.29 2019/02/21 05:02:20 mrg Exp $ */ /* * Copyright (c) 1999 Eduardo E. Horvath @@ -29,7 +29,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_14.c,v 1.28 2019/02/21 03:37:19 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_14.c,v 1.29 2019/02/21 05:02:20 mrg Exp $"); #ifdef _KERNEL_OPT #include "opt_sysv.h" @@ -146,7 +146,7 @@ static inline void native_to_netbsd32_semid_ds14(struct semid_ds *sembuf, struct netbsd32_semid_ds14 *osembuf) { - memset(omsemuf, 0, sizeof *osembuf); + memset(osembuf, 0, sizeof *osembuf); native_to_netbsd32_ipc_perm14(&sembuf->sem_perm, &osembuf->sem_perm); #define CVT(x) osembuf->x = sembuf->x @@ -177,7 +177,7 @@ static inline void native_to_netbsd32_shmid_ds14(struct shmid_ds *shmbuf, struct netbsd32_shmid_ds14 *oshmbuf) { - memset(omshmuf, 0, sizeof *oshmbuf); + memset(oshmbuf, 0, sizeof *oshmbuf); native_to_netbsd32_ipc_perm14(&shmbuf->shm_perm, &oshmbuf->shm_perm); #define CVT(x) oshmbuf->x = shmbuf->x
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mrg Date: Wed Feb 20 06:04:28 UTC 2019 Modified Files: src/sys/compat/netbsd32: netbsd32.h Log Message: use KASSERTMSG() in netbsd32_ptr32i(). To generate a diff of this commit: cvs rdiff -u -r1.122 -r1.123 src/sys/compat/netbsd32/netbsd32.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32.h diff -u src/sys/compat/netbsd32/netbsd32.h:1.122 src/sys/compat/netbsd32/netbsd32.h:1.123 --- src/sys/compat/netbsd32/netbsd32.h:1.122 Sat Feb 9 11:30:13 2019 +++ src/sys/compat/netbsd32/netbsd32.h Wed Feb 20 06:04:28 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32.h,v 1.122 2019/02/09 11:30:13 mrg Exp $ */ +/* $NetBSD: netbsd32.h,v 1.123 2019/02/20 06:04:28 mrg Exp $ */ /* * Copyright (c) 1998, 2001, 2008, 2015 Matthew R. Green @@ -128,7 +128,9 @@ static __inline NETBSD32_POINTER_TYPE netbsd32_ptr32i(const void *p64) { uintptr_t u64 = (uintptr_t)p64; - KASSERT(u64 == (NETBSD32_POINTER_TYPE)u64); + KASSERTMSG(u64 == (NETBSD32_POINTER_TYPE)u64, "u64 %llx != %llx", + (unsigned long long)u64, + (unsigned long long)(NETBSD32_POINTER_TYPE)u64); return u64; }
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mrg Date: Sat Feb 9 11:30:13 UTC 2019 Modified Files: src/sys/compat/netbsd32: netbsd32.h Log Message: - expand the comment about what netbsd32_machdep.h should provide. - add missing NETBSD32_POINTER_TYPE - add static inline functions to convert pointers to/from 32 bit, inclusing an overflow check for NETBSD32PTR32PLUS(). To generate a diff of this commit: cvs rdiff -u -r1.121 -r1.122 src/sys/compat/netbsd32/netbsd32.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32.h diff -u src/sys/compat/netbsd32/netbsd32.h:1.121 src/sys/compat/netbsd32/netbsd32.h:1.122 --- src/sys/compat/netbsd32/netbsd32.h:1.121 Sun Jan 27 02:08:40 2019 +++ src/sys/compat/netbsd32/netbsd32.h Sat Feb 9 11:30:13 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32.h,v 1.121 2019/01/27 02:08:40 pgoyette Exp $ */ +/* $NetBSD: netbsd32.h,v 1.122 2019/02/09 11:30:13 mrg Exp $ */ /* * Copyright (c) 1998, 2001, 2008, 2015 Matthew R. Green @@ -76,10 +76,16 @@ typedef uint32_t netbsd32_uintptr_t; /* * machine dependant section; must define: - * netbsd32_pointer_t + * NETBSD32_POINTER_TYPE * - 32-bit pointer type, normally uint32_t but can be int32_t * for platforms which rely on sign-extension of pointers * such as SH-5. + *eg: #define NETBSD32_POINTER_TYPE uint32_t + * netbsd32_pointer_t + * - a typedef'd struct with the above as an "i32" member. + *eg: typedef struct { + *NETBSD32_POINTER_TYPE i32; + * } netbsd32_pointer_t; * NETBSD32PTR64(p32) * - Translate a 32-bit pointer into something valid in a * 64-bit context. @@ -100,11 +106,6 @@ typedef uint32_t netbsd32_uintptr_t; */ #include -/* netbsd32_machdep.h will have (typically) defined: -#define NETBSD32_POINTER_TYPE uint32_t -typedef struct { NETBSD32_POINTER_TYPE i32; } netbsd32_pointer_t; -*/ - /* * Conversion functions for the rest of the compat32 code: * @@ -119,12 +120,33 @@ typedef struct { NETBSD32_POINTER_TYPE i */ #define NETBSD32PTR64(p32) NETBSD32IPTR64((p32).i32) #define NETBSD32PTR32(p32, p64) ((p32).i32 = NETBSD32PTR32I(p64)) -#define NETBSD32PTR32PLUS(p32, incr) ((p32).i32 += incr) +#define NETBSD32PTR32PLUS(p32, incr) netbsd32_ptr32_incr(&p32, incr) +#define NETBSD32PTR32I(p32) netbsd32_ptr32i(p32) +#define NETBSD32IPTR64(p32) netbsd32_iptr64(p32) static __inline NETBSD32_POINTER_TYPE -NETBSD32PTR32I(const void *p64) { return (uintptr_t)p64; } +netbsd32_ptr32i(const void *p64) +{ + uintptr_t u64 = (uintptr_t)p64; + KASSERT(u64 == (NETBSD32_POINTER_TYPE)u64); + return u64; +} + static __inline void * -NETBSD32IPTR64(NETBSD32_POINTER_TYPE p32) { return (void *)(intptr_t)p32; } +netbsd32_iptr64(NETBSD32_POINTER_TYPE p32) +{ + return (void *)(intptr_t)p32; +} + +static __inline netbsd32_pointer_t +netbsd32_ptr32_incr(netbsd32_pointer_t *p32, uint32_t incr) +{ + netbsd32_pointer_t n32 = *p32; + + n32.i32 += incr; + KASSERT(NETBSD32PTR64(n32) > NETBSD32PTR64(*p32)); + return *p32 = n32; +} /* Nothing should be using the raw type, so kill it */ #undef NETBSD32_POINTER_TYPE
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: christos Date: Thu Jan 31 16:03:50 UTC 2019 Modified Files: src/sys/compat/netbsd32: netbsd32_module.c Log Message: remove unused variable To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/sys/compat/netbsd32/netbsd32_module.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_module.c diff -u src/sys/compat/netbsd32/netbsd32_module.c:1.8 src/sys/compat/netbsd32/netbsd32_module.c:1.9 --- src/sys/compat/netbsd32/netbsd32_module.c:1.8 Sat Jan 26 21:08:40 2019 +++ src/sys/compat/netbsd32/netbsd32_module.c Thu Jan 31 11:03:50 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_module.c,v 1.8 2019/01/27 02:08:40 pgoyette Exp $ */ +/* $NetBSD: netbsd32_module.c,v 1.9 2019/01/31 16:03:50 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_module.c,v 1.8 2019/01/27 02:08:40 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_module.c,v 1.9 2019/01/31 16:03:50 christos Exp $"); #include #include @@ -48,7 +48,6 @@ modctl32_handle_stat(struct netbsd32_iov int ms_cnt; modstat_t *ms, *mso; size_t ms_len; - int req_cnt; char *req, *reqo; size_t req_len; char *out_p; @@ -80,7 +79,6 @@ modctl32_handle_stat(struct netbsd32_iov ms_cnt++; mi = mod->mod_info; if (mi->mi_required != NULL) { - req_cnt++; req_len += strlen(mi->mi_required) + 1; } } @@ -88,7 +86,6 @@ modctl32_handle_stat(struct netbsd32_iov ms_cnt++; mi = mod->mod_info; if (mi->mi_required != NULL) { - req_cnt++; req_len += strlen(mi->mi_required) + 1; } }
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: pgoyette Date: Wed Jan 30 02:00:02 UTC 2019 Modified Files: src/sys/compat/netbsd32: netbsd32_compat_80.c Log Message: Remove #ifdef COMPAT_80 The file will only be selected if "options COMPAT_80" is defined in the config file. The COMPAT_80 macro is defined only if the option is explicitly defined, and not if it is implicitly defined due to inclusion of lesser-version COMPATs. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/sys/compat/netbsd32/netbsd32_compat_80.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_compat_80.c diff -u src/sys/compat/netbsd32/netbsd32_compat_80.c:1.3 src/sys/compat/netbsd32/netbsd32_compat_80.c:1.4 --- src/sys/compat/netbsd32/netbsd32_compat_80.c:1.3 Mon Jan 28 01:09:52 2019 +++ src/sys/compat/netbsd32/netbsd32_compat_80.c Wed Jan 30 02:00:02 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_80.c,v 1.3 2019/01/28 01:09:52 pgoyette Exp $ */ +/* $NetBSD: netbsd32_compat_80.c,v 1.4 2019/01/30 02:00:02 pgoyette Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_80.c,v 1.3 2019/01/28 01:09:52 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_80.c,v 1.4 2019/01/30 02:00:02 pgoyette Exp $"); #include #include @@ -46,8 +46,6 @@ __KERNEL_RCSID(0, "$NetBSD: netbsd32_com #include #include -#ifdef COMPAT_80 - int netbsd32_80_modctl(struct lwp *, const struct netbsd32_modctl_args *, register_t *); @@ -197,4 +195,3 @@ compat_netbsd32_80_modcmd(modcmd_t cmd, return ENOTTY; } } -#endif /* COMPAT_80 */
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mlelstv Date: Mon Jan 28 18:53:52 UTC 2019 Modified Files: src/sys/compat/netbsd32: netbsd32_compat_40.c Log Message: add missing includes To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/sys/compat/netbsd32/netbsd32_compat_40.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_compat_40.c diff -u src/sys/compat/netbsd32/netbsd32_compat_40.c:1.3 src/sys/compat/netbsd32/netbsd32_compat_40.c:1.4 --- src/sys/compat/netbsd32/netbsd32_compat_40.c:1.3 Mon Jan 28 13:13:02 2019 +++ src/sys/compat/netbsd32/netbsd32_compat_40.c Mon Jan 28 18:53:52 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_40.c,v 1.3 2019/01/28 13:13:02 pgoyette Exp $ */ +/* $NetBSD: netbsd32_compat_40.c,v 1.4 2019/01/28 18:53:52 mlelstv Exp $ */ /* * Copyright (c) 1998, 2001, 2008, 2018 Matthew R. Green @@ -29,11 +29,13 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_40.c,v 1.3 2019/01/28 13:13:02 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_40.c,v 1.4 2019/01/28 18:53:52 mlelstv Exp $"); #include #include +#include #include +#include #include #include
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: pgoyette Date: Mon Jan 28 13:13:02 UTC 2019 Modified Files: src/sys/compat/netbsd32: netbsd32_compat_40.c Log Message: Add the appropriate module glue. Seems to have gotten lost during the merge. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/compat/netbsd32/netbsd32_compat_40.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_compat_40.c diff -u src/sys/compat/netbsd32/netbsd32_compat_40.c:1.2 src/sys/compat/netbsd32/netbsd32_compat_40.c:1.3 --- src/sys/compat/netbsd32/netbsd32_compat_40.c:1.2 Mon Dec 24 21:27:05 2018 +++ src/sys/compat/netbsd32/netbsd32_compat_40.c Mon Jan 28 13:13:02 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_40.c,v 1.2 2018/12/24 21:27:05 mrg Exp $ */ +/* $NetBSD: netbsd32_compat_40.c,v 1.3 2019/01/28 13:13:02 pgoyette Exp $ */ /* * Copyright (c) 1998, 2001, 2008, 2018 Matthew R. Green @@ -29,7 +29,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_40.c,v 1.2 2018/12/24 21:27:05 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_40.c,v 1.3 2019/01/28 13:13:02 pgoyette Exp $"); #include #include @@ -61,3 +61,30 @@ compat_40_netbsd32_mount(struct lwp *l, return compat_40_sys_mount(l, &ua, retval); } + +static struct syscall_package compat_netbsd32_40_syscalls[] = { + { NETBSD32_SYS_compat_40_netbsd32_mount, 0, + (sy_call_t *)compat_40_netbsd32_mount }, + { 0, 0, NULL } +}; + +MODULE(MODULE_CLASS_EXEC, compat_netbsd32_40, "compat_netbsd32_50,compat_40"); + +static int +compat_netbsd32_40_modcmd(modcmd_t cmd, void *arg) +{ + + switch (cmd) { + case MODULE_CMD_INIT: + return syscall_establish(&emul_netbsd32, + compat_netbsd32_40_syscalls); + + case MODULE_CMD_FINI: + return syscall_disestablish(&emul_netbsd32, + compat_netbsd32_40_syscalls); + + default: + return ENOTTY; + } +} +
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: pgoyette Date: Mon Jan 28 01:09:52 UTC 2019 Modified Files: src/sys/compat/netbsd32: netbsd32_compat_80.c Log Message: Include new compatability header To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/compat/netbsd32/netbsd32_compat_80.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_compat_80.c diff -u src/sys/compat/netbsd32/netbsd32_compat_80.c:1.2 src/sys/compat/netbsd32/netbsd32_compat_80.c:1.3 --- src/sys/compat/netbsd32/netbsd32_compat_80.c:1.2 Sun Jan 27 02:08:40 2019 +++ src/sys/compat/netbsd32/netbsd32_compat_80.c Mon Jan 28 01:09:52 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_80.c,v 1.2 2019/01/27 02:08:40 pgoyette Exp $ */ +/* $NetBSD: netbsd32_compat_80.c,v 1.3 2019/01/28 01:09:52 pgoyette Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_80.c,v 1.2 2019/01/27 02:08:40 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_80.c,v 1.3 2019/01/28 01:09:52 pgoyette Exp $"); #include #include @@ -39,6 +39,8 @@ __KERNEL_RCSID(0, "$NetBSD: netbsd32_com #include +#include + #include #include #include
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: christos Date: Sun Jan 27 02:55:02 UTC 2019 Modified Files: src/sys/compat/netbsd32: files.netbsd32 Log Message: remove dup To generate a diff of this commit: cvs rdiff -u -r1.43 -r1.44 src/sys/compat/netbsd32/files.netbsd32 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/files.netbsd32 diff -u src/sys/compat/netbsd32/files.netbsd32:1.43 src/sys/compat/netbsd32/files.netbsd32:1.44 --- src/sys/compat/netbsd32/files.netbsd32:1.43 Sat Jan 26 21:08:40 2019 +++ src/sys/compat/netbsd32/files.netbsd32 Sat Jan 26 21:55:02 2019 @@ -1,4 +1,4 @@ -# $NetBSD: files.netbsd32,v 1.43 2019/01/27 02:08:40 pgoyette Exp $ +# $NetBSD: files.netbsd32,v 1.44 2019/01/27 02:55:02 christos Exp $ # # config file description for machine-independent netbsd32 compat code. # included by ports that need it. @@ -49,7 +49,6 @@ file compat/netbsd32/netbsd32_compat_20. file compat/netbsd32/netbsd32_compat_30.c compat_netbsd32 & compat_30 file compat/netbsd32/netbsd32_compat_40.c compat_netbsd32 & compat_40 file compat/netbsd32/netbsd32_compat_43.c compat_netbsd32 & (compat_43 | compat_sunos | compat_linux32) -file compat/netbsd32/netbsd32_compat_40.c compat_netbsd32 & compat_40 file compat/netbsd32/netbsd32_compat_50.c compat_netbsd32 & compat_50 file compat/netbsd32/netbsd32_rndpseudo_50.c compat_netbsd32 & compat_50 file compat/netbsd32/netbsd32_compat_50_sysv.c compat_netbsd32 & compat_50 &
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mrg Date: Wed Dec 26 08:01:40 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32_compat_50.c netbsd32_fs.c netbsd32_mod.c Log Message: remove duplicated prototypes and dated XXX comments. To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 src/sys/compat/netbsd32/netbsd32_compat_50.c cvs rdiff -u -r1.81 -r1.82 src/sys/compat/netbsd32/netbsd32_fs.c cvs rdiff -u -r1.13 -r1.14 src/sys/compat/netbsd32/netbsd32_mod.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_compat_50.c diff -u src/sys/compat/netbsd32/netbsd32_compat_50.c:1.32 src/sys/compat/netbsd32/netbsd32_compat_50.c:1.33 --- src/sys/compat/netbsd32/netbsd32_compat_50.c:1.32 Thu Dec 3 10:38:21 2015 +++ src/sys/compat/netbsd32/netbsd32_compat_50.c Wed Dec 26 08:01:40 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_50.c,v 1.32 2015/12/03 10:38:21 pgoyette Exp $ */ +/* $NetBSD: netbsd32_compat_50.c,v 1.33 2018/12/26 08:01:40 mrg Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -36,7 +36,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.32 2015/12/03 10:38:21 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.33 2018/12/26 08:01:40 mrg Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd.h" @@ -504,7 +504,7 @@ compat_50_netbsd32___sigtimedwait(struct compat_50_netbsd32_sigtimedwait_fetch_timeout, compat_50_netbsd32_sigtimedwait_put_timeout); if (!res) - *retval = 0; /* XXX NetBSD<=5 was not POSIX compliant */ + *retval = 0; /* NetBSD<=5 was not POSIX compliant */ return res; } Index: src/sys/compat/netbsd32/netbsd32_fs.c diff -u src/sys/compat/netbsd32/netbsd32_fs.c:1.81 src/sys/compat/netbsd32/netbsd32_fs.c:1.82 --- src/sys/compat/netbsd32/netbsd32_fs.c:1.81 Sat Aug 11 03:41:06 2018 +++ src/sys/compat/netbsd32/netbsd32_fs.c Wed Dec 26 08:01:40 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_fs.c,v 1.81 2018/08/11 03:41:06 mrg Exp $ */ +/* $NetBSD: netbsd32_fs.c,v 1.82 2018/12/26 08:01:40 mrg Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_fs.c,v 1.81 2018/08/11 03:41:06 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_fs.c,v 1.82 2018/12/26 08:01:40 mrg Exp $"); #include #include @@ -727,11 +727,6 @@ out: * Use vfs vnode-to-name reverse cache; if that fails, fall back * to reading directory contents. */ -/* XXX NH Why does this exist */ -int -getcwd_common(struct vnode *, struct vnode *, - char **, char *, int, int, struct lwp *); - int netbsd32___getcwd(struct lwp *l, const struct netbsd32___getcwd_args *uap, register_t *retval) { @@ -1258,7 +1253,7 @@ netbsd32_utimensat(struct lwp *l, const syscallarg(netbsd32_timespecp_t) tptr; syscallarg(int) flag; } */ - struct timespec ts[2], *tsp = NULL /* XXXgcc */; + struct timespec ts[2], *tsp; int follow; int error; @@ -1356,7 +1351,7 @@ netbsd32_futimens(struct lwp *l, const s syscallarg(int) fd; syscallarg(netbsd32_timespecp_t) tptr; } */ - struct timespec ts[2], *tsp = NULL /* XXXgcc */; + struct timespec ts[2], *tsp; file_t *fp; int error; Index: src/sys/compat/netbsd32/netbsd32_mod.c diff -u src/sys/compat/netbsd32/netbsd32_mod.c:1.13 src/sys/compat/netbsd32/netbsd32_mod.c:1.14 --- src/sys/compat/netbsd32/netbsd32_mod.c:1.13 Thu Dec 3 02:51:01 2015 +++ src/sys/compat/netbsd32/netbsd32_mod.c Wed Dec 26 08:01:40 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_mod.c,v 1.13 2015/12/03 02:51:01 pgoyette Exp $ */ +/* $NetBSD: netbsd32_mod.c,v 1.14 2018/12/26 08:01:40 mrg Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_mod.c,v 1.13 2015/12/03 02:51:01 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_mod.c,v 1.14 2018/12/26 08:01:40 mrg Exp $"); #ifdef _KERNEL_OPT #include "opt_execfmt.h" @@ -91,7 +91,7 @@ static struct execsw netbsd32_execsw[] = .es_copyargs = netbsd32_elf32_copyargs, .es_setregs = NULL, .es_coredump = coredump_elf32, - .es_setup_stack = exec_setup_stack, /* XXX XXX XXX */ + .es_setup_stack = exec_setup_stack, }, #endif };
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mrg Date: Mon Dec 24 22:47:19 UTC 2018 Modified Files: src/sys/compat/netbsd32: files.netbsd32 Log Message: quotactl is always included, regardless of options QUOTA. To generate a diff of this commit: cvs rdiff -u -r1.41 -r1.42 src/sys/compat/netbsd32/files.netbsd32 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/files.netbsd32 diff -u src/sys/compat/netbsd32/files.netbsd32:1.41 src/sys/compat/netbsd32/files.netbsd32:1.42 --- src/sys/compat/netbsd32/files.netbsd32:1.41 Mon Dec 24 21:27:05 2018 +++ src/sys/compat/netbsd32/files.netbsd32 Mon Dec 24 22:47:19 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.netbsd32,v 1.41 2018/12/24 21:27:05 mrg Exp $ +# $NetBSD: files.netbsd32,v 1.42 2018/12/24 22:47:19 mrg Exp $ # # config file description for machine-independent netbsd32 compat code. # included by ports that need it. @@ -24,7 +24,7 @@ file compat/netbsd32/netbsd32_mqueue.c c file compat/netbsd32/netbsd32_nfssvc.c compat_netbsd32 & nfsserver file compat/netbsd32/netbsd32_ptrace.c compat_netbsd32 & ptrace file compat/netbsd32/netbsd32_rlimit.c compat_netbsd32 -file compat/netbsd32/netbsd32_quota.c compat_netbsd32 & quota +file compat/netbsd32/netbsd32_quota.c compat_netbsd32 file compat/netbsd32/netbsd32_select.c compat_netbsd32 file compat/netbsd32/netbsd32_sem.c compat_netbsd32 file compat/netbsd32/netbsd32_signal.c compat_netbsd32
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mrg Date: Mon Dec 24 21:27:37 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32_syscall.h netbsd32_syscallargs.h netbsd32_syscalls.c netbsd32_syscalls_autoload.c netbsd32_sysent.c netbsd32_systrace_args.c Log Message: regen. To generate a diff of this commit: cvs rdiff -u -r1.138 -r1.139 src/sys/compat/netbsd32/netbsd32_syscall.h cvs rdiff -u -r1.137 -r1.138 src/sys/compat/netbsd32/netbsd32_syscallargs.h \ src/sys/compat/netbsd32/netbsd32_syscalls.c cvs rdiff -u -r1.17 -r1.18 \ src/sys/compat/netbsd32/netbsd32_syscalls_autoload.c cvs rdiff -u -r1.136 -r1.137 src/sys/compat/netbsd32/netbsd32_sysent.c cvs rdiff -u -r1.28 -r1.29 src/sys/compat/netbsd32/netbsd32_systrace_args.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_syscall.h diff -u src/sys/compat/netbsd32/netbsd32_syscall.h:1.138 src/sys/compat/netbsd32/netbsd32_syscall.h:1.139 --- src/sys/compat/netbsd32/netbsd32_syscall.h:1.138 Fri Aug 10 21:47:15 2018 +++ src/sys/compat/netbsd32/netbsd32_syscall.h Mon Dec 24 21:27:37 2018 @@ -1,10 +1,10 @@ -/* $NetBSD: netbsd32_syscall.h,v 1.138 2018/08/10 21:47:15 pgoyette Exp $ */ +/* $NetBSD: netbsd32_syscall.h,v 1.139 2018/12/24 21:27:37 mrg Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.123 2018/07/31 21:00:02 rjs Exp + * created from NetBSD: syscalls.master,v 1.124 2018/12/24 21:27:06 mrg Exp */ #ifndef _NETBSD32_SYS_SYSCALL_H_ @@ -73,8 +73,8 @@ /* syscall: "getpid" ret: "pid_t" args: */ #define NETBSD32_SYS_getpid 20 -/* syscall: "netbsd32_mount" ret: "int" args: "netbsd32_charp" "netbsd32_charp" "int" "netbsd32_voidp" */ -#define NETBSD32_SYS_netbsd32_mount 21 +/* syscall: "compat_40_netbsd32_mount" ret: "int" args: "netbsd32_charp" "netbsd32_charp" "int" "netbsd32_voidp" */ +#define NETBSD32_SYS_compat_40_netbsd32_mount 21 /* syscall: "netbsd32_unmount" ret: "int" args: "netbsd32_charp" "int" */ #define NETBSD32_SYS_netbsd32_unmount 22 Index: src/sys/compat/netbsd32/netbsd32_syscallargs.h diff -u src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.137 src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.138 --- src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.137 Fri Aug 10 21:47:15 2018 +++ src/sys/compat/netbsd32/netbsd32_syscallargs.h Mon Dec 24 21:27:37 2018 @@ -1,10 +1,10 @@ -/* $NetBSD: netbsd32_syscallargs.h,v 1.137 2018/08/10 21:47:15 pgoyette Exp $ */ +/* $NetBSD: netbsd32_syscallargs.h,v 1.138 2018/12/24 21:27:37 mrg Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.123 2018/07/31 21:00:02 rjs Exp + * created from NetBSD: syscalls.master,v 1.124 2018/12/24 21:27:06 mrg Exp */ #ifndef _NETBSD32_SYS_SYSCALLARGS_H_ @@ -144,13 +144,13 @@ struct compat_43_netbsd32_olseek_args { }; check_syscall_args(compat_43_netbsd32_olseek) -struct netbsd32_mount_args { +struct compat_40_netbsd32_mount_args { syscallarg(netbsd32_charp) type; syscallarg(netbsd32_charp) path; syscallarg(int) flags; syscallarg(netbsd32_voidp) data; }; -check_syscall_args(netbsd32_mount) +check_syscall_args(compat_40_netbsd32_mount) struct netbsd32_unmount_args { syscallarg(netbsd32_charp) path; @@ -2663,7 +2663,7 @@ int compat_43_netbsd32_olseek(struct lwp int sys_getpid(struct lwp *, const void *, register_t *); -int netbsd32_mount(struct lwp *, const struct netbsd32_mount_args *, register_t *); +int compat_40_netbsd32_mount(struct lwp *, const struct compat_40_netbsd32_mount_args *, register_t *); int netbsd32_unmount(struct lwp *, const struct netbsd32_unmount_args *, register_t *); Index: src/sys/compat/netbsd32/netbsd32_syscalls.c diff -u src/sys/compat/netbsd32/netbsd32_syscalls.c:1.137 src/sys/compat/netbsd32/netbsd32_syscalls.c:1.138 --- src/sys/compat/netbsd32/netbsd32_syscalls.c:1.137 Mon Dec 24 21:27:06 2018 +++ src/sys/compat/netbsd32/netbsd32_syscalls.c Mon Dec 24 21:27:37 2018 @@ -1,14 +1,14 @@ -/* $NetBSD: netbsd32_syscalls.c,v 1.137 2018/12/24 21:27:06 mrg Exp $ */ +/* $NetBSD: netbsd32_syscalls.c,v 1.138 2018/12/24 21:27:37 mrg Exp $ */ /* * System call names. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.123 2018/07/31 21:00:02 rjs Exp + * created from NetBSD: syscalls.master,v 1.124 2018/12/24 21:27:06 mrg Exp */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_syscalls.c,v 1.137 2018/12/24 21:27:06 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_syscalls.c,v 1.138 2018/12/24 21:27:37 mrg Exp $"); #if defined(_KERNEL_OPT) #if defined(_KERNEL_OPT) Index: src/sys/compat/netbsd32/netbsd32_syscalls_autoload.c diff -u src/sys/compat/netbsd32/netbsd32_syscalls_autoload.c:1.17 src/sys/compat/net
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mrg Date: Mon Dec 24 21:27:06 UTC 2018 Modified Files: src/sys/compat/netbsd32: files.netbsd32 netbsd32_netbsd.c netbsd32_syscalls.c netbsd32_syscalls_autoload.c netbsd32_sysent.c netbsd32_systrace_args.c syscalls.master Added Files: src/sys/compat/netbsd32: netbsd32_compat_40.c netbsd32_fd.c netbsd32_vm.c Log Message: move mmap(), compat 40 mount(), pipe() and getfh() into their own files as the implementation is non trivial or is compat. mark old mount() properly instead of manually #if'ing ito to ENOSYS. To generate a diff of this commit: cvs rdiff -u -r1.40 -r1.41 src/sys/compat/netbsd32/files.netbsd32 cvs rdiff -u -r0 -r1.2 src/sys/compat/netbsd32/netbsd32_compat_40.c cvs rdiff -u -r0 -r1.1 src/sys/compat/netbsd32/netbsd32_fd.c \ src/sys/compat/netbsd32/netbsd32_vm.c cvs rdiff -u -r1.221 -r1.222 src/sys/compat/netbsd32/netbsd32_netbsd.c cvs rdiff -u -r1.136 -r1.137 src/sys/compat/netbsd32/netbsd32_syscalls.c cvs rdiff -u -r1.16 -r1.17 \ src/sys/compat/netbsd32/netbsd32_syscalls_autoload.c cvs rdiff -u -r1.135 -r1.136 src/sys/compat/netbsd32/netbsd32_sysent.c cvs rdiff -u -r1.27 -r1.28 src/sys/compat/netbsd32/netbsd32_systrace_args.c cvs rdiff -u -r1.123 -r1.124 src/sys/compat/netbsd32/syscalls.master Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/files.netbsd32 diff -u src/sys/compat/netbsd32/files.netbsd32:1.40 src/sys/compat/netbsd32/files.netbsd32:1.41 --- src/sys/compat/netbsd32/files.netbsd32:1.40 Mon Dec 24 20:44:39 2018 +++ src/sys/compat/netbsd32/files.netbsd32 Mon Dec 24 21:27:05 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.netbsd32,v 1.40 2018/12/24 20:44:39 mrg Exp $ +# $NetBSD: files.netbsd32,v 1.41 2018/12/24 21:27:05 mrg Exp $ # # config file description for machine-independent netbsd32 compat code. # included by ports that need it. @@ -13,6 +13,7 @@ file compat/netbsd32/netbsd32_exec_aout. file compat/netbsd32/netbsd32_netbsd.c compat_netbsd32 file compat/netbsd32/netbsd32_event.c compat_netbsd32 file compat/netbsd32/netbsd32_execve.c compat_netbsd32 +file compat/netbsd32/netbsd32_fd.c compat_netbsd32 file compat/netbsd32/netbsd32_fs.c compat_netbsd32 file compat/netbsd32/netbsd32_ioctl.c compat_netbsd32 file compat/netbsd32/netbsd32_ipc.c compat_netbsd32 @@ -31,6 +32,7 @@ file compat/netbsd32/netbsd32_socket.c c file compat/netbsd32/netbsd32_sysctl.c compat_netbsd32 file compat/netbsd32/netbsd32_time.c compat_netbsd32 file compat/netbsd32/netbsd32_wait.c compat_netbsd32 +file compat/netbsd32/netbsd32_vm.c compat_netbsd32 file compat/netbsd32/netbsd32_sysent.c compat_netbsd32 file compat/netbsd32/netbsd32_syscalls.c compat_netbsd32 & syscall_debug @@ -42,6 +44,7 @@ file compat/netbsd32/netbsd32_compat_14. file compat/netbsd32/netbsd32_compat_20.c compat_netbsd32 & compat_20 file compat/netbsd32/netbsd32_compat_30.c compat_netbsd32 & compat_30 file compat/netbsd32/netbsd32_compat_43.c compat_netbsd32 & (compat_43 | compat_sunos | compat_linux32) +file compat/netbsd32/netbsd32_compat_40.c compat_netbsd32 & compat_40 file compat/netbsd32/netbsd32_compat_50.c compat_netbsd32 & compat_50 file compat/netbsd32/netbsd32_compat_50_sysv.c compat_netbsd32 & compat_50 & (sysvmsg | sysvsem | sysvshm) Index: src/sys/compat/netbsd32/netbsd32_netbsd.c diff -u src/sys/compat/netbsd32/netbsd32_netbsd.c:1.221 src/sys/compat/netbsd32/netbsd32_netbsd.c:1.222 --- src/sys/compat/netbsd32/netbsd32_netbsd.c:1.221 Mon Dec 24 20:44:39 2018 +++ src/sys/compat/netbsd32/netbsd32_netbsd.c Mon Dec 24 21:27:05 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_netbsd.c,v 1.221 2018/12/24 20:44:39 mrg Exp $ */ +/* $NetBSD: netbsd32_netbsd.c,v 1.222 2018/12/24 21:27:05 mrg Exp $ */ /* * Copyright (c) 1998, 2001, 2008, 2018 Matthew R. Green @@ -27,15 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.221 2018/12/24 20:44:39 mrg Exp $"); - -/* - * below are all the standard NetBSD system calls, in the 32bit - * environment, with the necessary conversions to 64bit before calling - * the real syscall. anything that needs special attention is handled - * elsewhere - this file should only contain structure assignment and - * calls to the original function. - */ +__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.222 2018/12/24 21:27:05 mrg Exp $"); /* * below are all the standard NetBSD system calls, in the 32bit @@ -73,13 +65,11 @@ __KERNEL_RCSID(0, "$NetBSD: netbsd32_net #include #include #include -#include #include #include #include #include #include -#include #include #include @@ -365,30 +355,6 @@ netbsd32_break(struct lwp *l, const stru return sys_obreak(l, &ua, retval); } -// XXX move into compat_40 -int -netbsd32_mount(struct lwp *l, const struct netbsd32_mount_args *uap, register_t *retval) -{ -#ifdef COMPAT_40 -
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mrg Date: Mon Dec 24 20:44:39 UTC 2018 Modified Files: src/sys/compat/netbsd32: files.netbsd32 netbsd32_netbsd.c Added Files: src/sys/compat/netbsd32: netbsd32_quota.c netbsd32_rlimit.c Log Message: move rlimit and quota code into their own modules. (netbsd32_netbsd.c should have only simple shims. anything more than copying arguments from one args struct to the other should not be placed in this file. still a couple more to move out.) To generate a diff of this commit: cvs rdiff -u -r1.39 -r1.40 src/sys/compat/netbsd32/files.netbsd32 cvs rdiff -u -r1.220 -r1.221 src/sys/compat/netbsd32/netbsd32_netbsd.c cvs rdiff -u -r0 -r1.1 src/sys/compat/netbsd32/netbsd32_quota.c \ src/sys/compat/netbsd32/netbsd32_rlimit.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/files.netbsd32 diff -u src/sys/compat/netbsd32/files.netbsd32:1.39 src/sys/compat/netbsd32/files.netbsd32:1.40 --- src/sys/compat/netbsd32/files.netbsd32:1.39 Wed Oct 19 09:44:01 2016 +++ src/sys/compat/netbsd32/files.netbsd32 Mon Dec 24 20:44:39 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.netbsd32,v 1.39 2016/10/19 09:44:01 skrll Exp $ +# $NetBSD: files.netbsd32,v 1.40 2018/12/24 20:44:39 mrg Exp $ # # config file description for machine-independent netbsd32 compat code. # included by ports that need it. @@ -22,6 +22,8 @@ file compat/netbsd32/netbsd32_mod.c com file compat/netbsd32/netbsd32_mqueue.c compat_netbsd32 & mqueue file compat/netbsd32/netbsd32_nfssvc.c compat_netbsd32 & nfsserver file compat/netbsd32/netbsd32_ptrace.c compat_netbsd32 & ptrace +file compat/netbsd32/netbsd32_rlimit.c compat_netbsd32 +file compat/netbsd32/netbsd32_quota.c compat_netbsd32 & quota file compat/netbsd32/netbsd32_select.c compat_netbsd32 file compat/netbsd32/netbsd32_sem.c compat_netbsd32 file compat/netbsd32/netbsd32_signal.c compat_netbsd32 Index: src/sys/compat/netbsd32/netbsd32_netbsd.c diff -u src/sys/compat/netbsd32/netbsd32_netbsd.c:1.220 src/sys/compat/netbsd32/netbsd32_netbsd.c:1.221 --- src/sys/compat/netbsd32/netbsd32_netbsd.c:1.220 Mon Dec 24 20:39:17 2018 +++ src/sys/compat/netbsd32/netbsd32_netbsd.c Mon Dec 24 20:44:39 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_netbsd.c,v 1.220 2018/12/24 20:39:17 mrg Exp $ */ +/* $NetBSD: netbsd32_netbsd.c,v 1.221 2018/12/24 20:44:39 mrg Exp $ */ /* * Copyright (c) 1998, 2001, 2008, 2018 Matthew R. Green @@ -27,7 +27,15 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.220 2018/12/24 20:39:17 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.221 2018/12/24 20:44:39 mrg Exp $"); + +/* + * below are all the standard NetBSD system calls, in the 32bit + * environment, with the necessary conversions to 64bit before calling + * the real syscall. anything that needs special attention is handled + * elsewhere - this file should only contain structure assignment and + * calls to the original function. + */ /* * below are all the standard NetBSD system calls, in the 32bit @@ -1206,100 +1214,7 @@ netbsd32_rmdir(struct lwp *l, const stru return sys_rmdir(l, &ua, retval); } -int -netbsd32___quotactl(struct lwp *l, const struct netbsd32___quotactl_args *uap, register_t *retval) -{ - /* { - syscallarg(const netbsd32_charp) path; - syscallarg(netbsd32_voidp) args; - } */ - struct netbsd32_quotactlargs args32; - struct quotactl_args args; - int error; - - error = copyin(SCARG_P32(uap, args), &args32, sizeof(args32)); - if (error) { - return error; - } - - args.qc_op = args32.qc_op; - switch (args.qc_op) { - case QUOTACTL_STAT: - args.u.stat.qc_info = NETBSD32PTR64(args32.u.stat.qc_info); - break; - case QUOTACTL_IDTYPESTAT: - args.u.idtypestat.qc_idtype = args32.u.idtypestat.qc_idtype; - args.u.idtypestat.qc_info = - NETBSD32PTR64(args32.u.idtypestat.qc_info); - break; - case QUOTACTL_OBJTYPESTAT: - args.u.objtypestat.qc_objtype = - args32.u.objtypestat.qc_objtype; - args.u.objtypestat.qc_info = - NETBSD32PTR64(args32.u.objtypestat.qc_info); - break; - case QUOTACTL_GET: - args.u.get.qc_key = NETBSD32PTR64(args32.u.get.qc_key); - args.u.get.qc_val = NETBSD32PTR64(args32.u.get.qc_val); - break; - case QUOTACTL_PUT: - args.u.put.qc_key = NETBSD32PTR64(args32.u.put.qc_key); - args.u.put.qc_val = NETBSD32PTR64(args32.u.put.qc_val); - break; - case QUOTACTL_DEL: - args.u.del.qc_key = NETBSD32PTR64(args32.u.del.qc_key); - break; - case QUOTACTL_CURSOROPEN: - args.u.cursoropen.qc_cursor = - NETBSD32PTR64(args32.u.cursoropen.qc_cursor); - break; - case QUOTACTL_CURSORCLOSE: - args.u.cursorclose.qc_cursor = - NETBSD32PTR64(args32.u.cursorclose.qc_cursor); - break; - case QUOTACTL_CURSORSKIPIDTYPE: - args.u.cursorskipidtype.qc_cursor = - NETBSD32PTR64(args32.u.cursorskipidtype.qc_cursor); - args.u.cursorskipidtype.qc_idtype = - arg
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mrg Date: Mon Dec 24 20:39:17 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32_netbsd.c Log Message: fix style consistency. remove obsolete comments or commented code. NFC. To generate a diff of this commit: cvs rdiff -u -r1.219 -r1.220 src/sys/compat/netbsd32/netbsd32_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_netbsd.c diff -u src/sys/compat/netbsd32/netbsd32_netbsd.c:1.219 src/sys/compat/netbsd32/netbsd32_netbsd.c:1.220 --- src/sys/compat/netbsd32/netbsd32_netbsd.c:1.219 Mon Dec 24 20:27:57 2018 +++ src/sys/compat/netbsd32/netbsd32_netbsd.c Mon Dec 24 20:39:17 2018 @@ -1,7 +1,7 @@ -/* $NetBSD: netbsd32_netbsd.c,v 1.219 2018/12/24 20:27:57 mrg Exp $ */ +/* $NetBSD: netbsd32_netbsd.c,v 1.220 2018/12/24 20:39:17 mrg Exp $ */ /* - * Copyright (c) 1998, 2001, 2008 Matthew R. Green + * Copyright (c) 1998, 2001, 2008, 2018 Matthew R. Green * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -27,7 +27,15 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.219 2018/12/24 20:27:57 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.220 2018/12/24 20:39:17 mrg Exp $"); + +/* + * below are all the standard NetBSD system calls, in the 32bit + * environment, with the necessary conversions to 64bit before calling + * the real syscall. anything that needs special attention is handled + * elsewhere - this file should only contain structure assignment and + * calls to the original function. + */ #if defined(_KERNEL_OPT) #include "opt_ddb.h" @@ -42,7 +50,6 @@ __KERNEL_RCSID(0, "$NetBSD: netbsd32_net #include #include #include -//#define msg __msg /* Don't ask me! */ #include #include #include @@ -166,13 +173,6 @@ struct emul emul_netbsd32 = { #endif }; -/* - * below are all the standard NetBSD system calls, in the 32bit - * environment, with the necessary conversions to 64bit before - * calling the real syscall. anything that needs special - * attention is handled elsewhere. - */ - int netbsd32_exit(struct lwp *l, const struct netbsd32_exit_args *uap, register_t *retval) { @@ -257,7 +257,7 @@ netbsd32_link(struct lwp *l, const struc NETBSD32TOP_UAP(path, const char); NETBSD32TOP_UAP(link, const char); - return (sys_link(l, &ua, retval)); + return sys_link(l, &ua, retval); } int @@ -270,7 +270,7 @@ netbsd32_unlink(struct lwp *l, const str NETBSD32TOP_UAP(path, const char); - return (sys_unlink(l, &ua, retval)); + return sys_unlink(l, &ua, retval); } int @@ -283,7 +283,7 @@ netbsd32_chdir(struct lwp *l, const stru NETBSD32TOP_UAP(path, const char); - return (sys_chdir(l, &ua, retval)); + return sys_chdir(l, &ua, retval); } int @@ -296,7 +296,7 @@ netbsd32_fchdir(struct lwp *l, const str NETBSD32TO64_UAP(fd); - return (sys_fchdir(l, &ua, retval)); + return sys_fchdir(l, &ua, retval); } int @@ -324,7 +324,7 @@ netbsd32_chmod(struct lwp *l, const stru NETBSD32TOP_UAP(path, const char); NETBSD32TO64_UAP(mode); - return (sys_chmod(l, &ua, retval)); + return sys_chmod(l, &ua, retval); } int @@ -341,7 +341,7 @@ netbsd32_chown(struct lwp *l, const stru NETBSD32TO64_UAP(uid); NETBSD32TO64_UAP(gid); - return (sys_chown(l, &ua, retval)); + return sys_chown(l, &ua, retval); } int @@ -353,9 +353,11 @@ netbsd32_break(struct lwp *l, const stru struct sys_obreak_args ua; NETBSD32TOP_UAP(nsize, char); - return (sys_obreak(l, &ua, retval)); + + return sys_obreak(l, &ua, retval); } +// XXX move into compat_40 int netbsd32_mount(struct lwp *l, const struct netbsd32_mount_args *uap, register_t *retval) { @@ -372,7 +374,8 @@ netbsd32_mount(struct lwp *l, const stru NETBSD32TOP_UAP(path, const char); NETBSD32TO64_UAP(flags); NETBSD32TOP_UAP(data, void); - return (compat_40_sys_mount(l, &ua, retval)); + + return compat_40_sys_mount(l, &ua, retval); #else return ENOSYS; #endif @@ -389,7 +392,8 @@ netbsd32_unmount(struct lwp *l, const st NETBSD32TOP_UAP(path, const char); NETBSD32TO64_UAP(flags); - return (sys_unmount(l, &ua, retval)); + + return sys_unmount(l, &ua, retval); } int @@ -401,7 +405,8 @@ netbsd32_setuid(struct lwp *l, const str struct sys_setuid_args ua; NETBSD32TO64_UAP(uid); - return (sys_setuid(l, &ua, retval)); + + return sys_setuid(l, &ua, retval); } int @@ -417,7 +422,8 @@ netbsd32_accept(struct lwp *l, const str NETBSD32TO64_UAP(s); NETBSD32TOP_UAP(name, struct sockaddr); NETBSD32TOP_UAP(anamelen, socklen_t); - return (sys_accept(l, &ua, retval)); + + return sys_accept(l, &ua, retval); } int @@ -434,7 +440,8 @@ netbsd32_getpeername(struct lwp *l, cons NETBSD32TOP_UAP(asa, struct sockaddr); NETBSD32TOP_UAP(alen, socklen_t); /* NB: do the protocol specific sockaddrs need to be converted? */ - return (sys_getp
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mrg Date: Mon Dec 24 20:27:57 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32_netbsd.c Log Message: pset_create() takes a pointer so it needs special handling. To generate a diff of this commit: cvs rdiff -u -r1.218 -r1.219 src/sys/compat/netbsd32/netbsd32_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_netbsd.c diff -u src/sys/compat/netbsd32/netbsd32_netbsd.c:1.218 src/sys/compat/netbsd32/netbsd32_netbsd.c:1.219 --- src/sys/compat/netbsd32/netbsd32_netbsd.c:1.218 Fri Aug 10 21:44:58 2018 +++ src/sys/compat/netbsd32/netbsd32_netbsd.c Mon Dec 24 20:27:57 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_netbsd.c,v 1.218 2018/08/10 21:44:58 pgoyette Exp $ */ +/* $NetBSD: netbsd32_netbsd.c,v 1.219 2018/12/24 20:27:57 mrg Exp $ */ /* * Copyright (c) 1998, 2001, 2008 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.218 2018/08/10 21:44:58 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.219 2018/12/24 20:27:57 mrg Exp $"); #if defined(_KERNEL_OPT) #include "opt_ddb.h" @@ -2796,8 +2796,11 @@ netbsd32_pset_create(struct lwp *l, /* { syscallarg(netbsd32_psetidp_t) psid; }; */ + struct sys_pset_create_args ua; - return sys_pset_create(l, (const void *)uap, retval); + NETBSD32TOP_UAP(psid, psetid_t); + + return sys_pset_create(l, &ua, retval); } int
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mlelstv Date: Sun Nov 25 17:58:29 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32.h netbsd32_conv.h netbsd32_ioctl.c netbsd32_ioctl.h Log Message: Restore netbsd32 compat code for new NPF ABI. To generate a diff of this commit: cvs rdiff -u -r1.119 -r1.120 src/sys/compat/netbsd32/netbsd32.h cvs rdiff -u -r1.35 -r1.36 src/sys/compat/netbsd32/netbsd32_conv.h cvs rdiff -u -r1.99 -r1.100 src/sys/compat/netbsd32/netbsd32_ioctl.c cvs rdiff -u -r1.65 -r1.66 src/sys/compat/netbsd32/netbsd32_ioctl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32.h diff -u src/sys/compat/netbsd32/netbsd32.h:1.119 src/sys/compat/netbsd32/netbsd32.h:1.120 --- src/sys/compat/netbsd32/netbsd32.h:1.119 Sat Aug 11 03:41:06 2018 +++ src/sys/compat/netbsd32/netbsd32.h Sun Nov 25 17:58:29 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32.h,v 1.119 2018/08/11 03:41:06 mrg Exp $ */ +/* $NetBSD: netbsd32.h,v 1.120 2018/11/25 17:58:29 mlelstv Exp $ */ /* * Copyright (c) 1998, 2001, 2008, 2015 Matthew R. Green @@ -912,6 +912,13 @@ struct netbsd32_plistref { netbsd32_size_t pref_len; }; +/* */ +typedef struct { + netbsd32_pointer_t buf; + netbsd32_size_tlen; + intflags; +} netbsd32_nvlist_ref_t; + /* from */ typedef netbsd32_pointer_t netbsd32_block_infop_t; /* XXX broken */ Index: src/sys/compat/netbsd32/netbsd32_conv.h diff -u src/sys/compat/netbsd32/netbsd32_conv.h:1.35 src/sys/compat/netbsd32/netbsd32_conv.h:1.36 --- src/sys/compat/netbsd32/netbsd32_conv.h:1.35 Thu May 10 02:36:07 2018 +++ src/sys/compat/netbsd32/netbsd32_conv.h Sun Nov 25 17:58:29 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_conv.h,v 1.35 2018/05/10 02:36:07 christos Exp $ */ +/* $NetBSD: netbsd32_conv.h,v 1.36 2018/11/25 17:58:29 mlelstv Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -48,6 +48,8 @@ #include +#include + #include /* converters for structures that we need */ @@ -796,6 +798,34 @@ netbsd32_copyout_plistref(netbsd32_point sizeof(struct netbsd32_plistref)); } +static __inline int +netbsd32_copyin_nvlist_ref_t(netbsd32_pointer_t n32p, nvlist_ref_t *p) +{ + netbsd32_nvlist_ref_t n32nv; + int error; + + error = copyin(NETBSD32PTR64(n32p), &n32nv, + sizeof(netbsd32_nvlist_ref_t)); + if (error) + return error; + p->buf = NETBSD32PTR64(n32nv.buf); + p->len = n32nv.len; + p->flags = n32nv.flags; + return 0; +} + +static __inline int +netbsd32_copyout_nvlist_ref_t(netbsd32_pointer_t n32p, nvlist_ref_t *p) +{ + netbsd32_nvlist_ref_t n32nv; + + NETBSD32PTR32(n32nv.buf, p->buf); + n32nv.len = p->len; + n32nv.flags = p->flags; + return copyout(&n32nv, NETBSD32PTR64(n32p), + sizeof(netbsd32_nvlist_ref_t)); +} + static __inline void netbsd32_to_mq_attr(const struct netbsd32_mq_attr *a32, struct mq_attr *attr) Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.99 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.100 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.99 Fri Oct 12 05:06:05 2018 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Sun Nov 25 17:58:29 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.99 2018/10/12 05:06:05 rin Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.100 2018/11/25 17:58:29 mlelstv Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.99 2018/10/12 05:06:05 rin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.100 2018/11/25 17:58:29 mlelstv Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -287,20 +287,27 @@ netbsd32_to_plistref(struct netbsd32_pli } static inline void +netbsd32_to_nvlist_ref_t(netbsd32_nvlist_ref_t *s32p, nvlist_ref_t *p, u_long cmd) +{ + + p->buf = NETBSD32PTR64(s32p->buf); + p->len = s32p->len; + p->flags = s32p->flags; +} + +static inline void netbsd32_to_u_long(netbsd32_u_long *s32p, u_long *p, u_long cmd) { *p = (u_long)*s32p; } -#ifdef notdef static inline void netbsd32_to_voidp(netbsd32_voidp *s32p, voidp *p, u_long cmd) { *p = (void *)NETBSD32PTR64(*s32p); } -#endif static inline void netbsd32_to_wdog_conf(struct netbsd32_wdog_conf *s32p, struct wdog_conf *p, u_long cmd) @@ -311,6 +318,28 @@ netbsd32_to_wdog_conf(struct netbsd32_wd } static inline void +netbsd32_to_npf_ioctl_table( +const struct netbsd32_npf_ioctl_table *s32p, +struct npf_ioctl_table *p, +u_long cmd) +{ + + p->nct_cmd = s32p->nct_cmd; + p->nct_name = NETBSD32PTR64(s32p->nct_name); + switch (s32p->nct_cmd) { + case NPF_CMD_TABLE_LOOKUP: + case NPF_CMD_TABLE_ADD: + case NPF_CMD_TABLE_REMOVE: + p->nct_data.ent = s32p->nct_data.ent; + break; + case NPF_CMD_TABLE_LIST: + p->nct_data.buf.buf = NETBSD32PTR64(s3
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: maxv Date: Mon Nov 12 06:53:43 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32_socket.c Log Message: Fix inverted logic, which leads to buffer overflow. Detected by kASan. To generate a diff of this commit: cvs rdiff -u -r1.47 -r1.48 src/sys/compat/netbsd32/netbsd32_socket.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_socket.c diff -u src/sys/compat/netbsd32/netbsd32_socket.c:1.47 src/sys/compat/netbsd32/netbsd32_socket.c:1.48 --- src/sys/compat/netbsd32/netbsd32_socket.c:1.47 Sun May 13 00:04:23 2018 +++ src/sys/compat/netbsd32/netbsd32_socket.c Mon Nov 12 06:53:43 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_socket.c,v 1.47 2018/05/13 00:04:23 christos Exp $ */ +/* $NetBSD: netbsd32_socket.c,v 1.48 2018/11/12 06:53:43 maxv Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_socket.c,v 1.47 2018/05/13 00:04:23 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_socket.c,v 1.48 2018/11/12 06:53:43 maxv Exp $"); #include #include @@ -102,7 +102,7 @@ copyout32_msg_control_mbuf(struct lwp *l } ktrkuser(mbuftypes[MT_CONTROL], cmsg, cmsg->cmsg_len); - error = copyout(&cmsg32, *q, MAX(i, sizeof(cmsg32))); + error = copyout(&cmsg32, *q, MIN(i, sizeof(cmsg32))); if (error) return (error); if (i > CMSG32_LEN(0)) {
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: rin Date: Fri Oct 12 05:06:05 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.c Log Message: PR kern/53666 Correct misleading names of dummy variables. No binary changes intended. To generate a diff of this commit: cvs rdiff -u -r1.98 -r1.99 src/sys/compat/netbsd32/netbsd32_ioctl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.98 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.99 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.98 Thu Oct 11 15:23:22 2018 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Fri Oct 12 05:06:05 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.98 2018/10/11 15:23:22 christos Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.99 2018/10/12 05:06:05 rin Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.98 2018/10/11 15:23:22 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.99 2018/10/12 05:06:05 rin Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -1346,7 +1346,7 @@ netbsd32_ioctl(struct lwp *l, const stru case BIOCGDLTLIST32: IOCTL_STRUCT_CONV_TO(BIOCGDLTLIST, bpf_dltlist); case BIOCSRTIMEOUT32: -#define netbsd32_to_timeval(p, s32p, cmd) netbsd32_to_timeval(p, s32p) +#define netbsd32_to_timeval(s32p, p, cmd) netbsd32_to_timeval(s32p, p) #define netbsd32_from_timeval(p, s32p, cmd) netbsd32_from_timeval(p, s32p) IOCTL_STRUCT_CONV_TO(BIOCSRTIMEOUT, timeval); #undef netbsd32_to_timeval
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: christos Date: Thu Oct 11 15:23:22 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.c netbsd32_ioctl.h Log Message: PR/53666: Rin Okuyama: tcpdump for i386 does not work with COMPAT_NETBSD32 on amd64. Add BIOCSRTIMEOUT32. To generate a diff of this commit: cvs rdiff -u -r1.97 -r1.98 src/sys/compat/netbsd32/netbsd32_ioctl.c cvs rdiff -u -r1.64 -r1.65 src/sys/compat/netbsd32/netbsd32_ioctl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.97 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.98 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.97 Sat Oct 6 11:22:16 2018 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Thu Oct 11 11:23:22 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.97 2018/10/06 15:22:16 christos Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.98 2018/10/11 15:23:22 christos Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.97 2018/10/06 15:22:16 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.98 2018/10/11 15:23:22 christos Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -1345,6 +1345,12 @@ netbsd32_ioctl(struct lwp *l, const stru IOCTL_STRUCT_CONV_TO(BIOCSUDPF, bpf_program); case BIOCGDLTLIST32: IOCTL_STRUCT_CONV_TO(BIOCGDLTLIST, bpf_dltlist); + case BIOCSRTIMEOUT32: +#define netbsd32_to_timeval(p, s32p, cmd) netbsd32_to_timeval(p, s32p) +#define netbsd32_from_timeval(p, s32p, cmd) netbsd32_from_timeval(p, s32p) + IOCTL_STRUCT_CONV_TO(BIOCSRTIMEOUT, timeval); +#undef netbsd32_to_timeval +#undef netbsd32_from_timeval case WSDISPLAYIO_ADDSCREEN32: IOCTL_STRUCT_CONV_TO(WSDISPLAYIO_ADDSCREEN, wsdisplay_addscreendata); Index: src/sys/compat/netbsd32/netbsd32_ioctl.h diff -u src/sys/compat/netbsd32/netbsd32_ioctl.h:1.64 src/sys/compat/netbsd32/netbsd32_ioctl.h:1.65 --- src/sys/compat/netbsd32/netbsd32_ioctl.h:1.64 Sat Sep 29 10:41:35 2018 +++ src/sys/compat/netbsd32/netbsd32_ioctl.h Thu Oct 11 11:23:22 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.h,v 1.64 2018/09/29 14:41:35 rmind Exp $ */ +/* $NetBSD: netbsd32_ioctl.h,v 1.65 2018/10/11 15:23:22 christos Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -116,6 +116,7 @@ struct netbsd32_bpf_dltlist { #define BIOCSTCPF32 _IOW('B',114, struct netbsd32_bpf_program) #define BIOCSUDPF32 _IOW('B',115, struct netbsd32_bpf_program) #define BIOCGDLTLIST32 _IOWR('B',119, struct netbsd32_bpf_dltlist) +#define BIOCSRTIMEOUT32 _IOW('B',122, struct netbsd32_timeval) struct netbsd32_wsdisplay_addscreendata {
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: christos Date: Sat Oct 6 15:22:16 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.c Log Message: comment out unused To generate a diff of this commit: cvs rdiff -u -r1.96 -r1.97 src/sys/compat/netbsd32/netbsd32_ioctl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.96 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.97 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.96 Sat Sep 29 10:41:35 2018 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Sat Oct 6 11:22:16 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.96 2018/09/29 14:41:35 rmind Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.97 2018/10/06 15:22:16 christos Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.96 2018/09/29 14:41:35 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.97 2018/10/06 15:22:16 christos Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -293,12 +293,14 @@ netbsd32_to_u_long(netbsd32_u_long *s32p *p = (u_long)*s32p; } +#ifdef notdef static inline void netbsd32_to_voidp(netbsd32_voidp *s32p, voidp *p, u_long cmd) { *p = (void *)NETBSD32PTR64(*s32p); } +#endif static inline void netbsd32_to_wdog_conf(struct netbsd32_wdog_conf *s32p, struct wdog_conf *p, u_long cmd) @@ -855,13 +857,14 @@ netbsd32_from_u_long(u_long *p, netbsd32 *s32p = (netbsd32_u_long)*p; } +#ifdef notdef static inline void netbsd32_from_voidp(voidp *p, netbsd32_voidp *s32p, u_long cmd) { NETBSD32PTR32(*s32p, *p); } - +#endif static inline void netbsd32_from_clockctl_settimeofday(
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: jdolecek Date: Mon Sep 24 21:15:39 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.c netbsd32_ioctl.h Log Message: fix DIOCLWEDGES to at least not fail with ENOTTY due to struct size difference, but probably more needs to be done to work if any actual wedges are configured To generate a diff of this commit: cvs rdiff -u -r1.94 -r1.95 src/sys/compat/netbsd32/netbsd32_ioctl.c cvs rdiff -u -r1.62 -r1.63 src/sys/compat/netbsd32/netbsd32_ioctl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.94 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.95 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.94 Mon Sep 24 21:08:08 2018 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Mon Sep 24 21:15:39 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.94 2018/09/24 21:08:08 jdolecek Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.95 2018/09/24 21:15:39 jdolecek Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.94 2018/09/24 21:08:08 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.95 2018/09/24 21:15:39 jdolecek Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -552,7 +552,7 @@ netbsd32_to_dkwedge_list( struct dkwedge_list *p, u_long cmd) { - p->dkwl_buf = s32p->dkwl_buf; + p->dkwl_buf = NETBSD32PTR64(s32p->dkwl_buf); p->dkwl_bufsize = s32p->dkwl_bufsize; p->dkwl_nwedges = s32p->dkwl_nwedges; p->dkwl_ncopied = s32p->dkwl_ncopied; @@ -1017,7 +1017,7 @@ netbsd32_from_dkwedge_list( struct netbsd32_dkwedge_list *s32p, u_long cmd) { - s32p->dkwl_buf = p->dkwl_buf; + NETBSD32PTR32(s32p->dkwl_buf, p->dkwl_buf); s32p->dkwl_bufsize = p->dkwl_bufsize; s32p->dkwl_nwedges = p->dkwl_nwedges; s32p->dkwl_ncopied = p->dkwl_ncopied; Index: src/sys/compat/netbsd32/netbsd32_ioctl.h diff -u src/sys/compat/netbsd32/netbsd32_ioctl.h:1.62 src/sys/compat/netbsd32/netbsd32_ioctl.h:1.63 --- src/sys/compat/netbsd32/netbsd32_ioctl.h:1.62 Mon Sep 24 21:08:08 2018 +++ src/sys/compat/netbsd32/netbsd32_ioctl.h Mon Sep 24 21:15:39 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.h,v 1.62 2018/09/24 21:08:08 jdolecek Exp $ */ +/* $NetBSD: netbsd32_ioctl.h,v 1.63 2018/09/24 21:15:39 jdolecek Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -604,11 +604,11 @@ struct netbsd32_devrescanargs { /* From sys/disk.h, sys/dkio.h */ struct netbsd32_dkwedge_list { - void *dkwl_buf; /* storage for dkwedge_info array */ + netbsd32_voidp dkwl_buf; /* storage for dkwedge_info array */ netbsd32_size_t dkwl_bufsize; /* size of that buffer */ u_int dkwl_nwedges; /* total number of wedges */ u_int dkwl_ncopied; /* number actually copied */ -}; +} __packed; #define DIOCLWEDGES32 _IOWR('d', 124, struct netbsd32_dkwedge_list)
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: jdolecek Date: Mon Sep 24 21:08:08 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.c netbsd32_ioctl.h Log Message: add support for DIOCGSTRATEGY and DIOCSSTRATEGY To generate a diff of this commit: cvs rdiff -u -r1.93 -r1.94 src/sys/compat/netbsd32/netbsd32_ioctl.c cvs rdiff -u -r1.61 -r1.62 src/sys/compat/netbsd32/netbsd32_ioctl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.93 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.94 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.93 Mon Sep 3 16:29:29 2018 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Mon Sep 24 21:08:08 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.93 2018/09/03 16:29:29 riastradh Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.94 2018/09/24 21:08:08 jdolecek Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.93 2018/09/03 16:29:29 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.94 2018/09/24 21:08:08 jdolecek Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -536,6 +536,17 @@ netbsd32_to_devrescanargs( } static inline void +netbsd32_to_disk_strategy( +const struct netbsd32_disk_strategy *s32p, +struct disk_strategy *p, +u_long cmd) +{ + memcpy(p->dks_name, s32p->dks_name, sizeof(p->dks_name)); + p->dks_param = NETBSD32PTR64(s32p->dks_param); + p->dks_paramlen = s32p->dks_paramlen; +} + +static inline void netbsd32_to_dkwedge_list( const struct netbsd32_dkwedge_list *s32p, struct dkwedge_list *p, @@ -990,6 +1001,17 @@ netbsd32_from_devrescanargs( } static inline void +netbsd32_from_disk_strategy( +const struct disk_strategy *p, +struct netbsd32_disk_strategy *s32p, +u_long cmd) +{ + memcpy(s32p->dks_name, p->dks_name, sizeof(p->dks_name)); + NETBSD32PTR32(s32p->dks_param, p->dks_param); + s32p->dks_paramlen = p->dks_paramlen; +} + +static inline void netbsd32_from_dkwedge_list( const struct dkwedge_list *p, struct netbsd32_dkwedge_list *s32p, @@ -1457,6 +1479,10 @@ netbsd32_ioctl(struct lwp *l, const stru case DRVGETEVENT32: IOCTL_STRUCT_CONV_TO(DRVGETEVENT, plistref); + case DIOCGSTRATEGY32: + IOCTL_STRUCT_CONV_TO(DIOCGSTRATEGY, disk_strategy); + case DIOCSSTRATEGY32: + IOCTL_STRUCT_CONV_TO(DIOCSSTRATEGY, disk_strategy); case DIOCLWEDGES32: IOCTL_STRUCT_CONV_TO(DIOCLWEDGES, dkwedge_list); Index: src/sys/compat/netbsd32/netbsd32_ioctl.h diff -u src/sys/compat/netbsd32/netbsd32_ioctl.h:1.61 src/sys/compat/netbsd32/netbsd32_ioctl.h:1.62 --- src/sys/compat/netbsd32/netbsd32_ioctl.h:1.61 Thu Sep 6 06:41:59 2018 +++ src/sys/compat/netbsd32/netbsd32_ioctl.h Mon Sep 24 21:08:08 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.h,v 1.61 2018/09/06 06:41:59 maxv Exp $ */ +/* $NetBSD: netbsd32_ioctl.h,v 1.62 2018/09/24 21:08:08 jdolecek Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -612,3 +612,11 @@ struct netbsd32_dkwedge_list { #define DIOCLWEDGES32 _IOWR('d', 124, struct netbsd32_dkwedge_list) +struct netbsd32_disk_strategy { + char dks_name[DK_STRATEGYNAMELEN]; /* name of strategy */ + netbsd32_charp dks_param; /* notyet; should be NULL */ + netbsd32_size_t dks_paramlen; /* notyet; should be 0 */ +} __packed; + +#define DIOCGSTRATEGY32 _IOR('d', 125, struct netbsd32_disk_strategy) +#define DIOCSSTRATEGY32 _IOW('d', 126, struct netbsd32_disk_strategy)
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: maxv Date: Sun Sep 2 16:13:42 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.h Log Message: remove dead references to IPF; also remove references to netccitt/, it was removed 12 years ago. To generate a diff of this commit: cvs rdiff -u -r1.59 -r1.60 src/sys/compat/netbsd32/netbsd32_ioctl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.h diff -u src/sys/compat/netbsd32/netbsd32_ioctl.h:1.59 src/sys/compat/netbsd32/netbsd32_ioctl.h:1.60 --- src/sys/compat/netbsd32/netbsd32_ioctl.h:1.59 Tue Mar 6 07:59:59 2018 +++ src/sys/compat/netbsd32/netbsd32_ioctl.h Sun Sep 2 16:13:42 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.h,v 1.59 2018/03/06 07:59:59 mlelstv Exp $ */ +/* $NetBSD: netbsd32_ioctl.h,v 1.60 2018/09/02 16:13:42 maxv Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -218,36 +218,6 @@ net/if_atm.h:89:#define SIOCATMDIS _IOWR net/if_ppp.h:105:#define PPPIOCSCOMPRESS _IOW('t', 77, struct ppp_option_data) -netccitt/x25.h:157:#define SIOCSIFCONF_X25 _IOW('i', 12, struct ifreq_x25) /* set ifnet config */ -netccitt/x25.h:158:#define SIOCGIFCONF_X25 _IOWR('i',13, struct ifreq_x25) /* get ifnet config */ - -netinet/ip_fil.h:46:#define SIOCGETFS _IOR('r', 64, struct friostat) -netinet/ip_fil.h:56:#define SIOCFRZST _IOWR('r', 74, struct friostat) - -netinet/ip_fil.h:42:#define SIOCADAFR _IOW('r', 60, struct frentry) -netinet/ip_fil.h:43:#define SIOCRMAFR _IOW('r', 61, struct frentry) -netinet/ip_fil.h:49:#define SIOCADIFR _IOW('r', 67, struct frentry) -netinet/ip_fil.h:50:#define SIOCRMIFR _IOW('r', 68, struct frentry) -netinet/ip_fil.h:52:#define SIOCINAFR _IOW('r', 70, struct frentry) -netinet/ip_fil.h:53:#define SIOCINIFR _IOW('r', 71, struct frentry) -netinet/ip_fil.h:57:#define SIOCZRLST _IOWR('r', 75, struct frentry) - -netinet/ip_fil.h:78:#define SIOCAUTHW _IOWR(r, 76, struct fr_info) -netinet/ip_fil.h:79:#define SIOCAUTHR _IOWR(r, 77, struct fr_info) - -netinet/ip_fil.h:60:#define SIOCATHST _IOWR('r', 78, struct fr_authstat) - -netinet/ip_nat.h:22:#define SIOCADNAT _IOW('r', 80, struct ipnat) -netinet/ip_nat.h:23:#define SIOCRMNAT _IOW('r', 81, struct ipnat) - -netinet/ip_nat.h:24:#define SIOCGNATS _IOR('r', 82, struct natstat) - -netinet/ip_nat.h:25:#define SIOCGNATL _IOWR('r', 83, struct natlookup) - -netinet/ip_nat.h:26:#define SIOCGFRST _IOR('r', 84, struct ipfrstat) - -netinet/ip_nat.h:27:#define SIOCGIPST _IOR('r', 85, struct ips_stat) - sys/module.h? sys/rnd.h:186:#define RNDGETPOOL _IOR('R', 103, u_char *) /* get whole pool */
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mrg Date: Sat Aug 11 03:41:06 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32.h netbsd32_fs.c Log Message: support nullfs in netbsd32. To generate a diff of this commit: cvs rdiff -u -r1.118 -r1.119 src/sys/compat/netbsd32/netbsd32.h cvs rdiff -u -r1.80 -r1.81 src/sys/compat/netbsd32/netbsd32_fs.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32.h diff -u src/sys/compat/netbsd32/netbsd32.h:1.118 src/sys/compat/netbsd32/netbsd32.h:1.119 --- src/sys/compat/netbsd32/netbsd32.h:1.118 Thu May 10 02:36:07 2018 +++ src/sys/compat/netbsd32/netbsd32.h Sat Aug 11 03:41:06 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32.h,v 1.118 2018/05/10 02:36:07 christos Exp $ */ +/* $NetBSD: netbsd32.h,v 1.119 2018/08/11 03:41:06 mrg Exp $ */ /* * Copyright (c) 1998, 2001, 2008, 2015 Matthew R. Green @@ -965,7 +965,7 @@ struct netbsd32_tmpfs_args { /* from */ struct netbsd32_iso_args { netbsd32_charp fspec; - struct export_args30 _pad1; + struct netbsd32_export_args30 _pad1; int flags; }; @@ -1021,8 +1021,6 @@ struct netbsd32_mountd_exports_list { netbsd32_export_argsp mel_exports; }; -/* no struct export_args30 yet */ - /* from */ struct netbsd32_nfs_args { int32_t version; /* args structure version number */ @@ -1060,6 +1058,17 @@ struct netbsd32_msdosfs_args { int gmtoff; /* v3: offset from UTC in seconds */ }; +/* from */ +struct netbsd32_layer_args { + netbsd32_charp target; /* Target of loopback */ + struct netbsd32_export_args30 _pad1; /* compat with old userland tools */ +}; + +/* from */ +struct netbsd32_null_args { + struct netbsd32_layer_args la; /* generic layerfs args */ +}; + struct netbsd32_posix_spawn_file_actions_entry { enum { FAE32_OPEN, FAE32_DUP2, FAE32_CLOSE } fae_action; Index: src/sys/compat/netbsd32/netbsd32_fs.c diff -u src/sys/compat/netbsd32/netbsd32_fs.c:1.80 src/sys/compat/netbsd32/netbsd32_fs.c:1.81 --- src/sys/compat/netbsd32/netbsd32_fs.c:1.80 Thu Jun 1 02:45:08 2017 +++ src/sys/compat/netbsd32/netbsd32_fs.c Sat Aug 11 03:41:06 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_fs.c,v 1.80 2017/06/01 02:45:08 chs Exp $ */ +/* $NetBSD: netbsd32_fs.c,v 1.81 2018/08/11 03:41:06 mrg Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_fs.c,v 1.80 2017/06/01 02:45:08 chs Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_fs.c,v 1.81 2018/08/11 03:41:06 mrg Exp $"); #include #include @@ -54,6 +54,7 @@ __KERNEL_RCSID(0, "$NetBSD: netbsd32_fs. #include #include #include +#include #define NFS_ARGS_ONLY #include @@ -799,6 +800,7 @@ netbsd32___mount50(struct lwp *l, const struct netbsd32_nfs_args nfs_args; struct netbsd32_msdosfs_args msdosfs_args; struct netbsd32_tmpfs_args tmpfs_args; + struct netbsd32_null_args null_args; } fs_args32; union { struct ufs_args ufs_args; @@ -807,6 +809,7 @@ netbsd32___mount50(struct lwp *l, const struct nfs_args nfs_args; struct msdosfs_args msdosfs_args; struct tmpfs_args tmpfs_args; + struct null_args null_args; } fs_args; const char *type = SCARG_P32(uap, type); const char *path = SCARG_P32(uap, path); @@ -953,6 +956,20 @@ netbsd32___mount50(struct lwp *l, const data_seg = UIO_SYSSPACE; data = &fs_args.nfs_args; data_len = sizeof(fs_args.nfs_args); + } else if (strcmp(mtype, MOUNT_NULL) == 0) { + if (data_len > sizeof(fs_args32.null_args)) + return EINVAL; + if ((flags & MNT_GETARGS) == 0) { + error = copyin(data, &fs_args32.null_args, + sizeof(fs_args32.null_args)); + if (error) +return error; + fs_args.null_args.la.target = + NETBSD32PTR64(fs_args32.null_args.la.target); + } + data_seg = UIO_SYSSPACE; + data = &fs_args.null_args; + data_len = sizeof(fs_args.null_args); } else { data_seg = UIO_USERSPACE; } @@ -1032,6 +1049,13 @@ netbsd32___mount50(struct lwp *l, const fs_args.nfs_args.hostname); error = copyout(&fs_args32.nfs_args, data, sizeof(fs_args32.nfs_args)); + } else if (strcmp(mtype, MOUNT_NULL) == 0) { + if (data_len != sizeof(fs_args.null_args)) +return EINVAL; + NETBSD32PTR32(fs_args32.null_args.la.target, + fs_args.null_args.la.target); + error = copyout(&fs_args32.null_args, data, + sizeof(fs_args32.null_args)); } } return error;
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: rjs Date: Tue Jul 31 21:02:01 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32_syscall.h netbsd32_syscallargs.h netbsd32_syscalls.c netbsd32_syscalls_autoload.c netbsd32_sysent.c netbsd32_systrace_args.c Log Message: regen. To generate a diff of this commit: cvs rdiff -u -r1.136 -r1.137 src/sys/compat/netbsd32/netbsd32_syscall.h cvs rdiff -u -r1.135 -r1.136 src/sys/compat/netbsd32/netbsd32_syscallargs.h cvs rdiff -u -r1.134 -r1.135 src/sys/compat/netbsd32/netbsd32_syscalls.c cvs rdiff -u -r1.14 -r1.15 \ src/sys/compat/netbsd32/netbsd32_syscalls_autoload.c cvs rdiff -u -r1.133 -r1.134 src/sys/compat/netbsd32/netbsd32_sysent.c cvs rdiff -u -r1.25 -r1.26 src/sys/compat/netbsd32/netbsd32_systrace_args.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_syscall.h diff -u src/sys/compat/netbsd32/netbsd32_syscall.h:1.136 src/sys/compat/netbsd32/netbsd32_syscall.h:1.137 --- src/sys/compat/netbsd32/netbsd32_syscall.h:1.136 Thu Jul 12 10:46:48 2018 +++ src/sys/compat/netbsd32/netbsd32_syscall.h Tue Jul 31 21:02:00 2018 @@ -1,10 +1,10 @@ -/* $NetBSD: netbsd32_syscall.h,v 1.136 2018/07/12 10:46:48 maxv Exp $ */ +/* $NetBSD: netbsd32_syscall.h,v 1.137 2018/07/31 21:02:00 rjs Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.121 2018/05/10 02:36:07 christos Exp + * created from NetBSD: syscalls.master,v 1.123 2018/07/31 21:00:02 rjs Exp */ #ifndef _NETBSD32_SYS_SYSCALL_H_ @@ -518,6 +518,9 @@ /* syscall: "netbsd32_fpathconf" ret: "netbsd32_long" args: "int" "int" */ #define NETBSD32_SYS_netbsd32_fpathconf 192 +/* syscall: "netbsd32_getsockopt2" ret: "int" args: "int" "int" "int" "netbsd32_voidp" "netbsd32_intp" */ +#define NETBSD32_SYS_netbsd32_getsockopt2 193 + /* syscall: "netbsd32_getrlimit" ret: "int" args: "int" "netbsd32_rlimitp_t" */ #define NETBSD32_SYS_netbsd32_getrlimit 194 Index: src/sys/compat/netbsd32/netbsd32_syscallargs.h diff -u src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.135 src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.136 --- src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.135 Thu May 10 02:36:26 2018 +++ src/sys/compat/netbsd32/netbsd32_syscallargs.h Tue Jul 31 21:02:00 2018 @@ -1,10 +1,10 @@ -/* $NetBSD: netbsd32_syscallargs.h,v 1.135 2018/05/10 02:36:26 christos Exp $ */ +/* $NetBSD: netbsd32_syscallargs.h,v 1.136 2018/07/31 21:02:00 rjs Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.121 2018/05/10 02:36:07 christos Exp + * created from NetBSD: syscalls.master,v 1.123 2018/07/31 21:00:02 rjs Exp */ #ifndef _NETBSD32_SYS_SYSCALLARGS_H_ @@ -967,6 +967,15 @@ struct netbsd32_fpathconf_args { }; check_syscall_args(netbsd32_fpathconf) +struct netbsd32_getsockopt2_args { + syscallarg(int) s; + syscallarg(int) level; + syscallarg(int) name; + syscallarg(netbsd32_voidp) val; + syscallarg(netbsd32_intp) avalsize; +}; +check_syscall_args(netbsd32_getsockopt2) + struct netbsd32_getrlimit_args { syscallarg(int) which; syscallarg(netbsd32_rlimitp_t) rlp; @@ -2941,6 +2950,8 @@ int netbsd32_pathconf(struct lwp *, cons int netbsd32_fpathconf(struct lwp *, const struct netbsd32_fpathconf_args *, register_t *); +int netbsd32_getsockopt2(struct lwp *, const struct netbsd32_getsockopt2_args *, register_t *); + int netbsd32_getrlimit(struct lwp *, const struct netbsd32_getrlimit_args *, register_t *); int netbsd32_setrlimit(struct lwp *, const struct netbsd32_setrlimit_args *, register_t *); Index: src/sys/compat/netbsd32/netbsd32_syscalls.c diff -u src/sys/compat/netbsd32/netbsd32_syscalls.c:1.134 src/sys/compat/netbsd32/netbsd32_syscalls.c:1.135 --- src/sys/compat/netbsd32/netbsd32_syscalls.c:1.134 Thu Jul 12 10:46:48 2018 +++ src/sys/compat/netbsd32/netbsd32_syscalls.c Tue Jul 31 21:02:00 2018 @@ -1,14 +1,14 @@ -/* $NetBSD: netbsd32_syscalls.c,v 1.134 2018/07/12 10:46:48 maxv Exp $ */ +/* $NetBSD: netbsd32_syscalls.c,v 1.135 2018/07/31 21:02:00 rjs Exp $ */ /* * System call names. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.121 2018/05/10 02:36:07 christos Exp + * created from NetBSD: syscalls.master,v 1.123 2018/07/31 21:00:02 rjs Exp */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_syscalls.c,v 1.134 2018/07/12 10:46:48 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_syscalls.c,v 1.135 2018/07/31 21:02:00 rjs Exp $"); #if defined(_KERNEL_OPT) #if defined(_KERNEL_OPT) @@ -226,7 +226,7 @@ const char *const netbsd32_syscallnames[ /* 190 */ "compat_12_netbsd32_lstat12", /* 191 */ "netbsd32_pathconf", /* 192 */ "netbsd32_fpathconf", - /* 193 */ "#193 (unimplemented)", + /* 193 */ "
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: rjs Date: Tue Jul 31 21:00:02 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32_netbsd.c syscalls.master Log Message: Add getsockopt2(). To generate a diff of this commit: cvs rdiff -u -r1.216 -r1.217 src/sys/compat/netbsd32/netbsd32_netbsd.c cvs rdiff -u -r1.122 -r1.123 src/sys/compat/netbsd32/syscalls.master Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_netbsd.c diff -u src/sys/compat/netbsd32/netbsd32_netbsd.c:1.216 src/sys/compat/netbsd32/netbsd32_netbsd.c:1.217 --- src/sys/compat/netbsd32/netbsd32_netbsd.c:1.216 Sun May 6 13:40:51 2018 +++ src/sys/compat/netbsd32/netbsd32_netbsd.c Tue Jul 31 21:00:02 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_netbsd.c,v 1.216 2018/05/06 13:40:51 kamil Exp $ */ +/* $NetBSD: netbsd32_netbsd.c,v 1.217 2018/07/31 21:00:02 rjs Exp $ */ /* * Copyright (c) 1998, 2001, 2008 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.216 2018/05/06 13:40:51 kamil Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.217 2018/07/31 21:00:02 rjs Exp $"); #if defined(_KERNEL_OPT) #include "opt_ddb.h" @@ -1040,6 +1040,26 @@ netbsd32_getsockopt(struct lwp *l, const } int +netbsd32_getsockopt2(struct lwp *l, const struct netbsd32_getsockopt2_args *uap, register_t *retval) +{ + /* { + syscallarg(int) s; + syscallarg(int) level; + syscallarg(int) name; + syscallarg(netbsd32_voidp) val; + syscallarg(netbsd32_intp) avalsize; + } */ + struct sys_getsockopt2_args ua; + + NETBSD32TO64_UAP(s); + NETBSD32TO64_UAP(level); + NETBSD32TO64_UAP(name); + NETBSD32TOP_UAP(val, void); + NETBSD32TOP_UAP(avalsize, socklen_t); + return (sys_getsockopt2(l, &ua, retval)); +} + +int netbsd32_rename(struct lwp *l, const struct netbsd32_rename_args *uap, register_t *retval) { /* { Index: src/sys/compat/netbsd32/syscalls.master diff -u src/sys/compat/netbsd32/syscalls.master:1.122 src/sys/compat/netbsd32/syscalls.master:1.123 --- src/sys/compat/netbsd32/syscalls.master:1.122 Thu Jul 12 10:46:48 2018 +++ src/sys/compat/netbsd32/syscalls.master Tue Jul 31 21:00:02 2018 @@ -1,4 +1,4 @@ - $NetBSD: syscalls.master,v 1.122 2018/07/12 10:46:48 maxv Exp $ + $NetBSD: syscalls.master,v 1.123 2018/07/31 21:00:02 rjs Exp $ ; from: NetBSD: syscalls.master,v 1.81 1998/07/05 08:49:50 jonathan Exp ; @(#)syscalls.master 8.2 (Berkeley) 1/13/94 @@ -384,7 +384,8 @@ 191 STD { netbsd32_long|netbsd32||pathconf(netbsd32_charp path, \ int name); } 192 STD { netbsd32_long|netbsd32||fpathconf(int fd, int name); } -193 UNIMPL +193 STD { int|netbsd32||getsockopt2(int s, int level, int name, \ + netbsd32_voidp val, netbsd32_intp avalsize); } 194 STD { int|netbsd32||getrlimit(int which, \ netbsd32_rlimitp_t rlp); } 195 STD { int|netbsd32||setrlimit(int which, \
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: kamil Date: Sat May 26 21:07:47 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32_sysctl.c Log Message: Fix sysctl(3):vm.minaddress in compat_netbsd32(8) Cast minaddress from LP64-specific long (64-bit) to 32-bit long (int). This value is usually 0 or 0+PAGE_SIZE. There is need to change type in order to keep original code functional, without prompting the value with 'long long' or a similar approach. There are more CTLTYPE_LONG with a need for fixes in the compat code: uipc_usrreq.c 1975 CTLTYPE_LONG, "sendspace", 1981 CTLTYPE_LONG, "recvspace", 1987 CTLTYPE_LONG, "sendspace", 1993 CTLTYPE_LONG, "recvspace", vfs_bio.c 1921 CTLTYPE_LONG, "bufmem", 1928 CTLTYPE_LONG, "bufmem_lowater", 1935 CTLTYPE_LONG, "bufmem_hiwater", Sponsored by To generate a diff of this commit: cvs rdiff -u -r1.39 -r1.40 src/sys/compat/netbsd32/netbsd32_sysctl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_sysctl.c diff -u src/sys/compat/netbsd32/netbsd32_sysctl.c:1.39 src/sys/compat/netbsd32/netbsd32_sysctl.c:1.40 --- src/sys/compat/netbsd32/netbsd32_sysctl.c:1.39 Sat May 26 18:18:19 2018 +++ src/sys/compat/netbsd32/netbsd32_sysctl.c Sat May 26 21:07:47 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_sysctl.c,v 1.39 2018/05/26 18:18:19 kamil Exp $ */ +/* $NetBSD: netbsd32_sysctl.c,v 1.40 2018/05/26 21:07:47 kamil Exp $ */ /* * Copyright (c) 2003 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_sysctl.c,v 1.39 2018/05/26 18:18:19 kamil Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_sysctl.c,v 1.40 2018/05/26 21:07:47 kamil Exp $"); #if defined(_KERNEL_OPT) #include "opt_ddb.h" @@ -153,6 +153,12 @@ netbsd32_sysctl_init(void) SYSCTL_DESCR("Maximum user address"), NULL, VM_MAXUSER_ADDRESS32, NULL, 0, CTL_VM, VM_MAXADDRESS, CTL_EOL); + sysctl_createv(&netbsd32_clog, 0, &_root, NULL, + CTLFLAG_PERMANENT|CTLFLAG_IMMEDIATE, + CTLTYPE_INT, "minaddress", + SYSCTL_DESCR("Minimum user address"), + NULL, VM_MIN_ADDRESS, NULL, 0, + CTL_VM, VM_MINADDRESS, CTL_EOL); sysctl_createv(&netbsd32_clog, 0, &_root, NULL, CTLFLAG_PERMANENT,
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: kamil Date: Sat May 26 18:18:19 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32_sysctl.c Log Message: Handle vm.maxaddress in compat_netbsd32(8) Return VM_MAXUSER_ADDRESS32 instead of the 64-bit specific address. Use CTLTYPE_INT instead of CTLTYPE_LONG in order to retain the same integer type between 64-bit native kernel and 32-bit emulated program. There probably should be CTLTYPE_LONG32 available for this purpose. On NetBSD/i386: vm.maxaddress=bfeff000 On NetBSD/amd64: vm.maxaddress=7fbfdfeff000 On NetBSD/amd64 running i386 program: vm.maxaddress=f000 A 32-bit program on the 64-bit kernel can use larger user space, this difference is on purpose and expected. Sponsored by To generate a diff of this commit: cvs rdiff -u -r1.38 -r1.39 src/sys/compat/netbsd32/netbsd32_sysctl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_sysctl.c diff -u src/sys/compat/netbsd32/netbsd32_sysctl.c:1.38 src/sys/compat/netbsd32/netbsd32_sysctl.c:1.39 --- src/sys/compat/netbsd32/netbsd32_sysctl.c:1.38 Tue Oct 31 16:10:25 2017 +++ src/sys/compat/netbsd32/netbsd32_sysctl.c Sat May 26 18:18:19 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_sysctl.c,v 1.38 2017/10/31 16:10:25 kre Exp $ */ +/* $NetBSD: netbsd32_sysctl.c,v 1.39 2018/05/26 18:18:19 kamil Exp $ */ /* * Copyright (c) 2003 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_sysctl.c,v 1.38 2017/10/31 16:10:25 kre Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_sysctl.c,v 1.39 2018/05/26 18:18:19 kamil Exp $"); #if defined(_KERNEL_OPT) #include "opt_ddb.h" @@ -147,6 +147,12 @@ netbsd32_sysctl_init(void) netbsd32_sysctl_vm_loadavg, 0, NULL, sizeof(struct netbsd32_loadavg), CTL_VM, VM_LOADAVG, CTL_EOL); + sysctl_createv(&netbsd32_clog, 0, &_root, NULL, + CTLFLAG_PERMANENT|CTLFLAG_IMMEDIATE, + CTLTYPE_INT, "maxaddress", + SYSCTL_DESCR("Maximum user address"), + NULL, VM_MAXUSER_ADDRESS32, NULL, 0, + CTL_VM, VM_MAXADDRESS, CTL_EOL); sysctl_createv(&netbsd32_clog, 0, &_root, NULL, CTLFLAG_PERMANENT,
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: christos Date: Sun May 13 00:04:23 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32_socket.c Log Message: PR/53280: Andreas Gustafsson: Fix panic in the fdpass test. This is probably the only 32 bit binary in the tests... To generate a diff of this commit: cvs rdiff -u -r1.46 -r1.47 src/sys/compat/netbsd32/netbsd32_socket.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_socket.c diff -u src/sys/compat/netbsd32/netbsd32_socket.c:1.46 src/sys/compat/netbsd32/netbsd32_socket.c:1.47 --- src/sys/compat/netbsd32/netbsd32_socket.c:1.46 Wed May 9 22:36:07 2018 +++ src/sys/compat/netbsd32/netbsd32_socket.c Sat May 12 20:04:23 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_socket.c,v 1.46 2018/05/10 02:36:07 christos Exp $ */ +/* $NetBSD: netbsd32_socket.c,v 1.47 2018/05/13 00:04:23 christos Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_socket.c,v 1.46 2018/05/10 02:36:07 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_socket.c,v 1.47 2018/05/13 00:04:23 christos Exp $"); #include #include @@ -501,6 +501,7 @@ msg_send_copyin(struct lwp *l, const str if (error) goto out; msg->msg_iov = iov; + return 0; out: if (msg->msg_control) m_free(msg->msg_control);
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: christos Date: Thu May 10 02:36:08 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32.h netbsd32_compat_20.c netbsd32_conv.h netbsd32_socket.c syscalls.master Log Message: add {send,recv}mmsg To generate a diff of this commit: cvs rdiff -u -r1.117 -r1.118 src/sys/compat/netbsd32/netbsd32.h cvs rdiff -u -r1.36 -r1.37 src/sys/compat/netbsd32/netbsd32_compat_20.c cvs rdiff -u -r1.34 -r1.35 src/sys/compat/netbsd32/netbsd32_conv.h cvs rdiff -u -r1.45 -r1.46 src/sys/compat/netbsd32/netbsd32_socket.c cvs rdiff -u -r1.120 -r1.121 src/sys/compat/netbsd32/syscalls.master Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32.h diff -u src/sys/compat/netbsd32/netbsd32.h:1.117 src/sys/compat/netbsd32/netbsd32.h:1.118 --- src/sys/compat/netbsd32/netbsd32.h:1.117 Sat Apr 14 00:04:39 2018 +++ src/sys/compat/netbsd32/netbsd32.h Wed May 9 22:36:07 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32.h,v 1.117 2018/04/14 04:04:39 mrg Exp $ */ +/* $NetBSD: netbsd32.h,v 1.118 2018/05/10 02:36:07 christos Exp $ */ /* * Copyright (c) 1998, 2001, 2008, 2015 Matthew R. Green @@ -715,6 +715,12 @@ struct netbsd32_omsghdr { int msg_accrightslen; }; +typedef netbsd32_pointer_t netbsd32_mmsghdrp_t; +struct netbsd32_mmsghdr { + struct netbsd32_msghdr msg_hdr; + unsigned int msg_len; +}; + /* from */ typedef netbsd32_pointer_t netbsd32_stat12p_t; struct netbsd32_stat12 { /* NetBSD-1.2 stat struct */ Index: src/sys/compat/netbsd32/netbsd32_compat_20.c diff -u src/sys/compat/netbsd32/netbsd32_compat_20.c:1.36 src/sys/compat/netbsd32/netbsd32_compat_20.c:1.37 --- src/sys/compat/netbsd32/netbsd32_compat_20.c:1.36 Thu Apr 13 05:46:59 2017 +++ src/sys/compat/netbsd32/netbsd32_compat_20.c Wed May 9 22:36:07 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_20.c,v 1.36 2017/04/13 09:46:59 hannken Exp $ */ +/* $NetBSD: netbsd32_compat_20.c,v 1.37 2018/05/10 02:36:07 christos Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_20.c,v 1.36 2017/04/13 09:46:59 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_20.c,v 1.37 2018/05/10 02:36:07 christos Exp $"); #include #include @@ -36,6 +36,7 @@ __KERNEL_RCSID(0, "$NetBSD: netbsd32_com #include #include #include +#include #include #include #include Index: src/sys/compat/netbsd32/netbsd32_conv.h diff -u src/sys/compat/netbsd32/netbsd32_conv.h:1.34 src/sys/compat/netbsd32/netbsd32_conv.h:1.35 --- src/sys/compat/netbsd32/netbsd32_conv.h:1.34 Thu Apr 19 17:50:08 2018 +++ src/sys/compat/netbsd32/netbsd32_conv.h Wed May 9 22:36:07 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_conv.h,v 1.34 2018/04/19 21:50:08 christos Exp $ */ +/* $NetBSD: netbsd32_conv.h,v 1.35 2018/05/10 02:36:07 christos Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -289,6 +289,22 @@ netbsd32_from_msghdr(struct netbsd32_msg } static __inline void +netbsd32_to_mmsghdr(const struct netbsd32_mmsghdr *mmsg32, +struct mmsghdr *mmsg) +{ +netbsd32_to_msghdr(&mmsg32->msg_hdr, &mmsg->msg_hdr); +mmsg->msg_len = mmsg32->msg_len; +} + +static __inline void +netbsd32_from_mmsghdr(struct netbsd32_mmsghdr *mmsg32, +const struct mmsghdr *mmsg) +{ +netbsd32_from_msghdr(&mmsg32->msg_hdr, &mmsg->msg_hdr); +mmsg32->msg_len = mmsg->msg_len; +} + +static __inline void netbsd32_from_statvfs(const struct statvfs *sbp, struct netbsd32_statvfs *sb32p) { sb32p->f_flag = sbp->f_flag; Index: src/sys/compat/netbsd32/netbsd32_socket.c diff -u src/sys/compat/netbsd32/netbsd32_socket.c:1.45 src/sys/compat/netbsd32/netbsd32_socket.c:1.46 --- src/sys/compat/netbsd32/netbsd32_socket.c:1.45 Thu May 3 17:43:33 2018 +++ src/sys/compat/netbsd32/netbsd32_socket.c Wed May 9 22:36:07 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_socket.c,v 1.45 2018/05/03 21:43:33 christos Exp $ */ +/* $NetBSD: netbsd32_socket.c,v 1.46 2018/05/10 02:36:07 christos Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_socket.c,v 1.45 2018/05/03 21:43:33 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_socket.c,v 1.46 2018/05/10 02:36:07 christos Exp $"); #include #include @@ -159,6 +159,62 @@ copyout32_msg_control(struct lwp *l, str return error; } +static int +msg_recv_copyin(struct lwp *l, const struct netbsd32_msghdr *msg32, +struct msghdr *msg, struct iovec *aiov) +{ + int error; + size_t iovsz; + struct iovec *iov = aiov; + + iovsz = msg32->msg_iovlen * sizeof(struct iovec); + if (msg32->msg_iovlen > UIO_SMALLIOV) { + if (msg32->msg_iovlen > IOV_MAX) + return EMSGSIZE; + iov = kmem_alloc(iovsz, KM_SLEEP); + } + + error = netbsd32_to_iovecin(NETBSD32PTR64(msg32->msg_iov), iov, + msg32->msg_iovlen); + if (error) + got
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: christos Date: Thu May 10 02:36:26 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32_syscall.h netbsd32_syscallargs.h netbsd32_syscalls.c netbsd32_syscalls_autoload.c netbsd32_sysent.c netbsd32_systrace_args.c Log Message: regen To generate a diff of this commit: cvs rdiff -u -r1.134 -r1.135 src/sys/compat/netbsd32/netbsd32_syscall.h \ src/sys/compat/netbsd32/netbsd32_syscallargs.h cvs rdiff -u -r1.132 -r1.133 src/sys/compat/netbsd32/netbsd32_syscalls.c \ src/sys/compat/netbsd32/netbsd32_sysent.c cvs rdiff -u -r1.13 -r1.14 \ src/sys/compat/netbsd32/netbsd32_syscalls_autoload.c cvs rdiff -u -r1.24 -r1.25 src/sys/compat/netbsd32/netbsd32_systrace_args.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_syscall.h diff -u src/sys/compat/netbsd32/netbsd32_syscall.h:1.134 src/sys/compat/netbsd32/netbsd32_syscall.h:1.135 --- src/sys/compat/netbsd32/netbsd32_syscall.h:1.134 Sat Jan 6 11:41:23 2018 +++ src/sys/compat/netbsd32/netbsd32_syscall.h Wed May 9 22:36:26 2018 @@ -1,10 +1,10 @@ -/* $NetBSD: netbsd32_syscall.h,v 1.134 2018/01/06 16:41:23 kamil Exp $ */ +/* $NetBSD: netbsd32_syscall.h,v 1.135 2018/05/10 02:36:26 christos Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.117 2017/12/19 08:48:19 kamil Exp + * created from NetBSD: syscalls.master,v 1.121 2018/05/10 02:36:07 christos Exp */ #ifndef _NETBSD32_SYS_SYSCALL_H_ @@ -1241,6 +1241,12 @@ /* syscall: "netbsd32_posix_spawn" ret: "int" args: "netbsd32_pid_tp" "const netbsd32_charp" "const netbsd32_posix_spawn_file_actionsp" "const netbsd32_posix_spawnattrp" "netbsd32_charpp" "netbsd32_charpp" */ #define NETBSD32_SYS_netbsd32_posix_spawn 474 +/* syscall: "netbsd32_recvmmsg" ret: "int" args: "int" "netbsd32_mmsghdrp_t" "unsigned int" "unsigned int" "netbsd32_timespecp_t" */ +#define NETBSD32_SYS_netbsd32_recvmmsg 475 + +/* syscall: "netbsd32_sendmmsg" ret: "int" args: "int" "netbsd32_mmsghdrp_t" "unsigned int" "unsigned int" */ +#define NETBSD32_SYS_netbsd32_sendmmsg 476 + /* syscall: "netbsd32_clock_nanosleep" ret: "int" args: "netbsd32_clockid_t" "int" "const netbsd32_timespecp_t" "netbsd32_timespecp_t" */ #define NETBSD32_SYS_netbsd32_clock_nanosleep 477 Index: src/sys/compat/netbsd32/netbsd32_syscallargs.h diff -u src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.134 src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.135 --- src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.134 Sat Jan 6 11:41:23 2018 +++ src/sys/compat/netbsd32/netbsd32_syscallargs.h Wed May 9 22:36:26 2018 @@ -1,10 +1,10 @@ -/* $NetBSD: netbsd32_syscallargs.h,v 1.134 2018/01/06 16:41:23 kamil Exp $ */ +/* $NetBSD: netbsd32_syscallargs.h,v 1.135 2018/05/10 02:36:26 christos Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.117 2017/12/19 08:48:19 kamil Exp + * created from NetBSD: syscalls.master,v 1.121 2018/05/10 02:36:07 christos Exp */ #ifndef _NETBSD32_SYS_SYSCALLARGS_H_ @@ -2542,6 +2542,23 @@ struct netbsd32_posix_spawn_args { }; check_syscall_args(netbsd32_posix_spawn) +struct netbsd32_recvmmsg_args { + syscallarg(int) s; + syscallarg(netbsd32_mmsghdrp_t) mmsg; + syscallarg(unsigned int) vlen; + syscallarg(unsigned int) flags; + syscallarg(netbsd32_timespecp_t) timeout; +}; +check_syscall_args(netbsd32_recvmmsg) + +struct netbsd32_sendmmsg_args { + syscallarg(int) s; + syscallarg(netbsd32_mmsghdrp_t) mmsg; + syscallarg(unsigned int) vlen; + syscallarg(unsigned int) flags; +}; +check_syscall_args(netbsd32_sendmmsg) + struct netbsd32_clock_nanosleep_args { syscallarg(netbsd32_clockid_t) clock_id; syscallarg(int) flags; @@ -3400,6 +3417,10 @@ int netbsd32___quotactl(struct lwp *, co int netbsd32_posix_spawn(struct lwp *, const struct netbsd32_posix_spawn_args *, register_t *); +int netbsd32_recvmmsg(struct lwp *, const struct netbsd32_recvmmsg_args *, register_t *); + +int netbsd32_sendmmsg(struct lwp *, const struct netbsd32_sendmmsg_args *, register_t *); + int netbsd32_clock_nanosleep(struct lwp *, const struct netbsd32_clock_nanosleep_args *, register_t *); int netbsd32lwp_park60(struct lwp *, const struct netbsd32lwp_park60_args *, register_t *); Index: src/sys/compat/netbsd32/netbsd32_syscalls.c diff -u src/sys/compat/netbsd32/netbsd32_syscalls.c:1.132 src/sys/compat/netbsd32/netbsd32_syscalls.c:1.133 --- src/sys/compat/netbsd32/netbsd32_syscalls.c:1.132 Sat Jan 6 11:41:23 2018 +++ src/sys/compat/netbsd32/netbsd32_syscalls.c Wed May 9 22:36:26 2018 @@ -1,14 +1,14 @@ -/* $NetBSD: netbsd32_syscalls.c,v 1.132 2018/01/06 16:41:23 kamil Exp $ */ +/* $NetBSD: netbsd32_syscalls.c,v 1.133 2018/05/10 02:36:26 christos Exp $ */
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mrg Date: Sat Apr 14 04:04:39 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32.h Log Message: redo the previous -- compat/sys/siginfo.h is already included later, as is another header. move them up near the top. To generate a diff of this commit: cvs rdiff -u -r1.116 -r1.117 src/sys/compat/netbsd32/netbsd32.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32.h diff -u src/sys/compat/netbsd32/netbsd32.h:1.116 src/sys/compat/netbsd32/netbsd32.h:1.117 --- src/sys/compat/netbsd32/netbsd32.h:1.116 Mon Dec 18 00:33:32 2017 +++ src/sys/compat/netbsd32/netbsd32.h Sat Apr 14 04:04:39 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32.h,v 1.116 2017/12/18 00:33:32 mrg Exp $ */ +/* $NetBSD: netbsd32.h,v 1.117 2018/04/14 04:04:39 mrg Exp $ */ /* * Copyright (c) 1998, 2001, 2008, 2015 Matthew R. Green @@ -50,6 +50,7 @@ #include #include #include +#include #include @@ -1122,8 +1123,6 @@ int coredump_netbsd32(struct lwp *, stru /* * random other stuff */ -#include -#include vaddr_t netbsd32_vm_default_addr(struct proc *, vaddr_t, vsize_t, int); void netbsd32_adjust_limits(struct proc *);
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mlelstv Date: Tue Mar 6 07:59:59 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.c netbsd32_ioctl.h Log Message: Add DIOCLWEDGES To generate a diff of this commit: cvs rdiff -u -r1.91 -r1.92 src/sys/compat/netbsd32/netbsd32_ioctl.c cvs rdiff -u -r1.58 -r1.59 src/sys/compat/netbsd32/netbsd32_ioctl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.91 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.92 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.91 Fri Jan 19 23:38:56 2018 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Tue Mar 6 07:59:59 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.91 2018/01/19 23:38:56 macallan Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.92 2018/03/06 07:59:59 mlelstv Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.91 2018/01/19 23:38:56 macallan Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.92 2018/03/06 07:59:59 mlelstv Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -535,6 +535,18 @@ netbsd32_to_devrescanargs( p->locators = NETBSD32PTR64(s32p->locators); } +static inline void +netbsd32_to_dkwedge_list( +const struct netbsd32_dkwedge_list *s32p, +struct dkwedge_list *p, +u_long cmd) +{ + p->dkwl_buf = s32p->dkwl_buf; + p->dkwl_bufsize = s32p->dkwl_bufsize; + p->dkwl_nwedges = s32p->dkwl_nwedges; + p->dkwl_ncopied = s32p->dkwl_ncopied; +} + /* * handle ioctl conversions from 64-bit kernel -> netbsd32 */ @@ -977,6 +989,18 @@ netbsd32_from_devrescanargs( NETBSD32PTR32(s32p->locators, p->locators); } +static inline void +netbsd32_from_dkwedge_list( +const struct dkwedge_list *p, +struct netbsd32_dkwedge_list *s32p, +u_long cmd) +{ + s32p->dkwl_buf = p->dkwl_buf; + s32p->dkwl_bufsize = p->dkwl_bufsize; + s32p->dkwl_nwedges = p->dkwl_nwedges; + s32p->dkwl_ncopied = p->dkwl_ncopied; +} + #ifdef NTP static int netbsd32_do_clockctl_ntp_adjtime(struct clockctl_ntp_adjtime *args) @@ -1433,6 +1457,9 @@ netbsd32_ioctl(struct lwp *l, const stru case DRVGETEVENT32: IOCTL_STRUCT_CONV_TO(DRVGETEVENT, plistref); + case DIOCLWEDGES32: + IOCTL_STRUCT_CONV_TO(DIOCLWEDGES, dkwedge_list); + default: #ifdef NETBSD32_MD_IOCTL error = netbsd32_md_ioctl(fp, com, data32, l); Index: src/sys/compat/netbsd32/netbsd32_ioctl.h diff -u src/sys/compat/netbsd32/netbsd32_ioctl.h:1.58 src/sys/compat/netbsd32/netbsd32_ioctl.h:1.59 --- src/sys/compat/netbsd32/netbsd32_ioctl.h:1.58 Fri Jan 19 23:38:56 2018 +++ src/sys/compat/netbsd32/netbsd32_ioctl.h Tue Mar 6 07:59:59 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.h,v 1.58 2018/01/19 23:38:56 macallan Exp $ */ +/* $NetBSD: netbsd32_ioctl.h,v 1.59 2018/03/06 07:59:59 mlelstv Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -633,3 +633,15 @@ struct netbsd32_devrescanargs { #define DRVCTLCOMMAND32 _IOWR('D', 125, struct netbsd32_plistref) #define DRVLISTDEV32 _IOWR('D', 127, struct netbsd32_devlistargs) #define DRVGETEVENT32 _IOR('D', 128, struct netbsd32_plistref) + +/* From sys/disk.h, sys/dkio.h */ + +struct netbsd32_dkwedge_list { + void *dkwl_buf; /* storage for dkwedge_info array */ + netbsd32_size_t dkwl_bufsize; /* size of that buffer */ + u_int dkwl_nwedges; /* total number of wedges */ + u_int dkwl_ncopied; /* number actually copied */ +}; + +#define DIOCLWEDGES32 _IOWR('d', 124, struct netbsd32_dkwedge_list) +
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: macallan Date: Fri Jan 19 23:38:56 UTC 2018 Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.c netbsd32_ioctl.h Log Message: add conversion goop for WSDISPLAYIO_LDFONT and _SFONT tested on mips64 To generate a diff of this commit: cvs rdiff -u -r1.90 -r1.91 src/sys/compat/netbsd32/netbsd32_ioctl.c cvs rdiff -u -r1.57 -r1.58 src/sys/compat/netbsd32/netbsd32_ioctl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.90 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.91 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.90 Sun Nov 26 17:46:13 2017 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Fri Jan 19 23:38:56 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.90 2017/11/26 17:46:13 jmcneill Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.91 2018/01/19 23:38:56 macallan Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.90 2017/11/26 17:46:13 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.91 2018/01/19 23:38:56 macallan Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -400,6 +400,31 @@ netbsd32_to_wsdisplay_cmap(struct netbsd } static inline void +netbsd32_to_wsdisplay_font(struct netbsd32_wsdisplay_font *f32, + struct wsdisplay_font *f, + u_long cmd) +{ + f->name = NETBSD32PTR64(f32->name); + f->firstchar = f32->firstchar; + f->numchars = f32->numchars; + f->encoding = f32->encoding; + f->fontwidth = f32->fontwidth; + f->fontheight = f32->fontheight; + f->stride = f32->stride; + f->bitorder = f32->bitorder; + f->byteorder = f32->byteorder; + f->data = NETBSD32PTR64(f32->data); +} + +static inline void +netbsd32_to_wsdisplay_usefontdata(struct netbsd32_wsdisplay_usefontdata *f32, + struct wsdisplay_usefontdata *f, + u_long cmd) +{ + f->name = NETBSD32PTR64(f32->name); +} + +static inline void netbsd32_to_clockctl_settimeofday( const struct netbsd32_clockctl_settimeofday *s32p, struct clockctl_settimeofday *p, @@ -767,6 +792,20 @@ netbsd32_from_wsdisplay_cmap(struct wsdi } static inline void +netbsd32_from_wsdisplay_font(struct wsdisplay_font *f, + struct netbsd32_wsdisplay_font *f32, + u_long cmd) +{ +} + +static inline void +netbsd32_from_wsdisplay_usefontdata(struct wsdisplay_usefontdata *f, + struct netbsd32_wsdisplay_usefontdata *f32, + u_long cmd) +{ +} + +static inline void netbsd32_from_ieee80211req(struct ieee80211req *ireq, struct netbsd32_ieee80211req *ireq32, u_long cmd) { @@ -1317,6 +1356,11 @@ netbsd32_ioctl(struct lwp *l, const stru case WSDISPLAYIO_PUTCMAP32: IOCTL_STRUCT_CONV_TO(WSDISPLAYIO_PUTCMAP, wsdisplay_cmap); + case WSDISPLAYIO_LDFONT32: + IOCTL_STRUCT_CONV_TO(WSDISPLAYIO_LDFONT, wsdisplay_font); + case WSDISPLAYIO_SFONT32: + IOCTL_STRUCT_CONV_TO(WSDISPLAYIO_SFONT, wsdisplay_usefontdata); + case SIOCS8021132: IOCTL_STRUCT_CONV_TO(SIOCS80211, ieee80211req); case SIOCG8021132: Index: src/sys/compat/netbsd32/netbsd32_ioctl.h diff -u src/sys/compat/netbsd32/netbsd32_ioctl.h:1.57 src/sys/compat/netbsd32/netbsd32_ioctl.h:1.58 --- src/sys/compat/netbsd32/netbsd32_ioctl.h:1.57 Sun Nov 26 17:46:13 2017 +++ src/sys/compat/netbsd32/netbsd32_ioctl.h Fri Jan 19 23:38:56 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.h,v 1.57 2017/11/26 17:46:13 jmcneill Exp $ */ +/* $NetBSD: netbsd32_ioctl.h,v 1.58 2018/01/19 23:38:56 macallan Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -179,6 +179,21 @@ struct netbsd32_wsdisplay_cursor { #define WSDISPLAYIO_GCURSOR32 _IOWR('W', 73, struct netbsd32_wsdisplay_cursor) #define WSDISPLAYIO_SCURSOR32 _IOW('W', 74, struct netbsd32_wsdisplay_cursor) +struct netbsd32_wsdisplay_font { + netbsd32_charp name; + int firstchar, numchars; + int encoding; + u_int fontwidth, fontheight, stride; + int bitorder, byteorder; + netbsd32_charp data; +}; +#define WSDISPLAYIO_LDFONT32 _IOW('W', 77, struct netbsd32_wsdisplay_font) + +struct netbsd32_wsdisplay_usefontdata { + netbsd32_charp name; +}; +#define WSDISPLAYIO_SFONT32 _IOW('W', 80, struct netbsd32_wsdisplay_usefontdata) + /* can wait! */ #if 0 dev/ccdvar.h:219:#define CCDIOCSET _IOWR('F', 16, struct ccd_ioctl) /* enable ccd */
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: kamil Date: Tue Dec 19 07:58:50 UTC 2017 Modified Files: src/sys/compat/netbsd32: netbsd32_syscall.h netbsd32_syscallargs.h netbsd32_systrace_args.c syscalls.master Log Message: Sync syscalls.master in compat_netbsd32(8) with kern/syscalls.master ___lwp_part60 removed 'const' from the ts argument. 'const struct timespec *ts' -> 'struct timespec *ts' Sponsored by To generate a diff of this commit: cvs rdiff -u -r1.129 -r1.130 src/sys/compat/netbsd32/netbsd32_syscall.h \ src/sys/compat/netbsd32/netbsd32_syscallargs.h cvs rdiff -u -r1.19 -r1.20 src/sys/compat/netbsd32/netbsd32_systrace_args.c cvs rdiff -u -r1.115 -r1.116 src/sys/compat/netbsd32/syscalls.master Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_syscall.h diff -u src/sys/compat/netbsd32/netbsd32_syscall.h:1.129 src/sys/compat/netbsd32/netbsd32_syscall.h:1.130 --- src/sys/compat/netbsd32/netbsd32_syscall.h:1.129 Wed May 10 06:19:49 2017 +++ src/sys/compat/netbsd32/netbsd32_syscall.h Tue Dec 19 07:58:50 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_syscall.h,v 1.129 2017/05/10 06:19:49 riastradh Exp $ */ +/* $NetBSD: netbsd32_syscall.h,v 1.130 2017/12/19 07:58:50 kamil Exp $ */ /* * System call numbers. @@ -1248,7 +1248,7 @@ /* syscall: "netbsd32_clock_nanosleep" ret: "int" args: "netbsd32_clockid_t" "int" "const netbsd32_timespecp_t" "netbsd32_timespecp_t" */ #define NETBSD32_SYS_netbsd32_clock_nanosleep 477 -/* syscall: "netbsd32lwp_park60" ret: "int" args: "netbsd32_clockid_t" "int" "const netbsd32_timespecp_t" "lwpid_t" "netbsd32_voidp" "netbsd32_voidp" */ +/* syscall: "netbsd32lwp_park60" ret: "int" args: "netbsd32_clockid_t" "int" "netbsd32_timespecp_t" "lwpid_t" "netbsd32_voidp" "netbsd32_voidp" */ #define NETBSD32_SYS_netbsd32lwp_park60 478 /* syscall: "netbsd32_posix_fallocate" ret: "int" args: "int" "int" "netbsd32_off_t" "netbsd32_off_t" */ Index: src/sys/compat/netbsd32/netbsd32_syscallargs.h diff -u src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.129 src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.130 --- src/sys/compat/netbsd32/netbsd32_syscallargs.h:1.129 Wed May 10 06:19:49 2017 +++ src/sys/compat/netbsd32/netbsd32_syscallargs.h Tue Dec 19 07:58:50 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_syscallargs.h,v 1.129 2017/05/10 06:19:49 riastradh Exp $ */ +/* $NetBSD: netbsd32_syscallargs.h,v 1.130 2017/12/19 07:58:50 kamil Exp $ */ /* * System call argument lists. @@ -2563,7 +2563,7 @@ check_syscall_args(netbsd32_clock_nanosl struct netbsd32lwp_park60_args { syscallarg(netbsd32_clockid_t) clock_id; syscallarg(int) flags; - syscallarg(const netbsd32_timespecp_t) ts; + syscallarg(netbsd32_timespecp_t) ts; syscallarg(lwpid_t) unpark; syscallarg(netbsd32_voidp) hint; syscallarg(netbsd32_voidp) unparkhint; Index: src/sys/compat/netbsd32/netbsd32_systrace_args.c diff -u src/sys/compat/netbsd32/netbsd32_systrace_args.c:1.19 src/sys/compat/netbsd32/netbsd32_systrace_args.c:1.20 --- src/sys/compat/netbsd32/netbsd32_systrace_args.c:1.19 Wed May 10 06:19:49 2017 +++ src/sys/compat/netbsd32/netbsd32_systrace_args.c Tue Dec 19 07:58:50 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_systrace_args.c,v 1.19 2017/05/10 06:19:49 riastradh Exp $ */ +/* $NetBSD: netbsd32_systrace_args.c,v 1.20 2017/12/19 07:58:50 kamil Exp $ */ /* * System call argument to DTrace register array converstion. @@ -3423,7 +3423,7 @@ systrace_args(register_t sysnum, const v const struct netbsd32lwp_park60_args *p = params; iarg[0] = SCARG(p, clock_id); /* netbsd32_clockid_t */ iarg[1] = SCARG(p, flags); /* int */ - uarg[2] = (intptr_t) SCARG(p, ts).i32; /* const netbsd32_timespecp_t */ + uarg[2] = (intptr_t) SCARG(p, ts).i32; /* netbsd32_timespecp_t */ iarg[3] = SCARG(p, unpark); /* lwpid_t */ uarg[4] = (intptr_t) SCARG(p, hint).i32; /* netbsd32_voidp */ uarg[5] = (intptr_t) SCARG(p, unparkhint).i32; /* netbsd32_voidp */ @@ -9265,7 +9265,7 @@ systrace_entry_setargdesc(int sysnum, in p = "int"; break; case 2: - p = "const netbsd32_timespecp_t"; + p = "netbsd32_timespecp_t"; break; case 3: p = "lwpid_t"; Index: src/sys/compat/netbsd32/syscalls.master diff -u src/sys/compat/netbsd32/syscalls.master:1.115 src/sys/compat/netbsd32/syscalls.master:1.116 --- src/sys/compat/netbsd32/syscalls.master:1.115 Wed Oct 19 09:44:01 2016 +++ src/sys/compat/netbsd32/syscalls.master Tue Dec 19 07:58:50 2017 @@ -1,4 +1,4 @@ - $NetBSD: syscalls.master,v 1.115 2016/10/19 09:44:01 skrll Exp $ + $NetBSD: syscalls.master,v 1.116 2017/12/19 07:58:50 kamil Exp $ ; from: NetBSD: syscalls.master,v 1.81 1998/07/05 08:49:50 jonathan Exp ; @(#)syscalls.master 8.2 (Berkeley) 1/13/94 @@ -1047,7 +1047,7 @@ netbsd32_timespecp_t rmtp); } 478 STD { int|netbsd32|60|_lwp_park(\ netbsd32_clockid_t clock_id
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: mrg Date: Mon Dec 18 00:33:32 UTC 2017 Modified Files: src/sys/compat/netbsd32: netbsd32.h Log Message: include for siginfo32_t. To generate a diff of this commit: cvs rdiff -u -r1.115 -r1.116 src/sys/compat/netbsd32/netbsd32.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32.h diff -u src/sys/compat/netbsd32/netbsd32.h:1.115 src/sys/compat/netbsd32/netbsd32.h:1.116 --- src/sys/compat/netbsd32/netbsd32.h:1.115 Sun Dec 17 20:59:27 2017 +++ src/sys/compat/netbsd32/netbsd32.h Mon Dec 18 00:33:32 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32.h,v 1.115 2017/12/17 20:59:27 christos Exp $ */ +/* $NetBSD: netbsd32.h,v 1.116 2017/12/18 00:33:32 mrg Exp $ */ /* * Copyright (c) 1998, 2001, 2008, 2015 Matthew R. Green @@ -49,6 +49,7 @@ #include #include #include +#include #include
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: christos Date: Wed Dec 6 19:15:27 UTC 2017 Modified Files: src/sys/compat/netbsd32: netbsd32_netbsd.c netbsd32_signal.c Log Message: disable 32 bit signal ktrace records; 32 bit traced process produce 64 bit trace records, the only record that we can't parse is that one :-) XXX: pullup-8 To generate a diff of this commit: cvs rdiff -u -r1.207 -r1.208 src/sys/compat/netbsd32/netbsd32_netbsd.c cvs rdiff -u -r1.43 -r1.44 src/sys/compat/netbsd32/netbsd32_signal.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_netbsd.c diff -u src/sys/compat/netbsd32/netbsd32_netbsd.c:1.207 src/sys/compat/netbsd32/netbsd32_netbsd.c:1.208 --- src/sys/compat/netbsd32/netbsd32_netbsd.c:1.207 Mon Jul 31 11:38:01 2017 +++ src/sys/compat/netbsd32/netbsd32_netbsd.c Wed Dec 6 14:15:27 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_netbsd.c,v 1.207 2017/07/31 15:38:01 maxv Exp $ */ +/* $NetBSD: netbsd32_netbsd.c,v 1.208 2017/12/06 19:15:27 christos Exp $ */ /* * Copyright (c) 1998, 2001, 2008 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.207 2017/07/31 15:38:01 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.208 2017/12/06 19:15:27 christos Exp $"); #if defined(_KERNEL_OPT) #include "opt_ddb.h" @@ -159,7 +159,11 @@ struct emul emul_netbsd32 = { .e_usertrap = NULL, .e_ucsize = sizeof(ucontext32_t), .e_startlwp = startlwp32, - .e_ktrpsig = netbsd32_ktrpsig +#ifdef notyet + .e_ktrpsig = netbsd32_ktrpsig, +#else + .e_ktrpsig = NULL, +#endif }; /* Index: src/sys/compat/netbsd32/netbsd32_signal.c diff -u src/sys/compat/netbsd32/netbsd32_signal.c:1.43 src/sys/compat/netbsd32/netbsd32_signal.c:1.44 --- src/sys/compat/netbsd32/netbsd32_signal.c:1.43 Sun Sep 18 01:16:21 2016 +++ src/sys/compat/netbsd32/netbsd32_signal.c Wed Dec 6 14:15:27 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_signal.c,v 1.43 2016/09/18 05:16:21 christos Exp $ */ +/* $NetBSD: netbsd32_signal.c,v 1.44 2017/12/06 19:15:27 christos Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_signal.c,v 1.43 2016/09/18 05:16:21 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_signal.c,v 1.44 2017/12/06 19:15:27 christos Exp $"); #if defined(_KERNEL_OPT) #include "opt_ktrace.h" @@ -226,6 +226,7 @@ netbsd32_ksi32_to_ksi(struct _ksiginfo * } } +#ifdef notyet #ifdef KTRACE static void netbsd32_ksi_to_ksi32(struct __ksiginfo32 *si32, const struct _ksiginfo *si) @@ -268,6 +269,7 @@ netbsd32_ksi_to_ksi32(struct __ksiginfo3 } } #endif +#endif void netbsd32_si_to_si32(siginfo32_t *si32, const siginfo_t *si) @@ -513,6 +515,7 @@ struct netbsd32_ktr_psig { /* and optional siginfo_t */ }; +#ifdef notyet #ifdef KTRACE void netbsd32_ktrpsig(int sig, sig_t action, const sigset_t *mask, @@ -548,5 +551,4 @@ netbsd32_ktrpsig(int sig, sig_t action, ktraddentry(l, kte, KTA_WAITOK); } #endif - - +#endif
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: christos Date: Wed Dec 6 04:12:25 UTC 2017 Modified Files: src/sys/compat/netbsd32: netbsd32_compat_60.c Log Message: don't forget to convert the timespec. XXX: pullup-8 To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/compat/netbsd32/netbsd32_compat_60.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_compat_60.c diff -u src/sys/compat/netbsd32/netbsd32_compat_60.c:1.2 src/sys/compat/netbsd32/netbsd32_compat_60.c:1.3 --- src/sys/compat/netbsd32/netbsd32_compat_60.c:1.2 Thu Aug 21 02:40:35 2014 +++ src/sys/compat/netbsd32/netbsd32_compat_60.c Tue Dec 5 23:12:25 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_60.c,v 1.2 2014/08/21 06:40:35 maxv Exp $ */ +/* $NetBSD: netbsd32_compat_60.c,v 1.3 2017/12/06 04:12:25 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -36,7 +36,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_60.c,v 1.2 2014/08/21 06:40:35 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_60.c,v 1.3 2017/12/06 04:12:25 christos Exp $"); #include #include @@ -71,6 +71,7 @@ compat_60_netbsd32__lwp_park(struct lwp error = copyin(SCARG_P32(uap, ts), &ts32, sizeof ts32); if (error != 0) return error; + netbsd32_to_timespec(&ts32, &ts); tsp = &ts; }
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: jmcneill Date: Sun Nov 26 17:46:13 UTC 2017 Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.c netbsd32_ioctl.h Log Message: Add support for SIOCGIFGENERIC and SIOCSIFGENERIC ioctls. To generate a diff of this commit: cvs rdiff -u -r1.89 -r1.90 src/sys/compat/netbsd32/netbsd32_ioctl.c cvs rdiff -u -r1.56 -r1.57 src/sys/compat/netbsd32/netbsd32_ioctl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.89 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.90 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.89 Sat Jan 14 16:34:44 2017 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Sun Nov 26 17:46:13 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.89 2017/01/14 16:34:44 maya Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.90 2017/11/26 17:46:13 jmcneill Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.89 2017/01/14 16:34:44 maya Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.90 2017/11/26 17:46:13 jmcneill Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -116,8 +116,14 @@ netbsd32_to_ifreq(struct netbsd32_ifreq * union member needs to be converted to 64 bits... this * is very driver specific and so we ignore it for now.. */ - if (cmd == SIOCGIFDATA || cmd == SIOCZIFDATA) + switch (cmd) { + case SIOCGIFDATA: + case SIOCZIFDATA: + case SIOCGIFGENERIC: + case SIOCSIFGENERIC: p->ifr_data = (void *)NETBSD32PTR64(s32p->ifr_data); + break; + } } static inline void @@ -534,8 +540,14 @@ netbsd32_from_ifreq(struct ifreq *p, str * is very driver specific and so we ignore it for now.. */ memcpy(s32p, p, sizeof *s32p); - if (cmd == SIOCGIFDATA || cmd == SIOCZIFDATA) + switch (cmd) { + case SIOCGIFDATA: + case SIOCZIFDATA: + case SIOCGIFGENERIC: + case SIOCSIFGENERIC: NETBSD32PTR32(s32p->ifr_data, p->ifr_data); + break; + } } static inline void @@ -1233,6 +1245,11 @@ netbsd32_ioctl(struct lwp *l, const stru case SIOCGIFMEDIA32: IOCTL_STRUCT_CONV_TO(SIOCGIFMEDIA, ifmediareq); + case SIOCGIFGENERIC32: + IOCTL_STRUCT_CONV_TO(SIOCGIFGENERIC, ifreq); + case SIOCSIFGENERIC32: + IOCTL_STRUCT_CONV_TO(SIOCSIFGENERIC, ifreq); + case PPPOESETPARMS32: IOCTL_STRUCT_CONV_TO(PPPOESETPARMS, pppoediscparms); case PPPOEGETPARMS32: Index: src/sys/compat/netbsd32/netbsd32_ioctl.h diff -u src/sys/compat/netbsd32/netbsd32_ioctl.h:1.56 src/sys/compat/netbsd32/netbsd32_ioctl.h:1.57 --- src/sys/compat/netbsd32/netbsd32_ioctl.h:1.56 Mon Dec 26 23:05:06 2016 +++ src/sys/compat/netbsd32/netbsd32_ioctl.h Sun Nov 26 17:46:13 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.h,v 1.56 2016/12/26 23:05:06 christos Exp $ */ +/* $NetBSD: netbsd32_ioctl.h,v 1.57 2017/11/26 17:46:13 jmcneill Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -374,6 +374,9 @@ struct netbsd32_if_clonereq { #define SIOCSIFMEDIA32 _IOWR('i', 53, struct netbsd32_ifreq) /* set net media */ #define OSIOCSIFMEDIA32 _IOWR('i', 53, struct netbsd32_oifreq) /* set net media */ +#define SIOCSIFGENERIC32 _IOW('i', 57, struct netbsd32_ifreq) /* generic IF set op */ +#define SIOCGIFGENERIC32 _IOWR('i', 58, struct netbsd32_ifreq) /* generic IF get op */ + #define SIOCIFGCLONERS32 _IOWR('i', 120, struct netbsd32_if_clonereq) /* get cloners */ #define SIOCSIFMTU32 _IOW('i', 127, struct netbsd32_ifreq) /* set ifnet mtu */
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: kre Date: Tue Oct 31 16:10:25 UTC 2017 Modified Files: src/sys/compat/netbsd32: netbsd32_sysctl.c Log Message: unconst machine_arch32 for sysctl data .. pointed out by Riccardo Mottola To generate a diff of this commit: cvs rdiff -u -r1.37 -r1.38 src/sys/compat/netbsd32/netbsd32_sysctl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_sysctl.c diff -u src/sys/compat/netbsd32/netbsd32_sysctl.c:1.37 src/sys/compat/netbsd32/netbsd32_sysctl.c:1.38 --- src/sys/compat/netbsd32/netbsd32_sysctl.c:1.37 Tue Oct 31 12:37:23 2017 +++ src/sys/compat/netbsd32/netbsd32_sysctl.c Tue Oct 31 16:10:25 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_sysctl.c,v 1.37 2017/10/31 12:37:23 martin Exp $ */ +/* $NetBSD: netbsd32_sysctl.c,v 1.38 2017/10/31 16:10:25 kre Exp $ */ /* * Copyright (c) 2003 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_sysctl.c,v 1.37 2017/10/31 12:37:23 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_sysctl.c,v 1.38 2017/10/31 16:10:25 kre Exp $"); #if defined(_KERNEL_OPT) #include "opt_ddb.h" @@ -110,7 +110,7 @@ sysctl_hw_machine_arch32(SYSCTLFN_ARGS) struct sysctlnode node = *rnode; #ifndef PROC_MACHINE_ARCH32 extern const char machine_arch32[]; -#define PROC_MACHINE_ARCH32(P) machine_arch32 +#define PROC_MACHINE_ARCH32(P) __UNCONST(machine_arch32) #endif node.sysctl_data = PROC_MACHINE_ARCH32(l->l_proc);
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: martin Date: Tue Oct 31 12:43:57 UTC 2017 Modified Files: src/sys/compat/netbsd32: netbsd32_conv.h Log Message: PR kern/52681: fix msghdr conversion. To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 src/sys/compat/netbsd32/netbsd32_conv.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_conv.h diff -u src/sys/compat/netbsd32/netbsd32_conv.h:1.32 src/sys/compat/netbsd32/netbsd32_conv.h:1.33 --- src/sys/compat/netbsd32/netbsd32_conv.h:1.32 Mon Jul 31 15:38:01 2017 +++ src/sys/compat/netbsd32/netbsd32_conv.h Tue Oct 31 12:43:56 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_conv.h,v 1.32 2017/07/31 15:38:01 maxv Exp $ */ +/* $NetBSD: netbsd32_conv.h,v 1.33 2017/10/31 12:43:56 martin Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -280,10 +280,10 @@ static __inline void netbsd32_from_msghdr(struct netbsd32_msghdr *mhp32, const struct msghdr *mhp) { - mhp32->msg_name = mhp32->msg_name; - mhp32->msg_namelen = mhp32->msg_namelen; - mhp32->msg_iovlen = mhp32->msg_iovlen; - mhp32->msg_control = mhp32->msg_control; + NETBSD32PTR32(mhp32->msg_name, mhp->msg_name); + mhp32->msg_namelen = mhp->msg_namelen; + mhp32->msg_iovlen = mhp->msg_iovlen; + NETBSD32PTR32(mhp32->msg_control, mhp->msg_control); mhp32->msg_controllen = mhp->msg_controllen; mhp32->msg_flags = mhp->msg_flags; }
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: maxv Date: Mon Jul 31 15:38:01 UTC 2017 Modified Files: src/sys/compat/netbsd32: netbsd32_conv.h netbsd32_netbsd.c Log Message: Remove references to COMPAT_OLDSOCK (itself removed years ago). To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/sys/compat/netbsd32/netbsd32_conv.h cvs rdiff -u -r1.206 -r1.207 src/sys/compat/netbsd32/netbsd32_netbsd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_conv.h diff -u src/sys/compat/netbsd32/netbsd32_conv.h:1.31 src/sys/compat/netbsd32/netbsd32_conv.h:1.32 --- src/sys/compat/netbsd32/netbsd32_conv.h:1.31 Sun Nov 13 13:59:45 2016 +++ src/sys/compat/netbsd32/netbsd32_conv.h Mon Jul 31 15:38:01 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_conv.h,v 1.31 2016/11/13 13:59:45 rin Exp $ */ +/* $NetBSD: netbsd32_conv.h,v 1.32 2017/07/31 15:38:01 maxv Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -29,13 +29,6 @@ #ifndef _COMPAT_NETBSD32_NETBSD32_CONV_H_ #define _COMPAT_NETBSD32_NETBSD32_CONV_H_ -/* - * Though COMPAT_OLDSOCK is needed only for COMPAT_43, SunOS, Linux, - * HP-UX, FreeBSD, Ultrix, OSF1, we define it unconditionally so that - * this would be module-safe. - */ -#define COMPAT_OLDSOCK /* used by */ - #include #include #include Index: src/sys/compat/netbsd32/netbsd32_netbsd.c diff -u src/sys/compat/netbsd32/netbsd32_netbsd.c:1.206 src/sys/compat/netbsd32/netbsd32_netbsd.c:1.207 --- src/sys/compat/netbsd32/netbsd32_netbsd.c:1.206 Sat Apr 29 01:15:40 2017 +++ src/sys/compat/netbsd32/netbsd32_netbsd.c Mon Jul 31 15:38:01 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_netbsd.c,v 1.206 2017/04/29 01:15:40 christos Exp $ */ +/* $NetBSD: netbsd32_netbsd.c,v 1.207 2017/07/31 15:38:01 maxv Exp $ */ /* * Copyright (c) 1998, 2001, 2008 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.206 2017/04/29 01:15:40 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.207 2017/07/31 15:38:01 maxv Exp $"); #if defined(_KERNEL_OPT) #include "opt_ddb.h" @@ -39,13 +39,6 @@ __KERNEL_RCSID(0, "$NetBSD: netbsd32_net #include "opt_syscall_debug.h" #endif -/* - * Though COMPAT_OLDSOCK is needed only for COMPAT_43, SunOS, Linux, - * HP-UX, FreeBSD, Ultrix, OSF1, we define it unconditionally so that - * this would be module-safe. - */ -#define COMPAT_OLDSOCK /* used by */ - #include #include #include
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: hannken Date: Thu Apr 13 09:46:59 UTC 2017 Modified Files: src/sys/compat/netbsd32: netbsd32_compat_20.c Log Message: Switch compat_20_netbsd32_getfsstat() to mountlist iterator. To generate a diff of this commit: cvs rdiff -u -r1.35 -r1.36 src/sys/compat/netbsd32/netbsd32_compat_20.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_compat_20.c diff -u src/sys/compat/netbsd32/netbsd32_compat_20.c:1.35 src/sys/compat/netbsd32/netbsd32_compat_20.c:1.36 --- src/sys/compat/netbsd32/netbsd32_compat_20.c:1.35 Tue Mar 28 18:44:04 2017 +++ src/sys/compat/netbsd32/netbsd32_compat_20.c Thu Apr 13 09:46:59 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_20.c,v 1.35 2017/03/28 18:44:04 chs Exp $ */ +/* $NetBSD: netbsd32_compat_20.c,v 1.36 2017/04/13 09:46:59 hannken Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_20.c,v 1.35 2017/03/28 18:44:04 chs Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_20.c,v 1.36 2017/04/13 09:46:59 hannken Exp $"); #include #include @@ -85,7 +85,8 @@ compat_20_netbsd32_getfsstat(struct lwp } */ int root = 0; struct proc *p = l->l_proc; - struct mount *mp, *nmp; + mount_iterator_t *iter; + struct mount *mp; struct statvfs *sb; struct netbsd32_statfs sb32; void *sfsp; @@ -95,32 +96,24 @@ compat_20_netbsd32_getfsstat(struct lwp sb = STATVFSBUF_GET(); maxcount = SCARG(uap, bufsize) / sizeof(struct netbsd32_statfs); sfsp = SCARG_P32(uap, buf); - mutex_enter(&mountlist_lock); + mountlist_iterator_init(&iter); count = 0; - for (mp = TAILQ_FIRST(&mountlist); mp != NULL; mp = nmp) { - if (vfs_busy(mp, &nmp)) { - continue; - } + while ((mp = mountlist_iterator_next(iter)) != NULL) { if (sfsp && count < maxcount) { error = dostatvfs(mp, sb, l, SCARG(uap, flags), 0); if (error) { -vfs_unbusy(mp, false, &nmp); error = 0; continue; } compat_20_netbsd32_from_statvfs(sb, &sb32); error = copyout(&sb32, sfsp, sizeof(sb32)); - if (error) { -vfs_unbusy(mp, false, NULL); + if (error) goto out; - } sfsp = (char *)sfsp + sizeof(sb32); root |= strcmp(sb->f_mntonname, "/") == 0; } count++; - vfs_unbusy(mp, false, &nmp); } - mutex_exit(&mountlist_lock); if (root == 0 && p->p_cwdi->cwdi_rdir) { /* @@ -144,6 +137,7 @@ compat_20_netbsd32_getfsstat(struct lwp else *retval = count; out: + mountlist_iterator_destroy(iter); STATVFSBUF_PUT(sb); return error; }
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: chs Date: Tue Mar 28 18:44:04 UTC 2017 Modified Files: src/sys/compat/netbsd32: netbsd32_compat_20.c Log Message: never pass mp->mnt_stat to dostatvfs(), always use a separate buffer. dostatvfs() clears its buffer, but mp->mnt_stat should never be cleared. To generate a diff of this commit: cvs rdiff -u -r1.34 -r1.35 src/sys/compat/netbsd32/netbsd32_compat_20.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_compat_20.c diff -u src/sys/compat/netbsd32/netbsd32_compat_20.c:1.34 src/sys/compat/netbsd32/netbsd32_compat_20.c:1.35 --- src/sys/compat/netbsd32/netbsd32_compat_20.c:1.34 Fri Sep 5 09:21:54 2014 +++ src/sys/compat/netbsd32/netbsd32_compat_20.c Tue Mar 28 18:44:04 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_20.c,v 1.34 2014/09/05 09:21:54 matt Exp $ */ +/* $NetBSD: netbsd32_compat_20.c,v 1.35 2017/03/28 18:44:04 chs Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_20.c,v 1.34 2014/09/05 09:21:54 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_20.c,v 1.35 2017/03/28 18:44:04 chs Exp $"); #include #include @@ -166,12 +166,15 @@ compat_20_netbsd32_statfs(struct lwp *l, if (error != 0) return (error); mp = vp->v_mount; - sb = &mp->mnt_stat; vrele(vp); + sb = STATVFSBUF_GET(); if ((error = dostatvfs(mp, sb, l, 0, 0)) != 0) - return (error); + goto out; compat_20_netbsd32_from_statvfs(sb, &s32); - return copyout(&s32, SCARG_P32(uap, buf), sizeof(s32)); + error = copyout(&s32, SCARG_P32(uap, buf), sizeof(s32)); +out: + STATVFSBUF_PUT(sb); + return error; } int @@ -191,12 +194,13 @@ compat_20_netbsd32_fstatfs(struct lwp *l if ((error = fd_getvnode(SCARG(uap, fd), &fp)) != 0) return (error); mp = fp->f_vnode->v_mount; - sb = &mp->mnt_stat; + sb = STATVFSBUF_GET(); if ((error = dostatvfs(mp, sb, l, 0, 0)) != 0) goto out; compat_20_netbsd32_from_statvfs(sb, &s32); error = copyout(&s32, SCARG_P32(uap, buf), sizeof(s32)); out: + STATVFSBUF_PUT(sb); fd_putfile(SCARG(uap, fd)); return (error); }
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: njoly Date: Sun Feb 26 10:26:19 UTC 2017 Modified Files: src/sys/compat/netbsd32: netbsd32_time.c Log Message: Apply fix from natuve clock_nanosleep(2) to not copyout remaining time struct if TIMER_ABSTIME flag is set. To generate a diff of this commit: cvs rdiff -u -r1.48 -r1.49 src/sys/compat/netbsd32/netbsd32_time.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_time.c diff -u src/sys/compat/netbsd32/netbsd32_time.c:1.48 src/sys/compat/netbsd32/netbsd32_time.c:1.49 --- src/sys/compat/netbsd32/netbsd32_time.c:1.48 Fri Sep 23 14:16:32 2016 +++ src/sys/compat/netbsd32/netbsd32_time.c Sun Feb 26 10:26:19 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_time.c,v 1.48 2016/09/23 14:16:32 skrll Exp $ */ +/* $NetBSD: netbsd32_time.c,v 1.49 2017/02/26 10:26:19 njoly Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_time.c,v 1.48 2016/09/23 14:16:32 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_time.c,v 1.49 2017/02/26 10:26:19 njoly Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -453,7 +453,8 @@ netbsd32_clock_nanosleep(struct lwp *l, goto out; netbsd32_from_timespec(&rmt, &ts32); - if ((error1 = copyout(&ts32, SCARG_P32(uap, rmtp), sizeof(ts32))) != 0) + if ((SCARG(uap, flags) & TIMER_ABSTIME) == 0 && + (error1 = copyout(&ts32, SCARG_P32(uap, rmtp), sizeof(ts32))) != 0) error = error1; out: *retval = error;
CVS commit: src/sys/compat/netbsd32
Module Name:src Committed By: jakllsch Date: Wed Jan 25 21:45:39 UTC 2017 Modified Files: src/sys/compat/netbsd32: netbsd32_exec.h Log Message: Catch netbsd32_copyargs() up to changes in r1.441 src/sys/kern/kern_exec.c To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 src/sys/compat/netbsd32/netbsd32_exec.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/netbsd32/netbsd32_exec.h diff -u src/sys/compat/netbsd32/netbsd32_exec.h:1.32 src/sys/compat/netbsd32/netbsd32_exec.h:1.33 --- src/sys/compat/netbsd32/netbsd32_exec.h:1.32 Fri Oct 24 21:07:55 2014 +++ src/sys/compat/netbsd32/netbsd32_exec.h Wed Jan 25 21:45:39 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_exec.h,v 1.32 2014/10/24 21:07:55 christos Exp $ */ +/* $NetBSD: netbsd32_exec.h,v 1.33 2017/01/25 21:45:39 jakllsch Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -94,13 +94,12 @@ netbsd32_copyargs(struct lwp *l, struct int envc = arginfo->ps_nenvstr; int error; - NETBSD32PTR32(dp, cpp + + NETBSD32PTR32(dp, (char *)(cpp + 1 +/* int argc */ argc + /* char *argv[] */ 1 +/* \0 */ envc + /* char *env[] */ - 1 +/* \0 */ - /* XXX auxinfo multiplied by ptr size? */ + 1) + /* \0 */ pack->ep_esch->es_arglen); /* auxinfo */ sp = argp;