Module Name: src Committed By: thorpej Date: Mon Sep 20 02:20:31 UTC 2021
Modified Files: src/sys/compat/linux/arch/alpha: linux_syscall.h linux_syscallargs.h linux_syscalls.c linux_sysent.c src/sys/compat/linux/arch/amd64: linux_syscall.h linux_syscallargs.h linux_syscalls.c linux_sysent.c linux_systrace_args.c src/sys/compat/linux/arch/arm: linux_syscall.h linux_syscallargs.h linux_syscalls.c linux_sysent.c linux_systrace_args.c src/sys/compat/linux/arch/i386: linux_syscall.h linux_syscallargs.h linux_syscalls.c linux_sysent.c linux_systrace_args.c src/sys/compat/linux/arch/m68k: linux_syscall.h linux_syscallargs.h linux_syscalls.c linux_sysent.c src/sys/compat/linux/arch/mips: linux_syscall.h linux_syscallargs.h linux_syscalls.c linux_sysent.c src/sys/compat/linux/arch/powerpc: linux_syscall.h linux_syscallargs.h linux_syscalls.c linux_sysent.c src/sys/compat/linux32/arch/amd64: linux32_syscall.h linux32_syscallargs.h linux32_syscalls.c linux32_sysent.c linux32_systrace_args.c Log Message: Regen for preadv(2) / pwritev(2). To generate a diff of this commit: cvs rdiff -u -r1.113 -r1.114 src/sys/compat/linux/arch/alpha/linux_syscall.h \ src/sys/compat/linux/arch/alpha/linux_sysent.c cvs rdiff -u -r1.112 -r1.113 \ src/sys/compat/linux/arch/alpha/linux_syscallargs.h cvs rdiff -u -r1.114 -r1.115 src/sys/compat/linux/arch/alpha/linux_syscalls.c cvs rdiff -u -r1.74 -r1.75 src/sys/compat/linux/arch/amd64/linux_syscall.h \ src/sys/compat/linux/arch/amd64/linux_syscallargs.h \ src/sys/compat/linux/arch/amd64/linux_syscalls.c \ src/sys/compat/linux/arch/amd64/linux_sysent.c cvs rdiff -u -r1.18 -r1.19 \ src/sys/compat/linux/arch/amd64/linux_systrace_args.c cvs rdiff -u -r1.85 -r1.86 src/sys/compat/linux/arch/arm/linux_syscall.h \ src/sys/compat/linux/arch/arm/linux_syscallargs.h \ src/sys/compat/linux/arch/arm/linux_syscalls.c \ src/sys/compat/linux/arch/arm/linux_sysent.c cvs rdiff -u -r1.18 -r1.19 \ src/sys/compat/linux/arch/arm/linux_systrace_args.c cvs rdiff -u -r1.119 -r1.120 src/sys/compat/linux/arch/i386/linux_syscall.h \ src/sys/compat/linux/arch/i386/linux_syscallargs.h \ src/sys/compat/linux/arch/i386/linux_sysent.c cvs rdiff -u -r1.120 -r1.121 src/sys/compat/linux/arch/i386/linux_syscalls.c cvs rdiff -u -r1.14 -r1.15 \ src/sys/compat/linux/arch/i386/linux_systrace_args.c cvs rdiff -u -r1.111 -r1.112 src/sys/compat/linux/arch/m68k/linux_syscall.h \ src/sys/compat/linux/arch/m68k/linux_syscalls.c \ src/sys/compat/linux/arch/m68k/linux_sysent.c cvs rdiff -u -r1.110 -r1.111 \ src/sys/compat/linux/arch/m68k/linux_syscallargs.h cvs rdiff -u -r1.83 -r1.84 src/sys/compat/linux/arch/mips/linux_syscall.h cvs rdiff -u -r1.82 -r1.83 src/sys/compat/linux/arch/mips/linux_syscallargs.h \ src/sys/compat/linux/arch/mips/linux_syscalls.c \ src/sys/compat/linux/arch/mips/linux_sysent.c cvs rdiff -u -r1.89 -r1.90 src/sys/compat/linux/arch/powerpc/linux_syscall.h \ src/sys/compat/linux/arch/powerpc/linux_sysent.c cvs rdiff -u -r1.88 -r1.89 \ src/sys/compat/linux/arch/powerpc/linux_syscallargs.h \ src/sys/compat/linux/arch/powerpc/linux_syscalls.c cvs rdiff -u -r1.84 -r1.85 \ src/sys/compat/linux32/arch/amd64/linux32_syscall.h \ src/sys/compat/linux32/arch/amd64/linux32_syscallargs.h \ src/sys/compat/linux32/arch/amd64/linux32_syscalls.c \ src/sys/compat/linux32/arch/amd64/linux32_sysent.c cvs rdiff -u -r1.11 -r1.12 \ src/sys/compat/linux32/arch/amd64/linux32_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/linux/arch/alpha/linux_syscall.h diff -u src/sys/compat/linux/arch/alpha/linux_syscall.h:1.113 src/sys/compat/linux/arch/alpha/linux_syscall.h:1.114 --- src/sys/compat/linux/arch/alpha/linux_syscall.h:1.113 Mon Sep 20 00:09:33 2021 +++ src/sys/compat/linux/arch/alpha/linux_syscall.h Mon Sep 20 02:20:30 2021 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscall.h,v 1.113 2021/09/20 00:09:33 thorpej Exp $ */ +/* $NetBSD: linux_syscall.h,v 1.114 2021/09/20 02:20:30 thorpej Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.100 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.101 2021/09/20 02:20:02 thorpej Exp */ #ifndef _LINUX_SYS_SYSCALL_H_ @@ -741,6 +741,12 @@ /* syscall: "pipe2" ret: "int" args: "int *" "int" */ #define LINUX_SYS_pipe2 488 +/* syscall: "preadv" ret: "int" args: "int" "const struct iovec *" "int" "unsigned long" "unsigned long" */ +#define LINUX_SYS_preadv 490 + +/* syscall: "pwritev" ret: "int" args: "int" "const struct iovcnt *" "int" "unsigned long" "unsigned long" */ +#define LINUX_SYS_pwritev 491 + /* syscall: "accept4" ret: "int" args: "int" "struct osockaddr *" "int *" "int" */ #define LINUX_SYS_accept4 502 Index: src/sys/compat/linux/arch/alpha/linux_sysent.c diff -u src/sys/compat/linux/arch/alpha/linux_sysent.c:1.113 src/sys/compat/linux/arch/alpha/linux_sysent.c:1.114 --- src/sys/compat/linux/arch/alpha/linux_sysent.c:1.113 Mon Sep 20 00:09:33 2021 +++ src/sys/compat/linux/arch/alpha/linux_sysent.c Mon Sep 20 02:20:30 2021 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_sysent.c,v 1.113 2021/09/20 00:09:33 thorpej Exp $ */ +/* $NetBSD: linux_sysent.c,v 1.114 2021/09/20 02:20:30 thorpej Exp $ */ /* * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.100 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.101 2021/09/20 02:20:02 thorpej Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.113 2021/09/20 00:09:33 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.114 2021/09/20 02:20:30 thorpej Exp $"); #if defined(_KERNEL_OPT) #include "opt_sysv.h" @@ -1954,11 +1954,15 @@ struct sysent linux_sysent[] = { .sy_call = linux_sys_nosys, }, /* 489 = filler */ { - .sy_call = linux_sys_nosys, - }, /* 490 = filler */ + ns(struct linux_sys_preadv_args), + .sy_flags = SYCALL_ARG_PTR, + .sy_call = (sy_call_t *)linux_sys_preadv + }, /* 490 = preadv */ { - .sy_call = linux_sys_nosys, - }, /* 491 = filler */ + ns(struct linux_sys_pwritev_args), + .sy_flags = SYCALL_ARG_PTR, + .sy_call = (sy_call_t *)linux_sys_pwritev + }, /* 491 = pwritev */ { .sy_call = linux_sys_nosys, }, /* 492 = filler */ Index: src/sys/compat/linux/arch/alpha/linux_syscallargs.h diff -u src/sys/compat/linux/arch/alpha/linux_syscallargs.h:1.112 src/sys/compat/linux/arch/alpha/linux_syscallargs.h:1.113 --- src/sys/compat/linux/arch/alpha/linux_syscallargs.h:1.112 Mon Sep 20 00:09:33 2021 +++ src/sys/compat/linux/arch/alpha/linux_syscallargs.h Mon Sep 20 02:20:30 2021 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscallargs.h,v 1.112 2021/09/20 00:09:33 thorpej Exp $ */ +/* $NetBSD: linux_syscallargs.h,v 1.113 2021/09/20 02:20:30 thorpej Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.100 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.101 2021/09/20 02:20:02 thorpej Exp */ #ifndef _LINUX_SYS_SYSCALLARGS_H_ @@ -1194,6 +1194,24 @@ struct linux_sys_pipe2_args { }; check_syscall_args(linux_sys_pipe2) +struct linux_sys_preadv_args { + syscallarg(int) fd; + syscallarg(const struct iovec *) iovp; + syscallarg(int) iovcnt; + syscallarg(unsigned long) off_lo; + syscallarg(unsigned long) off_hi; +}; +check_syscall_args(linux_sys_preadv) + +struct linux_sys_pwritev_args { + syscallarg(int) fd; + syscallarg(const struct iovcnt *) iovp; + syscallarg(int) iovcnt; + syscallarg(unsigned long) off_lo; + syscallarg(unsigned long) off_hi; +}; +check_syscall_args(linux_sys_pwritev) + struct linux_sys_accept4_args { syscallarg(int) s; syscallarg(struct osockaddr *) name; @@ -1704,6 +1722,10 @@ int linux_sys_dup3(struct lwp *, const s int linux_sys_pipe2(struct lwp *, const struct linux_sys_pipe2_args *, register_t *); +int linux_sys_preadv(struct lwp *, const struct linux_sys_preadv_args *, register_t *); + +int linux_sys_pwritev(struct lwp *, const struct linux_sys_pwritev_args *, register_t *); + int linux_sys_accept4(struct lwp *, const struct linux_sys_accept4_args *, register_t *); int linux_sys_sendmmsg(struct lwp *, const struct linux_sys_sendmmsg_args *, register_t *); Index: src/sys/compat/linux/arch/alpha/linux_syscalls.c diff -u src/sys/compat/linux/arch/alpha/linux_syscalls.c:1.114 src/sys/compat/linux/arch/alpha/linux_syscalls.c:1.115 --- src/sys/compat/linux/arch/alpha/linux_syscalls.c:1.114 Mon Sep 20 00:09:33 2021 +++ src/sys/compat/linux/arch/alpha/linux_syscalls.c Mon Sep 20 02:20:30 2021 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_syscalls.c,v 1.114 2021/09/20 00:09:33 thorpej Exp $ */ +/* $NetBSD: linux_syscalls.c,v 1.115 2021/09/20 02:20:30 thorpej Exp $ */ /* * System call names. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.100 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.101 2021/09/20 02:20:02 thorpej Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.114 2021/09/20 00:09:33 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.115 2021/09/20 02:20:30 thorpej Exp $"); #if defined(_KERNEL_OPT) #if defined(_KERNEL_OPT) @@ -549,8 +549,8 @@ const char *const linux_syscallnames[] = /* 487 */ "dup3", /* 488 */ "pipe2", /* 489 */ "#489 (unimplemented inotify_init1)", - /* 490 */ "#490 (unimplemented preadv)", - /* 491 */ "#491 (unimplemented pwritev)", + /* 490 */ "preadv", + /* 491 */ "pwritev", /* 492 */ "#492 (unimplemented rt_tgsigqueueinfo)", /* 493 */ "#493 (unimplemented perf_counter_open)", /* 494 */ "#494 (unimplemented fanotify_init)", @@ -1090,8 +1090,8 @@ const char *const altlinux_syscallnames[ /* 487 */ NULL, /* dup3 */ /* 488 */ NULL, /* pipe2 */ /* 489 */ NULL, /* unimplemented inotify_init1 */ - /* 490 */ NULL, /* unimplemented preadv */ - /* 491 */ NULL, /* unimplemented pwritev */ + /* 490 */ NULL, /* preadv */ + /* 491 */ NULL, /* pwritev */ /* 492 */ NULL, /* unimplemented rt_tgsigqueueinfo */ /* 493 */ NULL, /* unimplemented perf_counter_open */ /* 494 */ NULL, /* unimplemented fanotify_init */ Index: src/sys/compat/linux/arch/amd64/linux_syscall.h diff -u src/sys/compat/linux/arch/amd64/linux_syscall.h:1.74 src/sys/compat/linux/arch/amd64/linux_syscall.h:1.75 --- src/sys/compat/linux/arch/amd64/linux_syscall.h:1.74 Mon Sep 20 00:09:33 2021 +++ src/sys/compat/linux/arch/amd64/linux_syscall.h Mon Sep 20 02:20:30 2021 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscall.h,v 1.74 2021/09/20 00:09:33 thorpej Exp $ */ +/* $NetBSD: linux_syscall.h,v 1.75 2021/09/20 02:20:30 thorpej Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.65 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.66 2021/09/20 02:20:02 thorpej Exp */ #ifndef _LINUX_SYS_SYSCALL_H_ @@ -687,6 +687,12 @@ /* syscall: "pipe2" ret: "int" args: "int *" "int" */ #define LINUX_SYS_pipe2 293 +/* syscall: "preadv" ret: "int" args: "int" "const struct iovec *" "int" "unsigned long" "unsigned long" */ +#define LINUX_SYS_preadv 295 + +/* syscall: "pwritev" ret: "int" args: "int" "const struct iovcnt *" "int" "unsigned long" "unsigned long" */ +#define LINUX_SYS_pwritev 296 + /* syscall: "recvmmsg" ret: "int" args: "int" "struct linux_mmsghdr *" "unsigned int" "unsigned int" "struct timespec *" */ #define LINUX_SYS_recvmmsg 299 Index: src/sys/compat/linux/arch/amd64/linux_syscallargs.h diff -u src/sys/compat/linux/arch/amd64/linux_syscallargs.h:1.74 src/sys/compat/linux/arch/amd64/linux_syscallargs.h:1.75 --- src/sys/compat/linux/arch/amd64/linux_syscallargs.h:1.74 Mon Sep 20 00:09:33 2021 +++ src/sys/compat/linux/arch/amd64/linux_syscallargs.h Mon Sep 20 02:20:30 2021 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscallargs.h,v 1.74 2021/09/20 00:09:33 thorpej Exp $ */ +/* $NetBSD: linux_syscallargs.h,v 1.75 2021/09/20 02:20:30 thorpej Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.65 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.66 2021/09/20 02:20:02 thorpej Exp */ #ifndef _LINUX_SYS_SYSCALLARGS_H_ @@ -1083,6 +1083,24 @@ struct linux_sys_pipe2_args { }; check_syscall_args(linux_sys_pipe2) +struct linux_sys_preadv_args { + syscallarg(int) fd; + syscallarg(const struct iovec *) iovp; + syscallarg(int) iovcnt; + syscallarg(unsigned long) off_lo; + syscallarg(unsigned long) off_hi; +}; +check_syscall_args(linux_sys_preadv) + +struct linux_sys_pwritev_args { + syscallarg(int) fd; + syscallarg(const struct iovcnt *) iovp; + syscallarg(int) iovcnt; + syscallarg(unsigned long) off_lo; + syscallarg(unsigned long) off_hi; +}; +check_syscall_args(linux_sys_pwritev) + struct linux_sys_recvmmsg_args { syscallarg(int) s; syscallarg(struct linux_mmsghdr *) msgvec; @@ -1559,6 +1577,10 @@ int linux_sys_dup3(struct lwp *, const s int linux_sys_pipe2(struct lwp *, const struct linux_sys_pipe2_args *, register_t *); +int linux_sys_preadv(struct lwp *, const struct linux_sys_preadv_args *, register_t *); + +int linux_sys_pwritev(struct lwp *, const struct linux_sys_pwritev_args *, register_t *); + int linux_sys_recvmmsg(struct lwp *, const struct linux_sys_recvmmsg_args *, register_t *); int linux_sys_sendmmsg(struct lwp *, const struct linux_sys_sendmmsg_args *, register_t *); Index: src/sys/compat/linux/arch/amd64/linux_syscalls.c diff -u src/sys/compat/linux/arch/amd64/linux_syscalls.c:1.74 src/sys/compat/linux/arch/amd64/linux_syscalls.c:1.75 --- src/sys/compat/linux/arch/amd64/linux_syscalls.c:1.74 Mon Sep 20 00:09:33 2021 +++ src/sys/compat/linux/arch/amd64/linux_syscalls.c Mon Sep 20 02:20:30 2021 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_syscalls.c,v 1.74 2021/09/20 00:09:33 thorpej Exp $ */ +/* $NetBSD: linux_syscalls.c,v 1.75 2021/09/20 02:20:30 thorpej Exp $ */ /* * System call names. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.65 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.66 2021/09/20 02:20:02 thorpej Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.74 2021/09/20 00:09:33 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.75 2021/09/20 02:20:30 thorpej Exp $"); #if defined(_KERNEL_OPT) #if defined(_KERNEL_OPT) @@ -361,8 +361,8 @@ const char *const linux_syscallnames[] = /* 292 */ "dup3", /* 293 */ "pipe2", /* 294 */ "#294 (unimplemented inotify_init1)", - /* 295 */ "#295 (unimplemented preadv)", - /* 296 */ "#296 (unimplemented pwritev)", + /* 295 */ "preadv", + /* 296 */ "pwritev", /* 297 */ "#297 (unimplemented rt_tgsigqueueinfo)", /* 298 */ "#298 (unimplemented perf_counter_open)", /* 299 */ "recvmmsg", @@ -905,8 +905,8 @@ const char *const altlinux_syscallnames[ /* 292 */ NULL, /* dup3 */ /* 293 */ NULL, /* pipe2 */ /* 294 */ NULL, /* unimplemented inotify_init1 */ - /* 295 */ NULL, /* unimplemented preadv */ - /* 296 */ NULL, /* unimplemented pwritev */ + /* 295 */ NULL, /* preadv */ + /* 296 */ NULL, /* pwritev */ /* 297 */ NULL, /* unimplemented rt_tgsigqueueinfo */ /* 298 */ NULL, /* unimplemented perf_counter_open */ /* 299 */ NULL, /* recvmmsg */ Index: src/sys/compat/linux/arch/amd64/linux_sysent.c diff -u src/sys/compat/linux/arch/amd64/linux_sysent.c:1.74 src/sys/compat/linux/arch/amd64/linux_sysent.c:1.75 --- src/sys/compat/linux/arch/amd64/linux_sysent.c:1.74 Mon Sep 20 00:09:33 2021 +++ src/sys/compat/linux/arch/amd64/linux_sysent.c Mon Sep 20 02:20:30 2021 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_sysent.c,v 1.74 2021/09/20 00:09:33 thorpej Exp $ */ +/* $NetBSD: linux_sysent.c,v 1.75 2021/09/20 02:20:30 thorpej Exp $ */ /* * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.65 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.66 2021/09/20 02:20:02 thorpej Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.74 2021/09/20 00:09:33 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.75 2021/09/20 02:20:30 thorpej Exp $"); #if defined(_KERNEL_OPT) #include "opt_sysv.h" @@ -1331,11 +1331,15 @@ struct sysent linux_sysent[] = { .sy_call = linux_sys_nosys, }, /* 294 = filler */ { - .sy_call = linux_sys_nosys, - }, /* 295 = filler */ + ns(struct linux_sys_preadv_args), + .sy_flags = SYCALL_ARG_PTR, + .sy_call = (sy_call_t *)linux_sys_preadv + }, /* 295 = preadv */ { - .sy_call = linux_sys_nosys, - }, /* 296 = filler */ + ns(struct linux_sys_pwritev_args), + .sy_flags = SYCALL_ARG_PTR, + .sy_call = (sy_call_t *)linux_sys_pwritev + }, /* 296 = pwritev */ { .sy_call = linux_sys_nosys, }, /* 297 = filler */ Index: src/sys/compat/linux/arch/amd64/linux_systrace_args.c diff -u src/sys/compat/linux/arch/amd64/linux_systrace_args.c:1.18 src/sys/compat/linux/arch/amd64/linux_systrace_args.c:1.19 --- src/sys/compat/linux/arch/amd64/linux_systrace_args.c:1.18 Mon Sep 20 00:09:33 2021 +++ src/sys/compat/linux/arch/amd64/linux_systrace_args.c Mon Sep 20 02:20:30 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_systrace_args.c,v 1.18 2021/09/20 00:09:33 thorpej Exp $ */ +/* $NetBSD: linux_systrace_args.c,v 1.19 2021/09/20 02:20:30 thorpej Exp $ */ /* * System call argument to DTrace register array conversion. @@ -1862,6 +1862,28 @@ systrace_args(register_t sysnum, const v *n_args = 2; break; } + /* linux_sys_preadv */ + case 295: { + const struct linux_sys_preadv_args *p = params; + iarg[0] = SCARG(p, fd); /* int */ + uarg[1] = (intptr_t) SCARG(p, iovp); /* const struct iovec * */ + iarg[2] = SCARG(p, iovcnt); /* int */ + uarg[3] = SCARG(p, off_lo); /* unsigned long */ + uarg[4] = SCARG(p, off_hi); /* unsigned long */ + *n_args = 5; + break; + } + /* linux_sys_pwritev */ + case 296: { + const struct linux_sys_pwritev_args *p = params; + iarg[0] = SCARG(p, fd); /* int */ + uarg[1] = (intptr_t) SCARG(p, iovp); /* const struct iovcnt * */ + iarg[2] = SCARG(p, iovcnt); /* int */ + uarg[3] = SCARG(p, off_lo); /* unsigned long */ + uarg[4] = SCARG(p, off_hi); /* unsigned long */ + *n_args = 5; + break; + } /* linux_sys_recvmmsg */ case 299: { const struct linux_sys_recvmmsg_args *p = params; @@ -4982,6 +5004,50 @@ systrace_entry_setargdesc(int sysnum, in break; }; break; + /* linux_sys_preadv */ + case 295: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "const struct iovec *"; + break; + case 2: + p = "int"; + break; + case 3: + p = "unsigned long"; + break; + case 4: + p = "unsigned long"; + break; + default: + break; + }; + break; + /* linux_sys_pwritev */ + case 296: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "const struct iovcnt *"; + break; + case 2: + p = "int"; + break; + case 3: + p = "unsigned long"; + break; + case 4: + p = "unsigned long"; + break; + default: + break; + }; + break; /* linux_sys_recvmmsg */ case 299: switch(ndx) { @@ -6104,6 +6170,16 @@ systrace_return_setargdesc(int sysnum, i if (ndx == 0 || ndx == 1) p = "int"; break; + /* linux_sys_preadv */ + case 295: + if (ndx == 0 || ndx == 1) + p = "int"; + break; + /* linux_sys_pwritev */ + case 296: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_sys_recvmmsg */ case 299: if (ndx == 0 || ndx == 1) Index: src/sys/compat/linux/arch/arm/linux_syscall.h diff -u src/sys/compat/linux/arch/arm/linux_syscall.h:1.85 src/sys/compat/linux/arch/arm/linux_syscall.h:1.86 --- src/sys/compat/linux/arch/arm/linux_syscall.h:1.85 Mon Sep 20 00:09:33 2021 +++ src/sys/compat/linux/arch/arm/linux_syscall.h Mon Sep 20 02:20:30 2021 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscall.h,v 1.85 2021/09/20 00:09:33 thorpej Exp $ */ +/* $NetBSD: linux_syscall.h,v 1.86 2021/09/20 02:20:30 thorpej Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.72 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.73 2021/09/20 02:20:02 thorpej Exp */ #ifndef _LINUX_SYS_SYSCALL_H_ @@ -742,6 +742,12 @@ /* syscall: "pipe2" ret: "int" args: "int *" "int" */ #define LINUX_SYS_pipe2 359 +/* syscall: "preadv" ret: "int" args: "int" "const struct iovec *" "int" "unsigned long" "unsigned long" */ +#define LINUX_SYS_preadv 361 + +/* syscall: "pwritev" ret: "int" args: "int" "const struct iovcnt *" "int" "unsigned long" "unsigned long" */ +#define LINUX_SYS_pwritev 362 + /* syscall: "recvmmsg" ret: "int" args: "int" "struct linux_mmsghdr *" "unsigned int" "unsigned int" "struct timespec *" */ #define LINUX_SYS_recvmmsg 365 Index: src/sys/compat/linux/arch/arm/linux_syscallargs.h diff -u src/sys/compat/linux/arch/arm/linux_syscallargs.h:1.85 src/sys/compat/linux/arch/arm/linux_syscallargs.h:1.86 --- src/sys/compat/linux/arch/arm/linux_syscallargs.h:1.85 Mon Sep 20 00:09:33 2021 +++ src/sys/compat/linux/arch/arm/linux_syscallargs.h Mon Sep 20 02:20:30 2021 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscallargs.h,v 1.85 2021/09/20 00:09:33 thorpej Exp $ */ +/* $NetBSD: linux_syscallargs.h,v 1.86 2021/09/20 02:20:30 thorpej Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.72 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.73 2021/09/20 02:20:02 thorpej Exp */ #ifndef _LINUX_SYS_SYSCALLARGS_H_ @@ -1149,6 +1149,24 @@ struct linux_sys_pipe2_args { }; check_syscall_args(linux_sys_pipe2) +struct linux_sys_preadv_args { + syscallarg(int) fd; + syscallarg(const struct iovec *) iovp; + syscallarg(int) iovcnt; + syscallarg(unsigned long) off_lo; + syscallarg(unsigned long) off_hi; +}; +check_syscall_args(linux_sys_preadv) + +struct linux_sys_pwritev_args { + syscallarg(int) fd; + syscallarg(const struct iovcnt *) iovp; + syscallarg(int) iovcnt; + syscallarg(unsigned long) off_lo; + syscallarg(unsigned long) off_hi; +}; +check_syscall_args(linux_sys_pwritev) + struct linux_sys_recvmmsg_args { syscallarg(int) s; syscallarg(struct linux_mmsghdr *) msgvec; @@ -1654,6 +1672,10 @@ int linux_sys_dup3(struct lwp *, const s int linux_sys_pipe2(struct lwp *, const struct linux_sys_pipe2_args *, register_t *); +int linux_sys_preadv(struct lwp *, const struct linux_sys_preadv_args *, register_t *); + +int linux_sys_pwritev(struct lwp *, const struct linux_sys_pwritev_args *, register_t *); + int linux_sys_recvmmsg(struct lwp *, const struct linux_sys_recvmmsg_args *, register_t *); int linux_sys_accept4(struct lwp *, const struct linux_sys_accept4_args *, register_t *); Index: src/sys/compat/linux/arch/arm/linux_syscalls.c diff -u src/sys/compat/linux/arch/arm/linux_syscalls.c:1.85 src/sys/compat/linux/arch/arm/linux_syscalls.c:1.86 --- src/sys/compat/linux/arch/arm/linux_syscalls.c:1.85 Mon Sep 20 00:09:33 2021 +++ src/sys/compat/linux/arch/arm/linux_syscalls.c Mon Sep 20 02:20:30 2021 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_syscalls.c,v 1.85 2021/09/20 00:09:33 thorpej Exp $ */ +/* $NetBSD: linux_syscalls.c,v 1.86 2021/09/20 02:20:30 thorpej Exp $ */ /* * System call names. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.72 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.73 2021/09/20 02:20:02 thorpej Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.85 2021/09/20 00:09:33 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.86 2021/09/20 02:20:30 thorpej Exp $"); #if defined(_KERNEL_OPT) #include <sys/param.h> @@ -396,8 +396,8 @@ const char *const linux_syscallnames[] = /* 358 */ "dup3", /* 359 */ "pipe2", /* 360 */ "#360 (unimplemented inotify_init1)", - /* 361 */ "#361 (unimplemented preadv)", - /* 362 */ "#362 (unimplemented pwritev)", + /* 361 */ "preadv", + /* 362 */ "pwritev", /* 363 */ "#363 (unimplemented rt_tgsigqueueinfo)", /* 364 */ "#364 (unimplemented perf_counter_open)", /* 365 */ "recvmmsg", @@ -918,8 +918,8 @@ const char *const altlinux_syscallnames[ /* 358 */ NULL, /* dup3 */ /* 359 */ NULL, /* pipe2 */ /* 360 */ NULL, /* unimplemented inotify_init1 */ - /* 361 */ NULL, /* unimplemented preadv */ - /* 362 */ NULL, /* unimplemented pwritev */ + /* 361 */ NULL, /* preadv */ + /* 362 */ NULL, /* pwritev */ /* 363 */ NULL, /* unimplemented rt_tgsigqueueinfo */ /* 364 */ NULL, /* unimplemented perf_counter_open */ /* 365 */ NULL, /* recvmmsg */ Index: src/sys/compat/linux/arch/arm/linux_sysent.c diff -u src/sys/compat/linux/arch/arm/linux_sysent.c:1.85 src/sys/compat/linux/arch/arm/linux_sysent.c:1.86 --- src/sys/compat/linux/arch/arm/linux_sysent.c:1.85 Mon Sep 20 00:09:33 2021 +++ src/sys/compat/linux/arch/arm/linux_sysent.c Mon Sep 20 02:20:30 2021 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_sysent.c,v 1.85 2021/09/20 00:09:33 thorpej Exp $ */ +/* $NetBSD: linux_sysent.c,v 1.86 2021/09/20 02:20:30 thorpej Exp $ */ /* * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.72 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.73 2021/09/20 02:20:02 thorpej Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.85 2021/09/20 00:09:33 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.86 2021/09/20 02:20:30 thorpej Exp $"); #include <sys/param.h> #include <sys/poll.h> @@ -1499,11 +1499,15 @@ struct sysent linux_sysent[] = { .sy_call = linux_sys_nosys, }, /* 360 = filler */ { - .sy_call = linux_sys_nosys, - }, /* 361 = filler */ + ns(struct linux_sys_preadv_args), + .sy_flags = SYCALL_ARG_PTR, + .sy_call = (sy_call_t *)linux_sys_preadv + }, /* 361 = preadv */ { - .sy_call = linux_sys_nosys, - }, /* 362 = filler */ + ns(struct linux_sys_pwritev_args), + .sy_flags = SYCALL_ARG_PTR, + .sy_call = (sy_call_t *)linux_sys_pwritev + }, /* 362 = pwritev */ { .sy_call = linux_sys_nosys, }, /* 363 = filler */ Index: src/sys/compat/linux/arch/arm/linux_systrace_args.c diff -u src/sys/compat/linux/arch/arm/linux_systrace_args.c:1.18 src/sys/compat/linux/arch/arm/linux_systrace_args.c:1.19 --- src/sys/compat/linux/arch/arm/linux_systrace_args.c:1.18 Mon Sep 20 00:09:33 2021 +++ src/sys/compat/linux/arch/arm/linux_systrace_args.c Mon Sep 20 02:20:30 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_systrace_args.c,v 1.18 2021/09/20 00:09:33 thorpej Exp $ */ +/* $NetBSD: linux_systrace_args.c,v 1.19 2021/09/20 02:20:30 thorpej Exp $ */ /* * System call argument to DTrace register array conversion. @@ -1951,6 +1951,28 @@ systrace_args(register_t sysnum, const v *n_args = 2; break; } + /* linux_sys_preadv */ + case 361: { + const struct linux_sys_preadv_args *p = params; + iarg[0] = SCARG(p, fd); /* int */ + uarg[1] = (intptr_t) SCARG(p, iovp); /* const struct iovec * */ + iarg[2] = SCARG(p, iovcnt); /* int */ + uarg[3] = SCARG(p, off_lo); /* unsigned long */ + uarg[4] = SCARG(p, off_hi); /* unsigned long */ + *n_args = 5; + break; + } + /* linux_sys_pwritev */ + case 362: { + const struct linux_sys_pwritev_args *p = params; + iarg[0] = SCARG(p, fd); /* int */ + uarg[1] = (intptr_t) SCARG(p, iovp); /* const struct iovcnt * */ + iarg[2] = SCARG(p, iovcnt); /* int */ + uarg[3] = SCARG(p, off_lo); /* unsigned long */ + uarg[4] = SCARG(p, off_hi); /* unsigned long */ + *n_args = 5; + break; + } /* linux_sys_recvmmsg */ case 365: { const struct linux_sys_recvmmsg_args *p = params; @@ -5183,6 +5205,50 @@ systrace_entry_setargdesc(int sysnum, in break; }; break; + /* linux_sys_preadv */ + case 361: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "const struct iovec *"; + break; + case 2: + p = "int"; + break; + case 3: + p = "unsigned long"; + break; + case 4: + p = "unsigned long"; + break; + default: + break; + }; + break; + /* linux_sys_pwritev */ + case 362: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "const struct iovcnt *"; + break; + case 2: + p = "int"; + break; + case 3: + p = "unsigned long"; + break; + case 4: + p = "unsigned long"; + break; + default: + break; + }; + break; /* linux_sys_recvmmsg */ case 365: switch(ndx) { @@ -6414,6 +6480,16 @@ systrace_return_setargdesc(int sysnum, i if (ndx == 0 || ndx == 1) p = "int"; break; + /* linux_sys_preadv */ + case 361: + if (ndx == 0 || ndx == 1) + p = "int"; + break; + /* linux_sys_pwritev */ + case 362: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_sys_recvmmsg */ case 365: if (ndx == 0 || ndx == 1) Index: src/sys/compat/linux/arch/i386/linux_syscall.h diff -u src/sys/compat/linux/arch/i386/linux_syscall.h:1.119 src/sys/compat/linux/arch/i386/linux_syscall.h:1.120 --- src/sys/compat/linux/arch/i386/linux_syscall.h:1.119 Mon Sep 20 00:09:33 2021 +++ src/sys/compat/linux/arch/i386/linux_syscall.h Mon Sep 20 02:20:30 2021 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscall.h,v 1.119 2021/09/20 00:09:33 thorpej Exp $ */ +/* $NetBSD: linux_syscall.h,v 1.120 2021/09/20 02:20:30 thorpej Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.127 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.128 2021/09/20 02:20:02 thorpej Exp */ #ifndef _LINUX_SYS_SYSCALL_H_ @@ -764,6 +764,12 @@ /* syscall: "pipe2" ret: "int" args: "int *" "int" */ #define LINUX_SYS_pipe2 331 +/* syscall: "preadv" ret: "int" args: "int" "const struct iovec *" "int" "unsigned long" "unsigned long" */ +#define LINUX_SYS_preadv 333 + +/* syscall: "pwritev" ret: "int" args: "int" "const struct iovcnt *" "int" "unsigned long" "unsigned long" */ +#define LINUX_SYS_pwritev 334 + #define LINUX_SYS_MAXSYSCALL 351 #define LINUX_SYS_NSYSENT 512 #endif /* _LINUX_SYS_SYSCALL_H_ */ Index: src/sys/compat/linux/arch/i386/linux_syscallargs.h diff -u src/sys/compat/linux/arch/i386/linux_syscallargs.h:1.119 src/sys/compat/linux/arch/i386/linux_syscallargs.h:1.120 --- src/sys/compat/linux/arch/i386/linux_syscallargs.h:1.119 Mon Sep 20 00:09:33 2021 +++ src/sys/compat/linux/arch/i386/linux_syscallargs.h Mon Sep 20 02:20:30 2021 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscallargs.h,v 1.119 2021/09/20 00:09:33 thorpej Exp $ */ +/* $NetBSD: linux_syscallargs.h,v 1.120 2021/09/20 02:20:30 thorpej Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.127 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.128 2021/09/20 02:20:02 thorpej Exp */ #ifndef _LINUX_SYS_SYSCALLARGS_H_ @@ -1196,6 +1196,24 @@ struct linux_sys_pipe2_args { }; check_syscall_args(linux_sys_pipe2) +struct linux_sys_preadv_args { + syscallarg(int) fd; + syscallarg(const struct iovec *) iovp; + syscallarg(int) iovcnt; + syscallarg(unsigned long) off_lo; + syscallarg(unsigned long) off_hi; +}; +check_syscall_args(linux_sys_preadv) + +struct linux_sys_pwritev_args { + syscallarg(int) fd; + syscallarg(const struct iovcnt *) iovp; + syscallarg(int) iovcnt; + syscallarg(unsigned long) off_lo; + syscallarg(unsigned long) off_hi; +}; +check_syscall_args(linux_sys_pwritev) + /* * System call prototypes. */ @@ -1680,4 +1698,8 @@ int linux_sys_dup3(struct lwp *, const s int linux_sys_pipe2(struct lwp *, const struct linux_sys_pipe2_args *, register_t *); +int linux_sys_preadv(struct lwp *, const struct linux_sys_preadv_args *, register_t *); + +int linux_sys_pwritev(struct lwp *, const struct linux_sys_pwritev_args *, register_t *); + #endif /* _LINUX_SYS_SYSCALLARGS_H_ */ Index: src/sys/compat/linux/arch/i386/linux_sysent.c diff -u src/sys/compat/linux/arch/i386/linux_sysent.c:1.119 src/sys/compat/linux/arch/i386/linux_sysent.c:1.120 --- src/sys/compat/linux/arch/i386/linux_sysent.c:1.119 Mon Sep 20 00:09:33 2021 +++ src/sys/compat/linux/arch/i386/linux_sysent.c Mon Sep 20 02:20:31 2021 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_sysent.c,v 1.119 2021/09/20 00:09:33 thorpej Exp $ */ +/* $NetBSD: linux_sysent.c,v 1.120 2021/09/20 02:20:31 thorpej Exp $ */ /* * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.127 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.128 2021/09/20 02:20:02 thorpej Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.119 2021/09/20 00:09:33 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.120 2021/09/20 02:20:31 thorpej Exp $"); #include <sys/param.h> #include <sys/poll.h> @@ -1428,11 +1428,15 @@ struct sysent linux_sysent[] = { .sy_call = linux_sys_nosys, }, /* 332 = filler */ { - .sy_call = linux_sys_nosys, - }, /* 333 = filler */ + ns(struct linux_sys_preadv_args), + .sy_flags = SYCALL_ARG_PTR, + .sy_call = (sy_call_t *)linux_sys_preadv + }, /* 333 = preadv */ { - .sy_call = linux_sys_nosys, - }, /* 334 = filler */ + ns(struct linux_sys_pwritev_args), + .sy_flags = SYCALL_ARG_PTR, + .sy_call = (sy_call_t *)linux_sys_pwritev + }, /* 334 = pwritev */ { .sy_call = linux_sys_nosys, }, /* 335 = filler */ Index: src/sys/compat/linux/arch/i386/linux_syscalls.c diff -u src/sys/compat/linux/arch/i386/linux_syscalls.c:1.120 src/sys/compat/linux/arch/i386/linux_syscalls.c:1.121 --- src/sys/compat/linux/arch/i386/linux_syscalls.c:1.120 Mon Sep 20 00:09:33 2021 +++ src/sys/compat/linux/arch/i386/linux_syscalls.c Mon Sep 20 02:20:31 2021 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_syscalls.c,v 1.120 2021/09/20 00:09:33 thorpej Exp $ */ +/* $NetBSD: linux_syscalls.c,v 1.121 2021/09/20 02:20:31 thorpej Exp $ */ /* * System call names. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.127 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.128 2021/09/20 02:20:02 thorpej Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.120 2021/09/20 00:09:33 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.121 2021/09/20 02:20:31 thorpej Exp $"); #if defined(_KERNEL_OPT) #include <sys/param.h> @@ -367,8 +367,8 @@ const char *const linux_syscallnames[] = /* 330 */ "dup3", /* 331 */ "pipe2", /* 332 */ "#332 (unimplemented inotify_init1)", - /* 333 */ "#333 (unimplemented preadv)", - /* 334 */ "#334 (unimplemented pwritev)", + /* 333 */ "preadv", + /* 334 */ "pwritev", /* 335 */ "#335 (unimplemented rt_tgsigqueueinfo)", /* 336 */ "#336 (unimplemented perf_counter_open)", /* 337 */ "#337 (unimplemented recvmmsg)", @@ -889,8 +889,8 @@ const char *const altlinux_syscallnames[ /* 330 */ NULL, /* dup3 */ /* 331 */ NULL, /* pipe2 */ /* 332 */ NULL, /* unimplemented inotify_init1 */ - /* 333 */ NULL, /* unimplemented preadv */ - /* 334 */ NULL, /* unimplemented pwritev */ + /* 333 */ NULL, /* preadv */ + /* 334 */ NULL, /* pwritev */ /* 335 */ NULL, /* unimplemented rt_tgsigqueueinfo */ /* 336 */ NULL, /* unimplemented perf_counter_open */ /* 337 */ NULL, /* unimplemented recvmmsg */ Index: src/sys/compat/linux/arch/i386/linux_systrace_args.c diff -u src/sys/compat/linux/arch/i386/linux_systrace_args.c:1.14 src/sys/compat/linux/arch/i386/linux_systrace_args.c:1.15 --- src/sys/compat/linux/arch/i386/linux_systrace_args.c:1.14 Mon Sep 20 00:09:33 2021 +++ src/sys/compat/linux/arch/i386/linux_systrace_args.c Mon Sep 20 02:20:31 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_systrace_args.c,v 1.14 2021/09/20 00:09:33 thorpej Exp $ */ +/* $NetBSD: linux_systrace_args.c,v 1.15 2021/09/20 02:20:31 thorpej Exp $ */ /* * System call argument to DTrace register array conversion. @@ -2014,6 +2014,28 @@ systrace_args(register_t sysnum, const v *n_args = 2; break; } + /* linux_sys_preadv */ + case 333: { + const struct linux_sys_preadv_args *p = params; + iarg[0] = SCARG(p, fd); /* int */ + uarg[1] = (intptr_t) SCARG(p, iovp); /* const struct iovec * */ + iarg[2] = SCARG(p, iovcnt); /* int */ + uarg[3] = SCARG(p, off_lo); /* unsigned long */ + uarg[4] = SCARG(p, off_hi); /* unsigned long */ + *n_args = 5; + break; + } + /* linux_sys_pwritev */ + case 334: { + const struct linux_sys_pwritev_args *p = params; + iarg[0] = SCARG(p, fd); /* int */ + uarg[1] = (intptr_t) SCARG(p, iovp); /* const struct iovcnt * */ + iarg[2] = SCARG(p, iovcnt); /* int */ + uarg[3] = SCARG(p, off_lo); /* unsigned long */ + uarg[4] = SCARG(p, off_hi); /* unsigned long */ + *n_args = 5; + break; + } default: *n_args = 0; break; @@ -5295,6 +5317,50 @@ systrace_entry_setargdesc(int sysnum, in break; }; break; + /* linux_sys_preadv */ + case 333: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "const struct iovec *"; + break; + case 2: + p = "int"; + break; + case 3: + p = "unsigned long"; + break; + case 4: + p = "unsigned long"; + break; + default: + break; + }; + break; + /* linux_sys_pwritev */ + case 334: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "const struct iovcnt *"; + break; + case 2: + p = "int"; + break; + case 3: + p = "unsigned long"; + break; + case 4: + p = "unsigned long"; + break; + default: + break; + }; + break; default: break; }; @@ -6477,6 +6543,16 @@ systrace_return_setargdesc(int sysnum, i if (ndx == 0 || ndx == 1) p = "int"; break; + /* linux_sys_preadv */ + case 333: + if (ndx == 0 || ndx == 1) + p = "int"; + break; + /* linux_sys_pwritev */ + case 334: + if (ndx == 0 || ndx == 1) + p = "int"; + break; default: break; }; Index: src/sys/compat/linux/arch/m68k/linux_syscall.h diff -u src/sys/compat/linux/arch/m68k/linux_syscall.h:1.111 src/sys/compat/linux/arch/m68k/linux_syscall.h:1.112 --- src/sys/compat/linux/arch/m68k/linux_syscall.h:1.111 Mon Sep 20 00:09:34 2021 +++ src/sys/compat/linux/arch/m68k/linux_syscall.h Mon Sep 20 02:20:31 2021 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscall.h,v 1.111 2021/09/20 00:09:34 thorpej Exp $ */ +/* $NetBSD: linux_syscall.h,v 1.112 2021/09/20 02:20:31 thorpej Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.98 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.99 2021/09/20 02:20:02 thorpej Exp */ #ifndef _LINUX_SYS_SYSCALL_H_ @@ -753,6 +753,12 @@ /* syscall: "pipe2" ret: "int" args: "int *" "int" */ #define LINUX_SYS_pipe2 327 +/* syscall: "preadv" ret: "int" args: "int" "const struct iovec *" "int" "unsigned long" "unsigned long" */ +#define LINUX_SYS_preadv 329 + +/* syscall: "pwritev" ret: "int" args: "int" "const struct iovcnt *" "int" "unsigned long" "unsigned long" */ +#define LINUX_SYS_pwritev 330 + /* syscall: "accept4" ret: "int" args: "int" "struct osockaddr *" "int *" "int" */ #define LINUX_SYS_accept4 361 Index: src/sys/compat/linux/arch/m68k/linux_syscalls.c diff -u src/sys/compat/linux/arch/m68k/linux_syscalls.c:1.111 src/sys/compat/linux/arch/m68k/linux_syscalls.c:1.112 --- src/sys/compat/linux/arch/m68k/linux_syscalls.c:1.111 Mon Sep 20 00:09:34 2021 +++ src/sys/compat/linux/arch/m68k/linux_syscalls.c Mon Sep 20 02:20:31 2021 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_syscalls.c,v 1.111 2021/09/20 00:09:34 thorpej Exp $ */ +/* $NetBSD: linux_syscalls.c,v 1.112 2021/09/20 02:20:31 thorpej Exp $ */ /* * System call names. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.98 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.99 2021/09/20 02:20:02 thorpej Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.111 2021/09/20 00:09:34 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.112 2021/09/20 02:20:31 thorpej Exp $"); #if defined(_KERNEL_OPT) #if defined(_KERNEL_OPT) @@ -383,8 +383,8 @@ const char *const linux_syscallnames[] = /* 326 */ "dup3", /* 327 */ "pipe2", /* 328 */ "#328 (unimplemented inotify_init1)", - /* 329 */ "#329 (unimplemented preadv)", - /* 330 */ "#330 (unimplemented pwritev)", + /* 329 */ "preadv", + /* 330 */ "pwritev", /* 331 */ "#331 (unimplemented rt_tgsigqueueinfo)", /* 332 */ "#332 (unimplemented perf_counter_open)", /* 333 */ "#333 (unimplemented set_thread_area)", @@ -921,8 +921,8 @@ const char *const altlinux_syscallnames[ /* 326 */ NULL, /* dup3 */ /* 327 */ NULL, /* pipe2 */ /* 328 */ NULL, /* unimplemented inotify_init1 */ - /* 329 */ NULL, /* unimplemented preadv */ - /* 330 */ NULL, /* unimplemented pwritev */ + /* 329 */ NULL, /* preadv */ + /* 330 */ NULL, /* pwritev */ /* 331 */ NULL, /* unimplemented rt_tgsigqueueinfo */ /* 332 */ NULL, /* unimplemented perf_counter_open */ /* 333 */ NULL, /* unimplemented set_thread_area */ Index: src/sys/compat/linux/arch/m68k/linux_sysent.c diff -u src/sys/compat/linux/arch/m68k/linux_sysent.c:1.111 src/sys/compat/linux/arch/m68k/linux_sysent.c:1.112 --- src/sys/compat/linux/arch/m68k/linux_sysent.c:1.111 Mon Sep 20 00:09:34 2021 +++ src/sys/compat/linux/arch/m68k/linux_sysent.c Mon Sep 20 02:20:31 2021 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_sysent.c,v 1.111 2021/09/20 00:09:34 thorpej Exp $ */ +/* $NetBSD: linux_sysent.c,v 1.112 2021/09/20 02:20:31 thorpej Exp $ */ /* * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.98 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.99 2021/09/20 02:20:02 thorpej Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.111 2021/09/20 00:09:34 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.112 2021/09/20 02:20:31 thorpej Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd.h" @@ -1426,11 +1426,15 @@ struct sysent linux_sysent[] = { .sy_call = linux_sys_nosys, }, /* 328 = filler */ { - .sy_call = linux_sys_nosys, - }, /* 329 = filler */ + ns(struct linux_sys_preadv_args), + .sy_flags = SYCALL_ARG_PTR, + .sy_call = (sy_call_t *)linux_sys_preadv + }, /* 329 = preadv */ { - .sy_call = linux_sys_nosys, - }, /* 330 = filler */ + ns(struct linux_sys_pwritev_args), + .sy_flags = SYCALL_ARG_PTR, + .sy_call = (sy_call_t *)linux_sys_pwritev + }, /* 330 = pwritev */ { .sy_call = linux_sys_nosys, }, /* 331 = filler */ Index: src/sys/compat/linux/arch/m68k/linux_syscallargs.h diff -u src/sys/compat/linux/arch/m68k/linux_syscallargs.h:1.110 src/sys/compat/linux/arch/m68k/linux_syscallargs.h:1.111 --- src/sys/compat/linux/arch/m68k/linux_syscallargs.h:1.110 Mon Sep 20 00:09:34 2021 +++ src/sys/compat/linux/arch/m68k/linux_syscallargs.h Mon Sep 20 02:20:31 2021 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscallargs.h,v 1.110 2021/09/20 00:09:34 thorpej Exp $ */ +/* $NetBSD: linux_syscallargs.h,v 1.111 2021/09/20 02:20:31 thorpej Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.98 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.99 2021/09/20 02:20:02 thorpej Exp */ #ifndef _LINUX_SYS_SYSCALLARGS_H_ @@ -1157,6 +1157,24 @@ struct linux_sys_pipe2_args { }; check_syscall_args(linux_sys_pipe2) +struct linux_sys_preadv_args { + syscallarg(int) fd; + syscallarg(const struct iovec *) iovp; + syscallarg(int) iovcnt; + syscallarg(unsigned long) off_lo; + syscallarg(unsigned long) off_hi; +}; +check_syscall_args(linux_sys_preadv) + +struct linux_sys_pwritev_args { + syscallarg(int) fd; + syscallarg(const struct iovcnt *) iovp; + syscallarg(int) iovcnt; + syscallarg(unsigned long) off_lo; + syscallarg(unsigned long) off_hi; +}; +check_syscall_args(linux_sys_pwritev) + struct linux_sys_accept4_args { syscallarg(int) s; syscallarg(struct osockaddr *) name; @@ -1662,6 +1680,10 @@ int linux_sys_dup3(struct lwp *, const s int linux_sys_pipe2(struct lwp *, const struct linux_sys_pipe2_args *, register_t *); +int linux_sys_preadv(struct lwp *, const struct linux_sys_preadv_args *, register_t *); + +int linux_sys_pwritev(struct lwp *, const struct linux_sys_pwritev_args *, register_t *); + int linux_sys_accept4(struct lwp *, const struct linux_sys_accept4_args *, register_t *); int linux_sys_recvmmsg(struct lwp *, const struct linux_sys_recvmmsg_args *, register_t *); Index: src/sys/compat/linux/arch/mips/linux_syscall.h diff -u src/sys/compat/linux/arch/mips/linux_syscall.h:1.83 src/sys/compat/linux/arch/mips/linux_syscall.h:1.84 --- src/sys/compat/linux/arch/mips/linux_syscall.h:1.83 Mon Sep 20 00:09:34 2021 +++ src/sys/compat/linux/arch/mips/linux_syscall.h Mon Sep 20 02:20:31 2021 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscall.h,v 1.83 2021/09/20 00:09:34 thorpej Exp $ */ +/* $NetBSD: linux_syscall.h,v 1.84 2021/09/20 02:20:31 thorpej Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.71 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.72 2021/09/20 02:20:02 thorpej Exp */ #ifndef _LINUX_SYS_SYSCALL_H_ @@ -721,6 +721,12 @@ /* syscall: "pipe2" ret: "int" args: "int *" "int" */ #define LINUX_SYS_pipe2 328 +/* syscall: "preadv" ret: "int" args: "int" "const struct iovec *" "int" "unsigned long" "unsigned long" */ +#define LINUX_SYS_preadv 330 + +/* syscall: "pwritev" ret: "int" args: "int" "const struct iovcnt *" "int" "unsigned long" "unsigned long" */ +#define LINUX_SYS_pwritev 331 + /* syscall: "accept4" ret: "int" args: "int" "struct osockaddr *" "int *" "int" */ #define LINUX_SYS_accept4 334 Index: src/sys/compat/linux/arch/mips/linux_syscallargs.h diff -u src/sys/compat/linux/arch/mips/linux_syscallargs.h:1.82 src/sys/compat/linux/arch/mips/linux_syscallargs.h:1.83 --- src/sys/compat/linux/arch/mips/linux_syscallargs.h:1.82 Mon Sep 20 00:09:34 2021 +++ src/sys/compat/linux/arch/mips/linux_syscallargs.h Mon Sep 20 02:20:31 2021 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscallargs.h,v 1.82 2021/09/20 00:09:34 thorpej Exp $ */ +/* $NetBSD: linux_syscallargs.h,v 1.83 2021/09/20 02:20:31 thorpej Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.71 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.72 2021/09/20 02:20:02 thorpej Exp */ #ifndef _LINUX_SYS_SYSCALLARGS_H_ @@ -1195,6 +1195,24 @@ struct linux_sys_pipe2_args { }; check_syscall_args(linux_sys_pipe2) +struct linux_sys_preadv_args { + syscallarg(int) fd; + syscallarg(const struct iovec *) iovp; + syscallarg(int) iovcnt; + syscallarg(unsigned long) off_lo; + syscallarg(unsigned long) off_hi; +}; +check_syscall_args(linux_sys_preadv) + +struct linux_sys_pwritev_args { + syscallarg(int) fd; + syscallarg(const struct iovcnt *) iovp; + syscallarg(int) iovcnt; + syscallarg(unsigned long) off_lo; + syscallarg(unsigned long) off_hi; +}; +check_syscall_args(linux_sys_pwritev) + struct linux_sys_accept4_args { syscallarg(int) s; syscallarg(struct osockaddr *) name; @@ -1694,6 +1712,10 @@ int linux_sys_dup3(struct lwp *, const s int linux_sys_pipe2(struct lwp *, const struct linux_sys_pipe2_args *, register_t *); +int linux_sys_preadv(struct lwp *, const struct linux_sys_preadv_args *, register_t *); + +int linux_sys_pwritev(struct lwp *, const struct linux_sys_pwritev_args *, register_t *); + int linux_sys_accept4(struct lwp *, const struct linux_sys_accept4_args *, register_t *); int linux_sys_recvmmsg(struct lwp *, const struct linux_sys_recvmmsg_args *, register_t *); Index: src/sys/compat/linux/arch/mips/linux_syscalls.c diff -u src/sys/compat/linux/arch/mips/linux_syscalls.c:1.82 src/sys/compat/linux/arch/mips/linux_syscalls.c:1.83 --- src/sys/compat/linux/arch/mips/linux_syscalls.c:1.82 Mon Sep 20 00:09:34 2021 +++ src/sys/compat/linux/arch/mips/linux_syscalls.c Mon Sep 20 02:20:31 2021 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_syscalls.c,v 1.82 2021/09/20 00:09:34 thorpej Exp $ */ +/* $NetBSD: linux_syscalls.c,v 1.83 2021/09/20 02:20:31 thorpej Exp $ */ /* * System call names. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.71 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.72 2021/09/20 02:20:02 thorpej Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.82 2021/09/20 00:09:34 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.83 2021/09/20 02:20:31 thorpej Exp $"); #if defined(_KERNEL_OPT) #include <sys/param.h> @@ -360,8 +360,8 @@ const char *const linux_syscallnames[] = /* 327 */ "dup3", /* 328 */ "pipe2", /* 329 */ "#329 (unimplemented inotify_init1)", - /* 330 */ "#330 (unimplemented preadv)", - /* 331 */ "#331 (unimplemented pwritev)", + /* 330 */ "preadv", + /* 331 */ "pwritev", /* 332 */ "#332 (unimplemented rt_tgsigqueueinfo)", /* 333 */ "#333 (unimplemented perf_event_open)", /* 334 */ "accept4", @@ -877,8 +877,8 @@ const char *const altlinux_syscallnames[ /* 327 */ NULL, /* dup3 */ /* 328 */ NULL, /* pipe2 */ /* 329 */ NULL, /* unimplemented inotify_init1 */ - /* 330 */ NULL, /* unimplemented preadv */ - /* 331 */ NULL, /* unimplemented pwritev */ + /* 330 */ NULL, /* preadv */ + /* 331 */ NULL, /* pwritev */ /* 332 */ NULL, /* unimplemented rt_tgsigqueueinfo */ /* 333 */ NULL, /* unimplemented perf_event_open */ /* 334 */ NULL, /* accept4 */ Index: src/sys/compat/linux/arch/mips/linux_sysent.c diff -u src/sys/compat/linux/arch/mips/linux_sysent.c:1.82 src/sys/compat/linux/arch/mips/linux_sysent.c:1.83 --- src/sys/compat/linux/arch/mips/linux_sysent.c:1.82 Mon Sep 20 00:09:34 2021 +++ src/sys/compat/linux/arch/mips/linux_sysent.c Mon Sep 20 02:20:31 2021 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_sysent.c,v 1.82 2021/09/20 00:09:34 thorpej Exp $ */ +/* $NetBSD: linux_sysent.c,v 1.83 2021/09/20 02:20:31 thorpej Exp $ */ /* * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.71 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.72 2021/09/20 02:20:02 thorpej Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.82 2021/09/20 00:09:34 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.83 2021/09/20 02:20:31 thorpej Exp $"); #include <sys/param.h> #include <sys/poll.h> @@ -1407,11 +1407,15 @@ struct sysent linux_sysent[] = { .sy_call = linux_sys_nosys, }, /* 329 = filler */ { - .sy_call = linux_sys_nosys, - }, /* 330 = filler */ + ns(struct linux_sys_preadv_args), + .sy_flags = SYCALL_ARG_PTR, + .sy_call = (sy_call_t *)linux_sys_preadv + }, /* 330 = preadv */ { - .sy_call = linux_sys_nosys, - }, /* 331 = filler */ + ns(struct linux_sys_pwritev_args), + .sy_flags = SYCALL_ARG_PTR, + .sy_call = (sy_call_t *)linux_sys_pwritev + }, /* 331 = pwritev */ { .sy_call = linux_sys_nosys, }, /* 332 = filler */ Index: src/sys/compat/linux/arch/powerpc/linux_syscall.h diff -u src/sys/compat/linux/arch/powerpc/linux_syscall.h:1.89 src/sys/compat/linux/arch/powerpc/linux_syscall.h:1.90 --- src/sys/compat/linux/arch/powerpc/linux_syscall.h:1.89 Mon Sep 20 00:09:34 2021 +++ src/sys/compat/linux/arch/powerpc/linux_syscall.h Mon Sep 20 02:20:31 2021 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscall.h,v 1.89 2021/09/20 00:09:34 thorpej Exp $ */ +/* $NetBSD: linux_syscall.h,v 1.90 2021/09/20 02:20:31 thorpej Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.77 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.78 2021/09/20 02:20:02 thorpej Exp */ #ifndef _LINUX_SYS_SYSCALL_H_ @@ -690,6 +690,12 @@ /* syscall: "pipe2" ret: "int" args: "int *" "int" */ #define LINUX_SYS_pipe2 317 +/* syscall: "preadv" ret: "int" args: "int" "const struct iovec *" "int" "unsigned long" "unsigned long" */ +#define LINUX_SYS_preadv 320 + +/* syscall: "pwritev" ret: "int" args: "int" "const struct iovcnt *" "int" "unsigned long" "unsigned long" */ +#define LINUX_SYS_pwritev 321 + /* syscall: "recvmmsg" ret: "int" args: "int" "struct linux_mmsghdr *" "unsigned int" "unsigned int" "struct timespec *" */ #define LINUX_SYS_recvmmsg 343 Index: src/sys/compat/linux/arch/powerpc/linux_sysent.c diff -u src/sys/compat/linux/arch/powerpc/linux_sysent.c:1.89 src/sys/compat/linux/arch/powerpc/linux_sysent.c:1.90 --- src/sys/compat/linux/arch/powerpc/linux_sysent.c:1.89 Mon Sep 20 00:09:34 2021 +++ src/sys/compat/linux/arch/powerpc/linux_sysent.c Mon Sep 20 02:20:31 2021 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_sysent.c,v 1.89 2021/09/20 00:09:34 thorpej Exp $ */ +/* $NetBSD: linux_sysent.c,v 1.90 2021/09/20 02:20:31 thorpej Exp $ */ /* * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.77 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.78 2021/09/20 02:20:02 thorpej Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.89 2021/09/20 00:09:34 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.90 2021/09/20 02:20:31 thorpej Exp $"); #include <sys/param.h> #include <sys/poll.h> @@ -1356,11 +1356,15 @@ struct sysent linux_sysent[] = { .sy_call = linux_sys_nosys, }, /* 319 = filler */ { - .sy_call = linux_sys_nosys, - }, /* 320 = filler */ + ns(struct linux_sys_preadv_args), + .sy_flags = SYCALL_ARG_PTR, + .sy_call = (sy_call_t *)linux_sys_preadv + }, /* 320 = preadv */ { - .sy_call = linux_sys_nosys, - }, /* 321 = filler */ + ns(struct linux_sys_pwritev_args), + .sy_flags = SYCALL_ARG_PTR, + .sy_call = (sy_call_t *)linux_sys_pwritev + }, /* 321 = pwritev */ { .sy_call = linux_sys_nosys, }, /* 322 = filler */ Index: src/sys/compat/linux/arch/powerpc/linux_syscallargs.h diff -u src/sys/compat/linux/arch/powerpc/linux_syscallargs.h:1.88 src/sys/compat/linux/arch/powerpc/linux_syscallargs.h:1.89 --- src/sys/compat/linux/arch/powerpc/linux_syscallargs.h:1.88 Mon Sep 20 00:09:34 2021 +++ src/sys/compat/linux/arch/powerpc/linux_syscallargs.h Mon Sep 20 02:20:31 2021 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscallargs.h,v 1.88 2021/09/20 00:09:34 thorpej Exp $ */ +/* $NetBSD: linux_syscallargs.h,v 1.89 2021/09/20 02:20:31 thorpej Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.77 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.78 2021/09/20 02:20:02 thorpej Exp */ #ifndef _LINUX_SYS_SYSCALLARGS_H_ @@ -1082,6 +1082,24 @@ struct linux_sys_pipe2_args { }; check_syscall_args(linux_sys_pipe2) +struct linux_sys_preadv_args { + syscallarg(int) fd; + syscallarg(const struct iovec *) iovp; + syscallarg(int) iovcnt; + syscallarg(unsigned long) off_lo; + syscallarg(unsigned long) off_hi; +}; +check_syscall_args(linux_sys_preadv) + +struct linux_sys_pwritev_args { + syscallarg(int) fd; + syscallarg(const struct iovcnt *) iovp; + syscallarg(int) iovcnt; + syscallarg(unsigned long) off_lo; + syscallarg(unsigned long) off_hi; +}; +check_syscall_args(linux_sys_pwritev) + struct linux_sys_recvmmsg_args { syscallarg(int) s; syscallarg(struct linux_mmsghdr *) msgvec; @@ -1557,6 +1575,10 @@ int linux_sys_dup3(struct lwp *, const s int linux_sys_pipe2(struct lwp *, const struct linux_sys_pipe2_args *, register_t *); +int linux_sys_preadv(struct lwp *, const struct linux_sys_preadv_args *, register_t *); + +int linux_sys_pwritev(struct lwp *, const struct linux_sys_pwritev_args *, register_t *); + int linux_sys_recvmmsg(struct lwp *, const struct linux_sys_recvmmsg_args *, register_t *); int linux_sys_accept4(struct lwp *, const struct linux_sys_accept4_args *, register_t *); Index: src/sys/compat/linux/arch/powerpc/linux_syscalls.c diff -u src/sys/compat/linux/arch/powerpc/linux_syscalls.c:1.88 src/sys/compat/linux/arch/powerpc/linux_syscalls.c:1.89 --- src/sys/compat/linux/arch/powerpc/linux_syscalls.c:1.88 Mon Sep 20 00:09:34 2021 +++ src/sys/compat/linux/arch/powerpc/linux_syscalls.c Mon Sep 20 02:20:31 2021 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_syscalls.c,v 1.88 2021/09/20 00:09:34 thorpej Exp $ */ +/* $NetBSD: linux_syscalls.c,v 1.89 2021/09/20 02:20:31 thorpej Exp $ */ /* * System call names. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.77 2021/09/20 00:09:01 thorpej Exp + * created from NetBSD: syscalls.master,v 1.78 2021/09/20 02:20:02 thorpej Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.88 2021/09/20 00:09:34 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.89 2021/09/20 02:20:31 thorpej Exp $"); #if defined(_KERNEL_OPT) #include <sys/param.h> @@ -353,8 +353,8 @@ const char *const linux_syscallnames[] = /* 317 */ "pipe2", /* 318 */ "#318 (unimplemented inotify_init1)", /* 319 */ "#319 (unimplemented perf_event_open)", - /* 320 */ "#320 (unimplemented preadv)", - /* 321 */ "#321 (unimplemented pwritev)", + /* 320 */ "preadv", + /* 321 */ "pwritev", /* 322 */ "#322 (unimplemented rt_tgsigqueueinfo)", /* 323 */ "#323 (unimplemented fanotify_init)", /* 324 */ "#324 (unimplemented fanotify_mark)", @@ -875,8 +875,8 @@ const char *const altlinux_syscallnames[ /* 317 */ NULL, /* pipe2 */ /* 318 */ NULL, /* unimplemented inotify_init1 */ /* 319 */ NULL, /* unimplemented perf_event_open */ - /* 320 */ NULL, /* unimplemented preadv */ - /* 321 */ NULL, /* unimplemented pwritev */ + /* 320 */ NULL, /* preadv */ + /* 321 */ NULL, /* pwritev */ /* 322 */ NULL, /* unimplemented rt_tgsigqueueinfo */ /* 323 */ NULL, /* unimplemented fanotify_init */ /* 324 */ NULL, /* unimplemented fanotify_mark */ Index: src/sys/compat/linux32/arch/amd64/linux32_syscall.h diff -u src/sys/compat/linux32/arch/amd64/linux32_syscall.h:1.84 src/sys/compat/linux32/arch/amd64/linux32_syscall.h:1.85 --- src/sys/compat/linux32/arch/amd64/linux32_syscall.h:1.84 Mon Sep 20 00:09:34 2021 +++ src/sys/compat/linux32/arch/amd64/linux32_syscall.h Mon Sep 20 02:20:31 2021 @@ -1,10 +1,10 @@ -/* $NetBSD: linux32_syscall.h,v 1.84 2021/09/20 00:09:34 thorpej Exp $ */ +/* $NetBSD: linux32_syscall.h,v 1.85 2021/09/20 02:20:31 thorpej Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.74 2021/09/20 00:09:02 thorpej Exp + * created from NetBSD: syscalls.master,v 1.75 2021/09/20 02:20:03 thorpej Exp */ #ifndef _LINUX32_SYS_SYSCALL_H_ @@ -741,6 +741,12 @@ /* syscall: "pipe2" ret: "int" args: "netbsd32_intp" "int" */ #define LINUX32_SYS_pipe2 331 +/* syscall: "preadv" ret: "int" args: "int" "const netbsd32_iovecp_t" "int" "netbsd32_u_long" "netbsd32_u_long" */ +#define LINUX32_SYS_preadv 333 + +/* syscall: "pwritev" ret: "int" args: "int" "const netbsd32_iovecp_t" "int" "netbsd32_u_long" "netbsd32_u_long" */ +#define LINUX32_SYS_pwritev 334 + #define LINUX32_SYS_MAXSYSCALL 351 #define LINUX32_SYS_NSYSENT 512 #endif /* _LINUX32_SYS_SYSCALL_H_ */ Index: src/sys/compat/linux32/arch/amd64/linux32_syscallargs.h diff -u src/sys/compat/linux32/arch/amd64/linux32_syscallargs.h:1.84 src/sys/compat/linux32/arch/amd64/linux32_syscallargs.h:1.85 --- src/sys/compat/linux32/arch/amd64/linux32_syscallargs.h:1.84 Mon Sep 20 00:09:34 2021 +++ src/sys/compat/linux32/arch/amd64/linux32_syscallargs.h Mon Sep 20 02:20:31 2021 @@ -1,10 +1,10 @@ -/* $NetBSD: linux32_syscallargs.h,v 1.84 2021/09/20 00:09:34 thorpej Exp $ */ +/* $NetBSD: linux32_syscallargs.h,v 1.85 2021/09/20 02:20:31 thorpej Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.74 2021/09/20 00:09:02 thorpej Exp + * created from NetBSD: syscalls.master,v 1.75 2021/09/20 02:20:03 thorpej Exp */ #ifndef _LINUX32_SYS_SYSCALLARGS_H_ @@ -1077,6 +1077,24 @@ struct linux32_sys_pipe2_args { }; check_syscall_args(linux32_sys_pipe2) +struct linux32_sys_preadv_args { + syscallarg(int) fd; + syscallarg(const netbsd32_iovecp_t) iovp; + syscallarg(int) iovcnt; + syscallarg(netbsd32_u_long) off_lo; + syscallarg(netbsd32_u_long) off_hi; +}; +check_syscall_args(linux32_sys_preadv) + +struct linux32_sys_pwritev_args { + syscallarg(int) fd; + syscallarg(const netbsd32_iovecp_t) iovp; + syscallarg(int) iovcnt; + syscallarg(netbsd32_u_long) off_lo; + syscallarg(netbsd32_u_long) off_hi; +}; +check_syscall_args(linux32_sys_pwritev) + /* * System call prototypes. */ @@ -1545,4 +1563,8 @@ int linux32_sys_dup3(struct lwp *, const int linux32_sys_pipe2(struct lwp *, const struct linux32_sys_pipe2_args *, register_t *); +int linux32_sys_preadv(struct lwp *, const struct linux32_sys_preadv_args *, register_t *); + +int linux32_sys_pwritev(struct lwp *, const struct linux32_sys_pwritev_args *, register_t *); + #endif /* _LINUX32_SYS_SYSCALLARGS_H_ */ Index: src/sys/compat/linux32/arch/amd64/linux32_syscalls.c diff -u src/sys/compat/linux32/arch/amd64/linux32_syscalls.c:1.84 src/sys/compat/linux32/arch/amd64/linux32_syscalls.c:1.85 --- src/sys/compat/linux32/arch/amd64/linux32_syscalls.c:1.84 Mon Sep 20 00:09:34 2021 +++ src/sys/compat/linux32/arch/amd64/linux32_syscalls.c Mon Sep 20 02:20:31 2021 @@ -1,14 +1,14 @@ -/* $NetBSD: linux32_syscalls.c,v 1.84 2021/09/20 00:09:34 thorpej Exp $ */ +/* $NetBSD: linux32_syscalls.c,v 1.85 2021/09/20 02:20:31 thorpej Exp $ */ /* * System call names. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.74 2021/09/20 00:09:02 thorpej Exp + * created from NetBSD: syscalls.master,v 1.75 2021/09/20 02:20:03 thorpej Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux32_syscalls.c,v 1.84 2021/09/20 00:09:34 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux32_syscalls.c,v 1.85 2021/09/20 02:20:31 thorpej Exp $"); #if defined(_KERNEL_OPT) #include <sys/param.h> @@ -372,8 +372,8 @@ const char *const linux32_syscallnames[] /* 330 */ "dup3", /* 331 */ "pipe2", /* 332 */ "#332 (unimplemented inotify_init1)", - /* 333 */ "#333 (unimplemented preadv)", - /* 334 */ "#334 (unimplemented pwritev)", + /* 333 */ "preadv", + /* 334 */ "pwritev", /* 335 */ "#335 (unimplemented rt_tgsigqueueinfo)", /* 336 */ "#336 (unimplemented perf_counter_open)", /* 337 */ "#337 (unimplemented recvmmsg)", @@ -891,8 +891,8 @@ const char *const altlinux32_syscallname /* 330 */ NULL, /* dup3 */ /* 331 */ NULL, /* pipe2 */ /* 332 */ NULL, /* unimplemented inotify_init1 */ - /* 333 */ NULL, /* unimplemented preadv */ - /* 334 */ NULL, /* unimplemented pwritev */ + /* 333 */ NULL, /* preadv */ + /* 334 */ NULL, /* pwritev */ /* 335 */ NULL, /* unimplemented rt_tgsigqueueinfo */ /* 336 */ NULL, /* unimplemented perf_counter_open */ /* 337 */ NULL, /* unimplemented recvmmsg */ Index: src/sys/compat/linux32/arch/amd64/linux32_sysent.c diff -u src/sys/compat/linux32/arch/amd64/linux32_sysent.c:1.84 src/sys/compat/linux32/arch/amd64/linux32_sysent.c:1.85 --- src/sys/compat/linux32/arch/amd64/linux32_sysent.c:1.84 Mon Sep 20 00:09:34 2021 +++ src/sys/compat/linux32/arch/amd64/linux32_sysent.c Mon Sep 20 02:20:31 2021 @@ -1,14 +1,14 @@ -/* $NetBSD: linux32_sysent.c,v 1.84 2021/09/20 00:09:34 thorpej Exp $ */ +/* $NetBSD: linux32_sysent.c,v 1.85 2021/09/20 02:20:31 thorpej Exp $ */ /* * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.74 2021/09/20 00:09:02 thorpej Exp + * created from NetBSD: syscalls.master,v 1.75 2021/09/20 02:20:03 thorpej Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux32_sysent.c,v 1.84 2021/09/20 00:09:34 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux32_sysent.c,v 1.85 2021/09/20 02:20:31 thorpej Exp $"); #include <sys/param.h> #include <sys/poll.h> @@ -1265,11 +1265,13 @@ struct sysent linux32_sysent[] = { .sy_call = linux_sys_nosys, }, /* 332 = filler */ { - .sy_call = linux_sys_nosys, - }, /* 333 = filler */ - { - .sy_call = linux_sys_nosys, - }, /* 334 = filler */ + ns(struct linux32_sys_preadv_args), + .sy_call = (sy_call_t *)linux32_sys_preadv + }, /* 333 = preadv */ + { + ns(struct linux32_sys_pwritev_args), + .sy_call = (sy_call_t *)linux32_sys_pwritev + }, /* 334 = pwritev */ { .sy_call = linux_sys_nosys, }, /* 335 = filler */ Index: src/sys/compat/linux32/arch/amd64/linux32_systrace_args.c diff -u src/sys/compat/linux32/arch/amd64/linux32_systrace_args.c:1.11 src/sys/compat/linux32/arch/amd64/linux32_systrace_args.c:1.12 --- src/sys/compat/linux32/arch/amd64/linux32_systrace_args.c:1.11 Mon Sep 20 00:09:34 2021 +++ src/sys/compat/linux32/arch/amd64/linux32_systrace_args.c Mon Sep 20 02:20:31 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: linux32_systrace_args.c,v 1.11 2021/09/20 00:09:34 thorpej Exp $ */ +/* $NetBSD: linux32_systrace_args.c,v 1.12 2021/09/20 02:20:31 thorpej Exp $ */ /* * System call argument to DTrace register array conversion. @@ -1956,6 +1956,28 @@ systrace_args(register_t sysnum, const v *n_args = 2; break; } + /* linux32_sys_preadv */ + case 333: { + const struct linux32_sys_preadv_args *p = params; + iarg[0] = SCARG(p, fd); /* int */ + uarg[1] = (intptr_t) SCARG(p, iovp).i32; /* const netbsd32_iovecp_t */ + iarg[2] = SCARG(p, iovcnt); /* int */ + iarg[3] = SCARG(p, off_lo); /* netbsd32_u_long */ + iarg[4] = SCARG(p, off_hi); /* netbsd32_u_long */ + *n_args = 5; + break; + } + /* linux32_sys_pwritev */ + case 334: { + const struct linux32_sys_pwritev_args *p = params; + iarg[0] = SCARG(p, fd); /* int */ + uarg[1] = (intptr_t) SCARG(p, iovp).i32; /* const netbsd32_iovecp_t */ + iarg[2] = SCARG(p, iovcnt); /* int */ + iarg[3] = SCARG(p, off_lo); /* netbsd32_u_long */ + iarg[4] = SCARG(p, off_hi); /* netbsd32_u_long */ + *n_args = 5; + break; + } default: *n_args = 0; break; @@ -5144,6 +5166,50 @@ systrace_entry_setargdesc(int sysnum, in break; }; break; + /* linux32_sys_preadv */ + case 333: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "const netbsd32_iovecp_t"; + break; + case 2: + p = "int"; + break; + case 3: + p = "netbsd32_u_long"; + break; + case 4: + p = "netbsd32_u_long"; + break; + default: + break; + }; + break; + /* linux32_sys_pwritev */ + case 334: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "const netbsd32_iovecp_t"; + break; + case 2: + p = "int"; + break; + case 3: + p = "netbsd32_u_long"; + break; + case 4: + p = "netbsd32_u_long"; + break; + default: + break; + }; + break; default: break; }; @@ -6289,6 +6355,16 @@ systrace_return_setargdesc(int sysnum, i if (ndx == 0 || ndx == 1) p = "int"; break; + /* linux32_sys_preadv */ + case 333: + if (ndx == 0 || ndx == 1) + p = "int"; + break; + /* linux32_sys_pwritev */ + case 334: + if (ndx == 0 || ndx == 1) + p = "int"; + break; default: break; };