Module Name: src Committed By: christos Date: Fri Aug 18 19:42:06 UTC 2023
Modified Files: src/sys/compat/linux/arch/aarch64: linux_syscall.h linux_syscallargs.h linux_syscalls.c linux_sysent.c linux_systrace_args.c 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/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 Log Message: regen To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/sys/compat/linux/arch/aarch64/linux_syscall.h \ src/sys/compat/linux/arch/aarch64/linux_syscallargs.h \ src/sys/compat/linux/arch/aarch64/linux_syscalls.c \ src/sys/compat/linux/arch/aarch64/linux_sysent.c \ src/sys/compat/linux/arch/aarch64/linux_systrace_args.c cvs rdiff -u -r1.117 -r1.118 src/sys/compat/linux/arch/alpha/linux_syscall.h \ src/sys/compat/linux/arch/alpha/linux_sysent.c cvs rdiff -u -r1.116 -r1.117 \ src/sys/compat/linux/arch/alpha/linux_syscallargs.h cvs rdiff -u -r1.118 -r1.119 src/sys/compat/linux/arch/alpha/linux_syscalls.c cvs rdiff -u -r1.79 -r1.80 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.23 -r1.24 \ src/sys/compat/linux/arch/amd64/linux_systrace_args.c cvs rdiff -u -r1.90 -r1.91 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.23 -r1.24 \ src/sys/compat/linux/arch/arm/linux_systrace_args.c cvs rdiff -u -r1.124 -r1.125 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.125 -r1.126 src/sys/compat/linux/arch/i386/linux_syscalls.c cvs rdiff -u -r1.19 -r1.20 \ src/sys/compat/linux/arch/i386/linux_systrace_args.c cvs rdiff -u -r1.88 -r1.89 src/sys/compat/linux/arch/mips/linux_syscall.h cvs rdiff -u -r1.87 -r1.88 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.94 -r1.95 src/sys/compat/linux/arch/powerpc/linux_syscall.h \ src/sys/compat/linux/arch/powerpc/linux_sysent.c cvs rdiff -u -r1.93 -r1.94 \ src/sys/compat/linux/arch/powerpc/linux_syscallargs.h \ src/sys/compat/linux/arch/powerpc/linux_syscalls.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/aarch64/linux_syscall.h diff -u src/sys/compat/linux/arch/aarch64/linux_syscall.h:1.8 src/sys/compat/linux/arch/aarch64/linux_syscall.h:1.9 --- src/sys/compat/linux/arch/aarch64/linux_syscall.h:1.8 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/aarch64/linux_syscall.h Fri Aug 18 15:42:05 2023 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscall.h,v 1.8 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_syscall.h,v 1.9 2023/08/18 19:42:05 christos Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.9 2023/07/29 15:04:28 christos Exp + * created from NetBSD: syscalls.master,v 1.10 2023/08/18 19:41:19 christos Exp */ #ifndef _LINUX_SYS_SYSCALL_H_ @@ -222,6 +222,9 @@ /* syscall: "exit_group" ret: "int" args: "int" */ #define LINUX_SYS_exit_group 94 +/* syscall: "waitid" ret: "int" args: "int" "id_t" "linux_siginfo_t *" "int" "struct rusage50 *" */ +#define LINUX_SYS_waitid 95 + /* syscall: "set_tid_address" ret: "int" args: "int *" */ #define LINUX_SYS_set_tid_address 96 Index: src/sys/compat/linux/arch/aarch64/linux_syscallargs.h diff -u src/sys/compat/linux/arch/aarch64/linux_syscallargs.h:1.8 src/sys/compat/linux/arch/aarch64/linux_syscallargs.h:1.9 --- src/sys/compat/linux/arch/aarch64/linux_syscallargs.h:1.8 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/aarch64/linux_syscallargs.h Fri Aug 18 15:42:05 2023 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscallargs.h,v 1.8 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_syscallargs.h,v 1.9 2023/08/18 19:42:05 christos Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.9 2023/07/29 15:04:28 christos Exp + * created from NetBSD: syscalls.master,v 1.10 2023/08/18 19:41:19 christos Exp */ #ifndef _LINUX_SYS_SYSCALLARGS_H_ @@ -427,6 +427,15 @@ struct linux_sys_exit_group_args { }; check_syscall_args(linux_sys_exit_group) +struct linux_sys_waitid_args { + syscallarg(int) idtype; + syscallarg(id_t) id; + syscallarg(linux_siginfo_t *) infop; + syscallarg(int) options; + syscallarg(struct rusage50 *) rusage; +}; +check_syscall_args(linux_sys_waitid) + struct linux_sys_set_tid_address_args { syscallarg(int *) tid; }; @@ -1179,6 +1188,8 @@ int linux_sys_exit(struct lwp *, const s int linux_sys_exit_group(struct lwp *, const struct linux_sys_exit_group_args *, register_t *); +int linux_sys_waitid(struct lwp *, const struct linux_sys_waitid_args *, register_t *); + int linux_sys_set_tid_address(struct lwp *, const struct linux_sys_set_tid_address_args *, register_t *); int linux_sys_futex(struct lwp *, const struct linux_sys_futex_args *, register_t *); Index: src/sys/compat/linux/arch/aarch64/linux_syscalls.c diff -u src/sys/compat/linux/arch/aarch64/linux_syscalls.c:1.8 src/sys/compat/linux/arch/aarch64/linux_syscalls.c:1.9 --- src/sys/compat/linux/arch/aarch64/linux_syscalls.c:1.8 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/aarch64/linux_syscalls.c Fri Aug 18 15:42:05 2023 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_syscalls.c,v 1.8 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_syscalls.c,v 1.9 2023/08/18 19:42:05 christos Exp $ */ /* * System call names. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.9 2023/07/29 15:04:28 christos Exp + * created from NetBSD: syscalls.master,v 1.10 2023/08/18 19:41:19 christos Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.8 2023/07/29 15:05:45 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.9 2023/08/18 19:42:05 christos Exp $"); #if defined(_KERNEL_OPT) #if defined(_KERNEL_OPT) @@ -135,7 +135,7 @@ const char *const linux_syscallnames[] = /* 92 */ "personality", /* 93 */ "exit", /* 94 */ "exit_group", - /* 95 */ "#95 (unimplemented waitid)", + /* 95 */ "waitid", /* 96 */ "set_tid_address", /* 97 */ "#97 (unimplemented unshare)", /* 98 */ "futex", @@ -673,7 +673,7 @@ const char *const altlinux_syscallnames[ /* 92 */ NULL, /* personality */ /* 93 */ NULL, /* exit */ /* 94 */ NULL, /* exit_group */ - /* 95 */ NULL, /* unimplemented waitid */ + /* 95 */ NULL, /* waitid */ /* 96 */ NULL, /* set_tid_address */ /* 97 */ NULL, /* unimplemented unshare */ /* 98 */ NULL, /* futex */ Index: src/sys/compat/linux/arch/aarch64/linux_sysent.c diff -u src/sys/compat/linux/arch/aarch64/linux_sysent.c:1.8 src/sys/compat/linux/arch/aarch64/linux_sysent.c:1.9 --- src/sys/compat/linux/arch/aarch64/linux_sysent.c:1.8 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/aarch64/linux_sysent.c Fri Aug 18 15:42:05 2023 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_sysent.c,v 1.8 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_sysent.c,v 1.9 2023/08/18 19:42:05 christos Exp $ */ /* * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.9 2023/07/29 15:04:28 christos Exp + * created from NetBSD: syscalls.master,v 1.10 2023/08/18 19:41:19 christos Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.8 2023/07/29 15:05:45 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.9 2023/08/18 19:42:05 christos Exp $"); #if defined(_KERNEL_OPT) #include "opt_sysv.h" @@ -448,8 +448,10 @@ struct sysent linux_sysent[] = { .sy_call = (sy_call_t *)linux_sys_exit_group }, /* 94 = exit_group */ { - .sy_call = linux_sys_nosys, - }, /* 95 = filler */ + ns(struct linux_sys_waitid_args), + .sy_flags = SYCALL_ARG_PTR, + .sy_call = (sy_call_t *)linux_sys_waitid + }, /* 95 = waitid */ { ns(struct linux_sys_set_tid_address_args), .sy_flags = SYCALL_ARG_PTR, Index: src/sys/compat/linux/arch/aarch64/linux_systrace_args.c diff -u src/sys/compat/linux/arch/aarch64/linux_systrace_args.c:1.8 src/sys/compat/linux/arch/aarch64/linux_systrace_args.c:1.9 --- src/sys/compat/linux/arch/aarch64/linux_systrace_args.c:1.8 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/aarch64/linux_systrace_args.c Fri Aug 18 15:42:05 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_systrace_args.c,v 1.8 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_systrace_args.c,v 1.9 2023/08/18 19:42:05 christos Exp $ */ /* * System call argument to DTrace register array conversion. @@ -633,6 +633,17 @@ systrace_args(register_t sysnum, const v *n_args = 1; break; } + /* linux_sys_waitid */ + case 95: { + const struct linux_sys_waitid_args *p = params; + iarg[0] = SCARG(p, idtype); /* int */ + iarg[1] = SCARG(p, id); /* id_t */ + uarg[2] = (intptr_t) SCARG(p, infop); /* linux_siginfo_t * */ + iarg[3] = SCARG(p, options); /* int */ + uarg[4] = (intptr_t) SCARG(p, rusage); /* struct rusage50 * */ + *n_args = 5; + break; + } /* linux_sys_set_tid_address */ case 96: { const struct linux_sys_set_tid_address_args *p = params; @@ -2813,6 +2824,28 @@ systrace_entry_setargdesc(int sysnum, in break; }; break; + /* linux_sys_waitid */ + case 95: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "id_t"; + break; + case 2: + p = "linux_siginfo_t *"; + break; + case 3: + p = "int"; + break; + case 4: + p = "struct rusage50 *"; + break; + default: + break; + }; + break; /* linux_sys_set_tid_address */ case 96: switch(ndx) { @@ -4967,6 +5000,11 @@ systrace_return_setargdesc(int sysnum, i if (ndx == 0 || ndx == 1) p = "int"; break; + /* linux_sys_waitid */ + case 95: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_sys_set_tid_address */ case 96: if (ndx == 0 || ndx == 1) Index: src/sys/compat/linux/arch/alpha/linux_syscall.h diff -u src/sys/compat/linux/arch/alpha/linux_syscall.h:1.117 src/sys/compat/linux/arch/alpha/linux_syscall.h:1.118 --- src/sys/compat/linux/arch/alpha/linux_syscall.h:1.117 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/alpha/linux_syscall.h Fri Aug 18 15:42:05 2023 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscall.h,v 1.117 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_syscall.h,v 1.118 2023/08/18 19:42:05 christos Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.104 2023/07/29 15:04:28 christos Exp + * created from NetBSD: syscalls.master,v 1.105 2023/08/18 19:41:19 christos Exp */ #ifndef _LINUX_SYS_SYSCALL_H_ @@ -675,6 +675,9 @@ /* syscall: "fstat64" ret: "int" args: "int" "struct linux_stat64 *" */ #define LINUX_SYS_fstat64 427 +/* syscall: "waitid" ret: "int" args: "int" "id_t" "linux_siginfo_t *" "int" "struct rusage50 *" */ +#define LINUX_SYS_waitid 438 + /* syscall: "openat" ret: "int" args: "int" "const char *" "int" "..." */ #define LINUX_SYS_openat 450 Index: src/sys/compat/linux/arch/alpha/linux_sysent.c diff -u src/sys/compat/linux/arch/alpha/linux_sysent.c:1.117 src/sys/compat/linux/arch/alpha/linux_sysent.c:1.118 --- src/sys/compat/linux/arch/alpha/linux_sysent.c:1.117 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/alpha/linux_sysent.c Fri Aug 18 15:42:05 2023 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_sysent.c,v 1.117 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_sysent.c,v 1.118 2023/08/18 19:42:05 christos Exp $ */ /* * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.104 2023/07/29 15:04:28 christos Exp + * created from NetBSD: syscalls.master,v 1.105 2023/08/18 19:41:19 christos Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.117 2023/07/29 15:05:45 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.118 2023/08/18 19:42:05 christos Exp $"); #if defined(_KERNEL_OPT) #include "opt_sysv.h" @@ -1757,8 +1757,10 @@ struct sysent linux_sysent[] = { .sy_call = linux_sys_nosys, }, /* 437 = filler */ { - .sy_call = linux_sys_nosys, - }, /* 438 = filler */ + ns(struct linux_sys_waitid_args), + .sy_flags = SYCALL_ARG_PTR, + .sy_call = (sy_call_t *)linux_sys_waitid + }, /* 438 = waitid */ { .sy_call = linux_sys_nosys, }, /* 439 = filler */ Index: src/sys/compat/linux/arch/alpha/linux_syscallargs.h diff -u src/sys/compat/linux/arch/alpha/linux_syscallargs.h:1.116 src/sys/compat/linux/arch/alpha/linux_syscallargs.h:1.117 --- src/sys/compat/linux/arch/alpha/linux_syscallargs.h:1.116 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/alpha/linux_syscallargs.h Fri Aug 18 15:42:05 2023 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscallargs.h,v 1.116 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_syscallargs.h,v 1.117 2023/08/18 19:42:05 christos Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.104 2023/07/29 15:04:28 christos Exp + * created from NetBSD: syscalls.master,v 1.105 2023/08/18 19:41:19 christos Exp */ #ifndef _LINUX_SYS_SYSCALLARGS_H_ @@ -1060,6 +1060,15 @@ struct linux_sys_fstat64_args { }; check_syscall_args(linux_sys_fstat64) +struct linux_sys_waitid_args { + syscallarg(int) idtype; + syscallarg(id_t) id; + syscallarg(linux_siginfo_t *) infop; + syscallarg(int) options; + syscallarg(struct rusage50 *) rusage; +}; +check_syscall_args(linux_sys_waitid) + struct linux_sys_openat_args { syscallarg(int) fd; syscallarg(const char *) path; @@ -1753,6 +1762,8 @@ int linux_sys_lstat64(struct lwp *, cons int linux_sys_fstat64(struct lwp *, const struct linux_sys_fstat64_args *, register_t *); +int linux_sys_waitid(struct lwp *, const struct linux_sys_waitid_args *, register_t *); + int linux_sys_openat(struct lwp *, const struct linux_sys_openat_args *, register_t *); int sys_mkdirat(struct lwp *, const struct sys_mkdirat_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.118 src/sys/compat/linux/arch/alpha/linux_syscalls.c:1.119 --- src/sys/compat/linux/arch/alpha/linux_syscalls.c:1.118 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/alpha/linux_syscalls.c Fri Aug 18 15:42:05 2023 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_syscalls.c,v 1.118 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_syscalls.c,v 1.119 2023/08/18 19:42:05 christos Exp $ */ /* * System call names. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.104 2023/07/29 15:04:28 christos Exp + * created from NetBSD: syscalls.master,v 1.105 2023/08/18 19:41:19 christos Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.118 2023/07/29 15:05:45 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.119 2023/08/18 19:42:05 christos Exp $"); #if defined(_KERNEL_OPT) #if defined(_KERNEL_OPT) @@ -497,7 +497,7 @@ const char *const linux_syscallnames[] = /* 435 */ "#435 (unimplemented mq_timedreceive)", /* 436 */ "#436 (unimplemented mq_notify)", /* 437 */ "#437 (unimplemented mq_getsetattr)", - /* 438 */ "#438 (unimplemented waitid)", + /* 438 */ "waitid", /* 439 */ "#439 (unimplemented add_key)", /* 440 */ "#440 (unimplemented request_key)", /* 441 */ "#441 (unimplemented keyctl)", @@ -1550,7 +1550,7 @@ const char *const altlinux_syscallnames[ /* 435 */ NULL, /* unimplemented mq_timedreceive */ /* 436 */ NULL, /* unimplemented mq_notify */ /* 437 */ NULL, /* unimplemented mq_getsetattr */ - /* 438 */ NULL, /* unimplemented waitid */ + /* 438 */ NULL, /* waitid */ /* 439 */ NULL, /* unimplemented add_key */ /* 440 */ NULL, /* unimplemented request_key */ /* 441 */ NULL, /* unimplemented keyctl */ Index: src/sys/compat/linux/arch/amd64/linux_syscall.h diff -u src/sys/compat/linux/arch/amd64/linux_syscall.h:1.79 src/sys/compat/linux/arch/amd64/linux_syscall.h:1.80 --- src/sys/compat/linux/arch/amd64/linux_syscall.h:1.79 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/amd64/linux_syscall.h Fri Aug 18 15:42:06 2023 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscall.h,v 1.79 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_syscall.h,v 1.80 2023/08/18 19:42:06 christos Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.70 2023/07/29 15:04:28 christos Exp + * created from NetBSD: syscalls.master,v 1.71 2023/08/18 19:41:19 christos Exp */ #ifndef _LINUX_SYS_SYSCALL_H_ @@ -621,6 +621,9 @@ /* syscall: "utimes" ret: "int" args: "const char *" "const struct timeval50 *" */ #define LINUX_SYS_utimes 235 +/* syscall: "waitid" ret: "int" args: "int" "id_t" "linux_siginfo_t *" "int" "struct rusage50 *" */ +#define LINUX_SYS_waitid 247 + /* syscall: "openat" ret: "int" args: "int" "const char *" "int" "..." */ #define LINUX_SYS_openat 257 Index: src/sys/compat/linux/arch/amd64/linux_syscallargs.h diff -u src/sys/compat/linux/arch/amd64/linux_syscallargs.h:1.79 src/sys/compat/linux/arch/amd64/linux_syscallargs.h:1.80 --- src/sys/compat/linux/arch/amd64/linux_syscallargs.h:1.79 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/amd64/linux_syscallargs.h Fri Aug 18 15:42:06 2023 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscallargs.h,v 1.79 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_syscallargs.h,v 1.80 2023/08/18 19:42:06 christos Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.70 2023/07/29 15:04:28 christos Exp + * created from NetBSD: syscalls.master,v 1.71 2023/08/18 19:41:19 christos Exp */ #ifndef _LINUX_SYS_SYSCALLARGS_H_ @@ -950,6 +950,15 @@ check_syscall_args(linux_sys_tgkill) struct compat_50_sys_utimes_args; +struct linux_sys_waitid_args { + syscallarg(int) idtype; + syscallarg(id_t) id; + syscallarg(linux_siginfo_t *) infop; + syscallarg(int) options; + syscallarg(struct rusage50 *) rusage; +}; +check_syscall_args(linux_sys_waitid) + struct linux_sys_openat_args { syscallarg(int) fd; syscallarg(const char *) path; @@ -1616,6 +1625,8 @@ int linux_sys_tgkill(struct lwp *, const int compat_50_sys_utimes(struct lwp *, const struct compat_50_sys_utimes_args *, register_t *); +int linux_sys_waitid(struct lwp *, const struct linux_sys_waitid_args *, register_t *); + int linux_sys_openat(struct lwp *, const struct linux_sys_openat_args *, register_t *); int sys_mkdirat(struct lwp *, const struct sys_mkdirat_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.79 src/sys/compat/linux/arch/amd64/linux_syscalls.c:1.80 --- src/sys/compat/linux/arch/amd64/linux_syscalls.c:1.79 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/amd64/linux_syscalls.c Fri Aug 18 15:42:06 2023 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_syscalls.c,v 1.79 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_syscalls.c,v 1.80 2023/08/18 19:42:06 christos Exp $ */ /* * System call names. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.70 2023/07/29 15:04:28 christos Exp + * created from NetBSD: syscalls.master,v 1.71 2023/08/18 19:41:19 christos Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.79 2023/07/29 15:05:45 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.80 2023/08/18 19:42:06 christos Exp $"); #if defined(_KERNEL_OPT) #if defined(_KERNEL_OPT) @@ -314,7 +314,7 @@ const char *const linux_syscallnames[] = /* 244 */ "#244 (unimplemented mq_notify)", /* 245 */ "#245 (unimplemented mq_getsetattr)", /* 246 */ "#246 (unimplemented kexec_load)", - /* 247 */ "#247 (unimplemented waitid)", + /* 247 */ "waitid", /* 248 */ "#248 (unimplemented add_key)", /* 249 */ "#249 (unimplemented request_key)", /* 250 */ "#250 (unimplemented keyctl)", @@ -858,7 +858,7 @@ const char *const altlinux_syscallnames[ /* 244 */ NULL, /* unimplemented mq_notify */ /* 245 */ NULL, /* unimplemented mq_getsetattr */ /* 246 */ NULL, /* unimplemented kexec_load */ - /* 247 */ NULL, /* unimplemented waitid */ + /* 247 */ NULL, /* waitid */ /* 248 */ NULL, /* unimplemented add_key */ /* 249 */ NULL, /* unimplemented request_key */ /* 250 */ NULL, /* unimplemented keyctl */ Index: src/sys/compat/linux/arch/amd64/linux_sysent.c diff -u src/sys/compat/linux/arch/amd64/linux_sysent.c:1.79 src/sys/compat/linux/arch/amd64/linux_sysent.c:1.80 --- src/sys/compat/linux/arch/amd64/linux_sysent.c:1.79 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/amd64/linux_sysent.c Fri Aug 18 15:42:06 2023 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_sysent.c,v 1.79 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_sysent.c,v 1.80 2023/08/18 19:42:06 christos Exp $ */ /* * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.70 2023/07/29 15:04:28 christos Exp + * created from NetBSD: syscalls.master,v 1.71 2023/08/18 19:41:19 christos Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.79 2023/07/29 15:05:45 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.80 2023/08/18 19:42:06 christos Exp $"); #if defined(_KERNEL_OPT) #include "opt_sysv.h" @@ -1147,8 +1147,10 @@ struct sysent linux_sysent[] = { .sy_call = linux_sys_nosys, }, /* 246 = filler */ { - .sy_call = linux_sys_nosys, - }, /* 247 = filler */ + ns(struct linux_sys_waitid_args), + .sy_flags = SYCALL_ARG_PTR, + .sy_call = (sy_call_t *)linux_sys_waitid + }, /* 247 = waitid */ { .sy_call = linux_sys_nosys, }, /* 248 = 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.23 src/sys/compat/linux/arch/amd64/linux_systrace_args.c:1.24 --- src/sys/compat/linux/arch/amd64/linux_systrace_args.c:1.23 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/amd64/linux_systrace_args.c Fri Aug 18 15:42:06 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_systrace_args.c,v 1.23 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_systrace_args.c,v 1.24 2023/08/18 19:42:06 christos Exp $ */ /* * System call argument to DTrace register array conversion. @@ -1654,6 +1654,17 @@ systrace_args(register_t sysnum, const v *n_args = 2; break; } + /* linux_sys_waitid */ + case 247: { + const struct linux_sys_waitid_args *p = params; + iarg[0] = SCARG(p, idtype); /* int */ + iarg[1] = SCARG(p, id); /* id_t */ + uarg[2] = (intptr_t) SCARG(p, infop); /* linux_siginfo_t * */ + iarg[3] = SCARG(p, options); /* int */ + uarg[4] = (intptr_t) SCARG(p, rusage); /* struct rusage50 * */ + *n_args = 5; + break; + } /* linux_sys_openat */ case 257: { const struct linux_sys_openat_args *p = params; @@ -4734,6 +4745,28 @@ systrace_entry_setargdesc(int sysnum, in break; }; break; + /* linux_sys_waitid */ + case 247: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "id_t"; + break; + case 2: + p = "linux_siginfo_t *"; + break; + case 3: + p = "int"; + break; + case 4: + p = "struct rusage50 *"; + break; + default: + break; + }; + break; /* linux_sys_openat */ case 257: switch(ndx) { @@ -6376,6 +6409,11 @@ systrace_return_setargdesc(int sysnum, i if (ndx == 0 || ndx == 1) p = "int"; break; + /* linux_sys_waitid */ + case 247: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_sys_openat */ case 257: 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.90 src/sys/compat/linux/arch/arm/linux_syscall.h:1.91 --- src/sys/compat/linux/arch/arm/linux_syscall.h:1.90 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/arm/linux_syscall.h Fri Aug 18 15:42:06 2023 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscall.h,v 1.90 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_syscall.h,v 1.91 2023/08/18 19:42:06 christos Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.77 2023/07/29 15:04:28 christos Exp + * created from NetBSD: syscalls.master,v 1.78 2023/08/18 19:41:19 christos Exp */ #ifndef _LINUX_SYS_SYSCALL_H_ @@ -679,6 +679,9 @@ /* syscall: "fadvise64_64" ret: "int" args: "int" "off_t" "off_t" "int" */ #define LINUX_SYS_fadvise64_64 270 +/* syscall: "waitid" ret: "int" args: "int" "id_t" "linux_siginfo_t *" "int" "struct rusage50 *" */ +#define LINUX_SYS_waitid 280 + /* syscall: "openat" ret: "int" args: "int" "const char *" "int" "..." */ #define LINUX_SYS_openat 322 Index: src/sys/compat/linux/arch/arm/linux_syscallargs.h diff -u src/sys/compat/linux/arch/arm/linux_syscallargs.h:1.90 src/sys/compat/linux/arch/arm/linux_syscallargs.h:1.91 --- src/sys/compat/linux/arch/arm/linux_syscallargs.h:1.90 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/arm/linux_syscallargs.h Fri Aug 18 15:42:06 2023 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscallargs.h,v 1.90 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_syscallargs.h,v 1.91 2023/08/18 19:42:06 christos Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.77 2023/07/29 15:04:28 christos Exp + * created from NetBSD: syscalls.master,v 1.78 2023/08/18 19:41:19 christos Exp */ #ifndef _LINUX_SYS_SYSCALLARGS_H_ @@ -1024,6 +1024,15 @@ struct linux_sys_fadvise64_64_args { }; check_syscall_args(linux_sys_fadvise64_64) +struct linux_sys_waitid_args { + syscallarg(int) idtype; + syscallarg(id_t) id; + syscallarg(linux_siginfo_t *) infop; + syscallarg(int) options; + syscallarg(struct rusage50 *) rusage; +}; +check_syscall_args(linux_sys_waitid) + struct linux_sys_openat_args { syscallarg(int) fd; syscallarg(const char *) path; @@ -1705,6 +1714,8 @@ int compat_50_sys_utimes(struct lwp *, c int linux_sys_fadvise64_64(struct lwp *, const struct linux_sys_fadvise64_64_args *, register_t *); +int linux_sys_waitid(struct lwp *, const struct linux_sys_waitid_args *, register_t *); + int linux_sys_openat(struct lwp *, const struct linux_sys_openat_args *, register_t *); int sys_mkdirat(struct lwp *, const struct sys_mkdirat_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.90 src/sys/compat/linux/arch/arm/linux_syscalls.c:1.91 --- src/sys/compat/linux/arch/arm/linux_syscalls.c:1.90 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/arm/linux_syscalls.c Fri Aug 18 15:42:06 2023 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_syscalls.c,v 1.90 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_syscalls.c,v 1.91 2023/08/18 19:42:06 christos Exp $ */ /* * System call names. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.77 2023/07/29 15:04:28 christos Exp + * created from NetBSD: syscalls.master,v 1.78 2023/08/18 19:41:19 christos Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.90 2023/07/29 15:05:45 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.91 2023/08/18 19:42:06 christos Exp $"); #if defined(_KERNEL_OPT) #include <sys/param.h> @@ -315,7 +315,7 @@ const char *const linux_syscallnames[] = /* 277 */ "#277 (unimplemented mq_timedreceive)", /* 278 */ "#278 (unimplemented mq_notify)", /* 279 */ "#279 (unimplemented mq_getsetattr)", - /* 280 */ "#280 (unimplemented waitid)", + /* 280 */ "waitid", /* 281 */ "#281 (unimplemented socket)", /* 282 */ "#282 (unimplemented bind)", /* 283 */ "#283 (unimplemented connect)", @@ -837,7 +837,7 @@ const char *const altlinux_syscallnames[ /* 277 */ NULL, /* unimplemented mq_timedreceive */ /* 278 */ NULL, /* unimplemented mq_notify */ /* 279 */ NULL, /* unimplemented mq_getsetattr */ - /* 280 */ NULL, /* unimplemented waitid */ + /* 280 */ NULL, /* waitid */ /* 281 */ NULL, /* unimplemented socket */ /* 282 */ NULL, /* unimplemented bind */ /* 283 */ NULL, /* unimplemented connect */ Index: src/sys/compat/linux/arch/arm/linux_sysent.c diff -u src/sys/compat/linux/arch/arm/linux_sysent.c:1.90 src/sys/compat/linux/arch/arm/linux_sysent.c:1.91 --- src/sys/compat/linux/arch/arm/linux_sysent.c:1.90 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/arm/linux_sysent.c Fri Aug 18 15:42:06 2023 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_sysent.c,v 1.90 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_sysent.c,v 1.91 2023/08/18 19:42:06 christos Exp $ */ /* * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.77 2023/07/29 15:04:28 christos Exp + * created from NetBSD: syscalls.master,v 1.78 2023/08/18 19:41:19 christos Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.90 2023/07/29 15:05:45 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.91 2023/08/18 19:42:06 christos Exp $"); #include <sys/param.h> #include <sys/poll.h> @@ -1217,8 +1217,10 @@ struct sysent linux_sysent[] = { .sy_call = linux_sys_nosys, }, /* 279 = filler */ { - .sy_call = linux_sys_nosys, - }, /* 280 = filler */ + ns(struct linux_sys_waitid_args), + .sy_flags = SYCALL_ARG_PTR, + .sy_call = (sy_call_t *)linux_sys_waitid + }, /* 280 = waitid */ { .sy_call = linux_sys_nosys, }, /* 281 = 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.23 src/sys/compat/linux/arch/arm/linux_systrace_args.c:1.24 --- src/sys/compat/linux/arch/arm/linux_systrace_args.c:1.23 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/arm/linux_systrace_args.c Fri Aug 18 15:42:06 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_systrace_args.c,v 1.23 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_systrace_args.c,v 1.24 2023/08/18 19:42:06 christos Exp $ */ /* * System call argument to DTrace register array conversion. @@ -1753,6 +1753,17 @@ systrace_args(register_t sysnum, const v *n_args = 4; break; } + /* linux_sys_waitid */ + case 280: { + const struct linux_sys_waitid_args *p = params; + iarg[0] = SCARG(p, idtype); /* int */ + iarg[1] = SCARG(p, id); /* id_t */ + uarg[2] = (intptr_t) SCARG(p, infop); /* linux_siginfo_t * */ + iarg[3] = SCARG(p, options); /* int */ + uarg[4] = (intptr_t) SCARG(p, rusage); /* struct rusage50 * */ + *n_args = 5; + break; + } /* linux_sys_openat */ case 322: { const struct linux_sys_openat_args *p = params; @@ -4937,6 +4948,28 @@ systrace_entry_setargdesc(int sysnum, in break; }; break; + /* linux_sys_waitid */ + case 280: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "id_t"; + break; + case 2: + p = "linux_siginfo_t *"; + break; + case 3: + p = "int"; + break; + case 4: + p = "struct rusage50 *"; + break; + default: + break; + }; + break; /* linux_sys_openat */ case 322: switch(ndx) { @@ -6645,6 +6678,11 @@ systrace_return_setargdesc(int sysnum, i if (ndx == 0 || ndx == 1) p = "int"; break; + /* linux_sys_waitid */ + case 280: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_sys_openat */ case 322: 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.124 src/sys/compat/linux/arch/i386/linux_syscall.h:1.125 --- src/sys/compat/linux/arch/i386/linux_syscall.h:1.124 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/i386/linux_syscall.h Fri Aug 18 15:42:06 2023 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscall.h,v 1.124 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_syscall.h,v 1.125 2023/08/18 19:42:06 christos Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.132 2023/07/29 15:04:28 christos Exp + * created from NetBSD: syscalls.master,v 1.133 2023/08/18 19:41:19 christos Exp */ #ifndef _LINUX_SYS_SYSCALL_H_ @@ -701,6 +701,9 @@ /* syscall: "fadvise64_64" ret: "int" args: "int" "off_t" "off_t" "int" */ #define LINUX_SYS_fadvise64_64 272 +/* syscall: "waitid" ret: "int" args: "int" "id_t" "linux_siginfo_t *" "int" "struct rusage50 *" */ +#define LINUX_SYS_waitid 284 + /* syscall: "openat" ret: "int" args: "int" "const char *" "int" "..." */ #define LINUX_SYS_openat 295 Index: src/sys/compat/linux/arch/i386/linux_syscallargs.h diff -u src/sys/compat/linux/arch/i386/linux_syscallargs.h:1.124 src/sys/compat/linux/arch/i386/linux_syscallargs.h:1.125 --- src/sys/compat/linux/arch/i386/linux_syscallargs.h:1.124 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/i386/linux_syscallargs.h Fri Aug 18 15:42:06 2023 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscallargs.h,v 1.124 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_syscallargs.h,v 1.125 2023/08/18 19:42:06 christos Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.132 2023/07/29 15:04:28 christos Exp + * created from NetBSD: syscalls.master,v 1.133 2023/08/18 19:41:19 christos Exp */ #ifndef _LINUX_SYS_SYSCALLARGS_H_ @@ -1071,6 +1071,15 @@ struct linux_sys_fadvise64_64_args { }; check_syscall_args(linux_sys_fadvise64_64) +struct linux_sys_waitid_args { + syscallarg(int) idtype; + syscallarg(id_t) id; + syscallarg(linux_siginfo_t *) infop; + syscallarg(int) options; + syscallarg(struct rusage50 *) rusage; +}; +check_syscall_args(linux_sys_waitid) + struct linux_sys_openat_args { syscallarg(int) fd; syscallarg(const char *) path; @@ -1739,6 +1748,8 @@ int compat_50_sys_utimes(struct lwp *, c int linux_sys_fadvise64_64(struct lwp *, const struct linux_sys_fadvise64_64_args *, register_t *); +int linux_sys_waitid(struct lwp *, const struct linux_sys_waitid_args *, register_t *); + int linux_sys_openat(struct lwp *, const struct linux_sys_openat_args *, register_t *); int sys_mkdirat(struct lwp *, const struct sys_mkdirat_args *, register_t *); Index: src/sys/compat/linux/arch/i386/linux_sysent.c diff -u src/sys/compat/linux/arch/i386/linux_sysent.c:1.124 src/sys/compat/linux/arch/i386/linux_sysent.c:1.125 --- src/sys/compat/linux/arch/i386/linux_sysent.c:1.124 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/i386/linux_sysent.c Fri Aug 18 15:42:06 2023 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_sysent.c,v 1.124 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_sysent.c,v 1.125 2023/08/18 19:42:06 christos Exp $ */ /* * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.132 2023/07/29 15:04:28 christos Exp + * created from NetBSD: syscalls.master,v 1.133 2023/08/18 19:41:19 christos Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.124 2023/07/29 15:05:45 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.125 2023/08/18 19:42:06 christos Exp $"); #include <sys/param.h> #include <sys/poll.h> @@ -1242,8 +1242,10 @@ struct sysent linux_sysent[] = { .sy_call = linux_sys_nosys, }, /* 283 = filler */ { - .sy_call = linux_sys_nosys, - }, /* 284 = filler */ + ns(struct linux_sys_waitid_args), + .sy_flags = SYCALL_ARG_PTR, + .sy_call = (sy_call_t *)linux_sys_waitid + }, /* 284 = waitid */ { .sy_call = linux_sys_nosys, }, /* 285 = filler */ Index: src/sys/compat/linux/arch/i386/linux_syscalls.c diff -u src/sys/compat/linux/arch/i386/linux_syscalls.c:1.125 src/sys/compat/linux/arch/i386/linux_syscalls.c:1.126 --- src/sys/compat/linux/arch/i386/linux_syscalls.c:1.125 Sat Jul 29 11:05:45 2023 +++ src/sys/compat/linux/arch/i386/linux_syscalls.c Fri Aug 18 15:42:06 2023 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_syscalls.c,v 1.125 2023/07/29 15:05:45 christos Exp $ */ +/* $NetBSD: linux_syscalls.c,v 1.126 2023/08/18 19:42:06 christos Exp $ */ /* * System call names. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.132 2023/07/29 15:04:28 christos Exp + * created from NetBSD: syscalls.master,v 1.133 2023/08/18 19:41:19 christos Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.125 2023/07/29 15:05:45 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.126 2023/08/18 19:42:06 christos Exp $"); #if defined(_KERNEL_OPT) #include <sys/param.h> @@ -318,7 +318,7 @@ const char *const linux_syscallnames[] = /* 281 */ "#281 (unimplemented mq_notify)", /* 282 */ "#282 (unimplemented mq_getsetattr)", /* 283 */ "#283 (unimplemented sys_kexec_load)", - /* 284 */ "#284 (unimplemented waitid)", + /* 284 */ "waitid", /* 285 */ "#285 (unimplemented / * unused * /)", /* 286 */ "#286 (unimplemented add_key)", /* 287 */ "#287 (unimplemented request_key)", @@ -840,7 +840,7 @@ const char *const altlinux_syscallnames[ /* 281 */ NULL, /* unimplemented mq_notify */ /* 282 */ NULL, /* unimplemented mq_getsetattr */ /* 283 */ NULL, /* unimplemented sys_kexec_load */ - /* 284 */ NULL, /* unimplemented waitid */ + /* 284 */ NULL, /* waitid */ /* 285 */ NULL, /* unimplemented / * unused * / */ /* 286 */ NULL, /* unimplemented add_key */ /* 287 */ NULL, /* unimplemented request_key */ Index: src/sys/compat/linux/arch/i386/linux_systrace_args.c diff -u src/sys/compat/linux/arch/i386/linux_systrace_args.c:1.19 src/sys/compat/linux/arch/i386/linux_systrace_args.c:1.20 --- src/sys/compat/linux/arch/i386/linux_systrace_args.c:1.19 Sat Jul 29 11:05:46 2023 +++ src/sys/compat/linux/arch/i386/linux_systrace_args.c Fri Aug 18 15:42:06 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_systrace_args.c,v 1.19 2023/07/29 15:05:46 christos Exp $ */ +/* $NetBSD: linux_systrace_args.c,v 1.20 2023/08/18 19:42:06 christos Exp $ */ /* * System call argument to DTrace register array conversion. @@ -1816,6 +1816,17 @@ systrace_args(register_t sysnum, const v *n_args = 4; break; } + /* linux_sys_waitid */ + case 284: { + const struct linux_sys_waitid_args *p = params; + iarg[0] = SCARG(p, idtype); /* int */ + iarg[1] = SCARG(p, id); /* id_t */ + uarg[2] = (intptr_t) SCARG(p, infop); /* linux_siginfo_t * */ + iarg[3] = SCARG(p, options); /* int */ + uarg[4] = (intptr_t) SCARG(p, rusage); /* struct rusage50 * */ + *n_args = 5; + break; + } /* linux_sys_openat */ case 295: { const struct linux_sys_openat_args *p = params; @@ -5066,6 +5077,28 @@ systrace_entry_setargdesc(int sysnum, in break; }; break; + /* linux_sys_waitid */ + case 284: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "id_t"; + break; + case 2: + p = "linux_siginfo_t *"; + break; + case 3: + p = "int"; + break; + case 4: + p = "struct rusage50 *"; + break; + default: + break; + }; + break; /* linux_sys_openat */ case 295: switch(ndx) { @@ -6754,6 +6787,11 @@ systrace_return_setargdesc(int sysnum, i if (ndx == 0 || ndx == 1) p = "int"; break; + /* linux_sys_waitid */ + case 284: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_sys_openat */ case 295: if (ndx == 0 || ndx == 1) Index: src/sys/compat/linux/arch/mips/linux_syscall.h diff -u src/sys/compat/linux/arch/mips/linux_syscall.h:1.88 src/sys/compat/linux/arch/mips/linux_syscall.h:1.89 --- src/sys/compat/linux/arch/mips/linux_syscall.h:1.88 Sat Jul 29 11:05:46 2023 +++ src/sys/compat/linux/arch/mips/linux_syscall.h Fri Aug 18 15:42:06 2023 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscall.h,v 1.88 2023/07/29 15:05:46 christos Exp $ */ +/* $NetBSD: linux_syscall.h,v 1.89 2023/08/18 19:42:06 christos Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.77 2023/07/29 15:05:31 christos Exp + * created from NetBSD: syscalls.master,v 1.78 2023/08/18 19:41:19 christos Exp */ #ifndef _LINUX_SYS_SYSCALL_H_ @@ -655,6 +655,9 @@ /* syscall: "utimes" ret: "int" args: "const char *" "const struct timeval50 *" */ #define LINUX_SYS_utimes 267 +/* syscall: "waitid" ret: "int" args: "int" "id_t" "linux_siginfo_t *" "int" "struct rusage50 *" */ +#define LINUX_SYS_waitid 278 + /* syscall: "set_thread_area" ret: "int" args: "void *" */ #define LINUX_SYS_set_thread_area 283 Index: src/sys/compat/linux/arch/mips/linux_syscallargs.h diff -u src/sys/compat/linux/arch/mips/linux_syscallargs.h:1.87 src/sys/compat/linux/arch/mips/linux_syscallargs.h:1.88 --- src/sys/compat/linux/arch/mips/linux_syscallargs.h:1.87 Sat Jul 29 11:05:46 2023 +++ src/sys/compat/linux/arch/mips/linux_syscallargs.h Fri Aug 18 15:42:06 2023 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscallargs.h,v 1.87 2023/07/29 15:05:46 christos Exp $ */ +/* $NetBSD: linux_syscallargs.h,v 1.88 2023/08/18 19:42:06 christos Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.77 2023/07/29 15:05:31 christos Exp + * created from NetBSD: syscalls.master,v 1.78 2023/08/18 19:41:19 christos Exp */ #ifndef _LINUX_SYS_SYSCALLARGS_H_ @@ -1065,6 +1065,15 @@ check_syscall_args(linux_sys_tgkill) struct compat_50_sys_utimes_args; +struct linux_sys_waitid_args { + syscallarg(int) idtype; + syscallarg(id_t) id; + syscallarg(linux_siginfo_t *) infop; + syscallarg(int) options; + syscallarg(struct rusage50 *) rusage; +}; +check_syscall_args(linux_sys_waitid) + struct linux_sys_set_thread_area_args { syscallarg(void *) tls; }; @@ -1751,6 +1760,8 @@ int linux_sys_tgkill(struct lwp *, const int compat_50_sys_utimes(struct lwp *, const struct compat_50_sys_utimes_args *, register_t *); +int linux_sys_waitid(struct lwp *, const struct linux_sys_waitid_args *, register_t *); + int linux_sys_set_thread_area(struct lwp *, const struct linux_sys_set_thread_area_args *, register_t *); int linux_sys_openat(struct lwp *, const struct linux_sys_openat_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.87 src/sys/compat/linux/arch/mips/linux_syscalls.c:1.88 --- src/sys/compat/linux/arch/mips/linux_syscalls.c:1.87 Sat Jul 29 11:05:46 2023 +++ src/sys/compat/linux/arch/mips/linux_syscalls.c Fri Aug 18 15:42:06 2023 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_syscalls.c,v 1.87 2023/07/29 15:05:46 christos Exp $ */ +/* $NetBSD: linux_syscalls.c,v 1.88 2023/08/18 19:42:06 christos Exp $ */ /* * System call names. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.77 2023/07/29 15:05:31 christos Exp + * created from NetBSD: syscalls.master,v 1.78 2023/08/18 19:41:19 christos Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.87 2023/07/29 15:05:46 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.88 2023/08/18 19:42:06 christos Exp $"); #if defined(_KERNEL_OPT) #include <sys/param.h> @@ -308,7 +308,7 @@ const char *const linux_syscallnames[] = /* 275 */ "#275 (unimplemented mq_notify)", /* 276 */ "#276 (unimplemented mq_getsetattr)", /* 277 */ "#277 (unimplemented vserve)", - /* 278 */ "#278 (unimplemented waitid)", + /* 278 */ "waitid", /* 279 */ "#279 (unimplemented setaltroot)", /* 280 */ "#280 (unimplemented add_key)", /* 281 */ "#281 (unimplemented request_key)", @@ -825,7 +825,7 @@ const char *const altlinux_syscallnames[ /* 275 */ NULL, /* unimplemented mq_notify */ /* 276 */ NULL, /* unimplemented mq_getsetattr */ /* 277 */ NULL, /* unimplemented vserve */ - /* 278 */ NULL, /* unimplemented waitid */ + /* 278 */ NULL, /* waitid */ /* 279 */ NULL, /* unimplemented setaltroot */ /* 280 */ NULL, /* unimplemented add_key */ /* 281 */ NULL, /* unimplemented request_key */ Index: src/sys/compat/linux/arch/mips/linux_sysent.c diff -u src/sys/compat/linux/arch/mips/linux_sysent.c:1.87 src/sys/compat/linux/arch/mips/linux_sysent.c:1.88 --- src/sys/compat/linux/arch/mips/linux_sysent.c:1.87 Sat Jul 29 11:05:46 2023 +++ src/sys/compat/linux/arch/mips/linux_sysent.c Fri Aug 18 15:42:06 2023 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_sysent.c,v 1.87 2023/07/29 15:05:46 christos Exp $ */ +/* $NetBSD: linux_sysent.c,v 1.88 2023/08/18 19:42:06 christos Exp $ */ /* * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.77 2023/07/29 15:05:31 christos Exp + * created from NetBSD: syscalls.master,v 1.78 2023/08/18 19:41:19 christos Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.87 2023/07/29 15:05:46 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.88 2023/08/18 19:42:06 christos Exp $"); #include <sys/param.h> #include <sys/poll.h> @@ -1210,8 +1210,10 @@ struct sysent linux_sysent[] = { .sy_call = linux_sys_nosys, }, /* 277 = filler */ { - .sy_call = linux_sys_nosys, - }, /* 278 = filler */ + ns(struct linux_sys_waitid_args), + .sy_flags = SYCALL_ARG_PTR, + .sy_call = (sy_call_t *)linux_sys_waitid + }, /* 278 = waitid */ { .sy_call = linux_sys_nosys, }, /* 279 = filler */ Index: src/sys/compat/linux/arch/powerpc/linux_syscall.h diff -u src/sys/compat/linux/arch/powerpc/linux_syscall.h:1.94 src/sys/compat/linux/arch/powerpc/linux_syscall.h:1.95 --- src/sys/compat/linux/arch/powerpc/linux_syscall.h:1.94 Sat Jul 29 11:05:46 2023 +++ src/sys/compat/linux/arch/powerpc/linux_syscall.h Fri Aug 18 15:42:06 2023 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscall.h,v 1.94 2023/07/29 15:05:46 christos Exp $ */ +/* $NetBSD: linux_syscall.h,v 1.95 2023/08/18 19:42:06 christos Exp $ */ /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.82 2023/07/29 15:04:29 christos Exp + * created from NetBSD: syscalls.master,v 1.83 2023/08/18 19:41:19 christos Exp */ #ifndef _LINUX_SYS_SYSCALL_H_ @@ -627,6 +627,9 @@ /* syscall: "fadvise64_64" ret: "int" args: "int" "off_t" "off_t" "int" */ #define LINUX_SYS_fadvise64_64 254 +/* syscall: "waitid" ret: "int" args: "int" "id_t" "linux_siginfo_t *" "int" "struct rusage50 *" */ +#define LINUX_SYS_waitid 272 + /* syscall: "pselect6" ret: "int" args: "int" "fd_set *" "fd_set *" "fd_set *" "struct linux_timespec *" "linux_sized_sigset_t *" */ #define LINUX_SYS_pselect6 280 Index: src/sys/compat/linux/arch/powerpc/linux_sysent.c diff -u src/sys/compat/linux/arch/powerpc/linux_sysent.c:1.94 src/sys/compat/linux/arch/powerpc/linux_sysent.c:1.95 --- src/sys/compat/linux/arch/powerpc/linux_sysent.c:1.94 Sat Jul 29 11:05:46 2023 +++ src/sys/compat/linux/arch/powerpc/linux_sysent.c Fri Aug 18 15:42:06 2023 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_sysent.c,v 1.94 2023/07/29 15:05:46 christos Exp $ */ +/* $NetBSD: linux_sysent.c,v 1.95 2023/08/18 19:42:06 christos Exp $ */ /* * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.82 2023/07/29 15:04:29 christos Exp + * created from NetBSD: syscalls.master,v 1.83 2023/08/18 19:41:19 christos Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.94 2023/07/29 15:05:46 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_sysent.c,v 1.95 2023/08/18 19:42:06 christos Exp $"); #include <sys/param.h> #include <sys/poll.h> @@ -1173,8 +1173,10 @@ struct sysent linux_sysent[] = { .sy_call = linux_sys_nosys, }, /* 271 = filler */ { - .sy_call = linux_sys_nosys, - }, /* 272 = filler */ + ns(struct linux_sys_waitid_args), + .sy_flags = SYCALL_ARG_PTR, + .sy_call = (sy_call_t *)linux_sys_waitid + }, /* 272 = waitid */ { .sy_call = linux_sys_nosys, }, /* 273 = filler */ Index: src/sys/compat/linux/arch/powerpc/linux_syscallargs.h diff -u src/sys/compat/linux/arch/powerpc/linux_syscallargs.h:1.93 src/sys/compat/linux/arch/powerpc/linux_syscallargs.h:1.94 --- src/sys/compat/linux/arch/powerpc/linux_syscallargs.h:1.93 Sat Jul 29 11:05:46 2023 +++ src/sys/compat/linux/arch/powerpc/linux_syscallargs.h Fri Aug 18 15:42:06 2023 @@ -1,10 +1,10 @@ -/* $NetBSD: linux_syscallargs.h,v 1.93 2023/07/29 15:05:46 christos Exp $ */ +/* $NetBSD: linux_syscallargs.h,v 1.94 2023/08/18 19:42:06 christos Exp $ */ /* * System call argument lists. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.82 2023/07/29 15:04:29 christos Exp + * created from NetBSD: syscalls.master,v 1.83 2023/08/18 19:41:19 christos Exp */ #ifndef _LINUX_SYS_SYSCALLARGS_H_ @@ -957,6 +957,15 @@ struct linux_sys_fadvise64_64_args { }; check_syscall_args(linux_sys_fadvise64_64) +struct linux_sys_waitid_args { + syscallarg(int) idtype; + syscallarg(id_t) id; + syscallarg(linux_siginfo_t *) infop; + syscallarg(int) options; + syscallarg(struct rusage50 *) rusage; +}; +check_syscall_args(linux_sys_waitid) + struct linux_sys_pselect6_args { syscallarg(int) nfds; syscallarg(fd_set *) readfds; @@ -1610,6 +1619,8 @@ int linux_sys_fstatfs64(struct lwp *, co int linux_sys_fadvise64_64(struct lwp *, const struct linux_sys_fadvise64_64_args *, register_t *); +int linux_sys_waitid(struct lwp *, const struct linux_sys_waitid_args *, register_t *); + int linux_sys_pselect6(struct lwp *, const struct linux_sys_pselect6_args *, register_t *); int linux_sys_ppoll(struct lwp *, const struct linux_sys_ppoll_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.93 src/sys/compat/linux/arch/powerpc/linux_syscalls.c:1.94 --- src/sys/compat/linux/arch/powerpc/linux_syscalls.c:1.93 Sat Jul 29 11:05:46 2023 +++ src/sys/compat/linux/arch/powerpc/linux_syscalls.c Fri Aug 18 15:42:06 2023 @@ -1,14 +1,14 @@ -/* $NetBSD: linux_syscalls.c,v 1.93 2023/07/29 15:05:46 christos Exp $ */ +/* $NetBSD: linux_syscalls.c,v 1.94 2023/08/18 19:42:06 christos Exp $ */ /* * System call names. * * DO NOT EDIT-- this file is automatically generated. - * created from NetBSD: syscalls.master,v 1.82 2023/07/29 15:04:29 christos Exp + * created from NetBSD: syscalls.master,v 1.83 2023/08/18 19:41:19 christos Exp */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.93 2023/07/29 15:05:46 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_syscalls.c,v 1.94 2023/08/18 19:42:06 christos Exp $"); #if defined(_KERNEL_OPT) #include <sys/param.h> @@ -305,7 +305,7 @@ const char *const linux_syscallnames[] = /* 269 */ "#269 (unimplemented add_key)", /* 270 */ "#270 (unimplemented request_key)", /* 271 */ "#271 (unimplemented keyctl)", - /* 272 */ "#272 (unimplemented waitid)", + /* 272 */ "waitid", /* 273 */ "#273 (unimplemented ioprio_set)", /* 274 */ "#274 (unimplemented ioprio_get)", /* 275 */ "#275 (unimplemented inotify_init)", @@ -827,7 +827,7 @@ const char *const altlinux_syscallnames[ /* 269 */ NULL, /* unimplemented add_key */ /* 270 */ NULL, /* unimplemented request_key */ /* 271 */ NULL, /* unimplemented keyctl */ - /* 272 */ NULL, /* unimplemented waitid */ + /* 272 */ NULL, /* waitid */ /* 273 */ NULL, /* unimplemented ioprio_set */ /* 274 */ NULL, /* unimplemented ioprio_get */ /* 275 */ NULL, /* unimplemented inotify_init */