Index: lib/libc/sys/Symbol.map =================================================================== --- lib/libc/sys/Symbol.map +++ lib/libc/sys/Symbol.map @@ -1033,4 +1033,5 @@ __sys_cpuset_getdomain; _cpuset_setdomain; __sys_cpuset_setdomain; + rpctls_syscall; }; Index: sys/compat/freebsd32/freebsd32_syscalls.c =================================================================== --- sys/compat/freebsd32/freebsd32_syscalls.c +++ sys/compat/freebsd32/freebsd32_syscalls.c @@ -2,7 +2,7 @@ * System call names. * * DO NOT EDIT-- this file is automatically @generated. - * $FreeBSD: head/sys/compat/freebsd32/freebsd32_syscalls.c 359931 2020-04-14 18:11:26Z kevans $ + * $FreeBSD$ */ const char *freebsd32_syscallnames[] = { @@ -612,4 +612,5 @@ "sigfastblock", /* 573 = sigfastblock */ "__realpathat", /* 574 = __realpathat */ "close_range", /* 575 = close_range */ + "#576", /* 576 = rpctls_syscall */ }; Index: sys/compat/freebsd32/freebsd32_sysent.c =================================================================== --- sys/compat/freebsd32/freebsd32_sysent.c +++ sys/compat/freebsd32/freebsd32_sysent.c @@ -2,7 +2,7 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically @generated. - * $FreeBSD: head/sys/compat/freebsd32/freebsd32_sysent.c 360237 2020-04-24 01:30:33Z kevans $ + * $FreeBSD$ */ #include @@ -665,4 +665,5 @@ { AS(sigfastblock_args), (sy_call_t *)sys_sigfastblock, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 573 = sigfastblock */ { AS(__realpathat_args), (sy_call_t *)sys___realpathat, AUE_REALPATHAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 574 = __realpathat */ { AS(close_range_args), (sy_call_t *)sys_close_range, AUE_CLOSERANGE, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 575 = close_range */ + { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 576 = rpctls_syscall */ }; Index: sys/compat/freebsd32/syscalls.master =================================================================== --- sys/compat/freebsd32/syscalls.master +++ sys/compat/freebsd32/syscalls.master @@ -1164,5 +1164,7 @@ char *buf, size_t size, int flags); } 575 AUE_CLOSERANGE NOPROTO { int close_range(u_int lowfd, u_int highfd, \ int flags); } +; 576 is initialised by the krpc code, if present. +576 AUE_NULL UNIMPL rpctls_syscall ; vim: syntax=off Index: sys/kern/init_sysent.c =================================================================== --- sys/kern/init_sysent.c +++ sys/kern/init_sysent.c @@ -2,7 +2,7 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically @generated. - * $FreeBSD: head/sys/kern/init_sysent.c 360237 2020-04-24 01:30:33Z kevans $ + * $FreeBSD$ */ #include @@ -631,4 +631,5 @@ { AS(sigfastblock_args), (sy_call_t *)sys_sigfastblock, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 573 = sigfastblock */ { AS(__realpathat_args), (sy_call_t *)sys___realpathat, AUE_REALPATHAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 574 = __realpathat */ { AS(close_range_args), (sy_call_t *)sys_close_range, AUE_CLOSERANGE, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 575 = close_range */ + { AS(rpctls_syscall_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 576 = rpctls_syscall */ }; Index: sys/kern/syscalls.c =================================================================== --- sys/kern/syscalls.c +++ sys/kern/syscalls.c @@ -2,7 +2,7 @@ * System call names. * * DO NOT EDIT-- this file is automatically @generated. - * $FreeBSD: head/sys/kern/syscalls.c 359931 2020-04-14 18:11:26Z kevans $ + * $FreeBSD$ */ const char *syscallnames[] = { @@ -582,4 +582,5 @@ "sigfastblock", /* 573 = sigfastblock */ "__realpathat", /* 574 = __realpathat */ "close_range", /* 575 = close_range */ + "rpctls_syscall", /* 576 = rpctls_syscall */ }; Index: sys/kern/syscalls.master =================================================================== --- sys/kern/syscalls.master +++ sys/kern/syscalls.master @@ -3235,6 +3235,14 @@ ); } +; 576 is initialised by the krpc code, if present. +576 AUE_NULL NOSTD { + int rpctls_syscall( + int op, + _In_z_ const char *path + ); + } + ; Please copy any additions and changes to the following compatability tables: ; sys/compat/freebsd32/syscalls.master ; vim: syntax=off Index: sys/kern/systrace_args.c =================================================================== --- sys/kern/systrace_args.c +++ sys/kern/systrace_args.c @@ -2,7 +2,7 @@ * System call argument to DTrace register array converstion. * * DO NOT EDIT-- this file is automatically @generated. - * $FreeBSD: head/sys/kern/systrace_args.c 359931 2020-04-14 18:11:26Z kevans $ + * $FreeBSD$ * This file is part of the DTrace syscall provider. */ @@ -3368,6 +3368,14 @@ *n_args = 3; break; } + /* rpctls_syscall */ + case 576: { + struct rpctls_syscall_args *p = params; + iarg[0] = p->op; /* int */ + uarg[1] = (intptr_t) p->path; /* const char * */ + *n_args = 2; + break; + } default: *n_args = 0; break; @@ -9008,6 +9016,19 @@ break; }; break; + /* rpctls_syscall */ + case 576: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "userland const char *"; + break; + default: + break; + }; + break; default: break; }; @@ -10931,6 +10952,11 @@ break; /* close_range */ case 575: + if (ndx == 0 || ndx == 1) + p = "int"; + break; + /* rpctls_syscall */ + case 576: if (ndx == 0 || ndx == 1) p = "int"; break; Index: sys/sys/syscall.h =================================================================== --- sys/sys/syscall.h +++ sys/sys/syscall.h @@ -2,7 +2,7 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically @generated. - * $FreeBSD: head/sys/sys/syscall.h 359931 2020-04-14 18:11:26Z kevans $ + * $FreeBSD$ */ #define SYS_syscall 0 @@ -511,4 +511,5 @@ #define SYS_sigfastblock 573 #define SYS___realpathat 574 #define SYS_close_range 575 -#define SYS_MAXSYSCALL 576 +#define SYS_rpctls_syscall 576 +#define SYS_MAXSYSCALL 577 Index: sys/sys/sysproto.h =================================================================== --- sys/sys/sysproto.h +++ sys/sys/sysproto.h @@ -2,7 +2,7 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically @generated. - * $FreeBSD: head/sys/sys/sysproto.h 360237 2020-04-24 01:30:33Z kevans $ + * $FreeBSD$ */ #ifndef _SYS_SYSPROTO_H_ @@ -1832,6 +1832,10 @@ char highfd_l_[PADL_(u_int)]; u_int highfd; char highfd_r_[PADR_(u_int)]; char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; }; +struct rpctls_syscall_args { + char op_l_[PADL_(int)]; int op; char op_r_[PADR_(int)]; + char path_l_[PADL_(const char *)]; const char * path; char path_r_[PADR_(const char *)]; +}; int nosys(struct thread *, struct nosys_args *); void sys_sys_exit(struct thread *, struct sys_exit_args *); int sys_fork(struct thread *, struct fork_args *); @@ -2222,6 +2226,7 @@ int sys_sigfastblock(struct thread *, struct sigfastblock_args *); int sys___realpathat(struct thread *, struct __realpathat_args *); int sys_close_range(struct thread *, struct close_range_args *); +int sys_rpctls_syscall(struct thread *, struct rpctls_syscall_args *); #ifdef COMPAT_43 @@ -3152,6 +3157,7 @@ #define SYS_AUE_sigfastblock AUE_NULL #define SYS_AUE___realpathat AUE_REALPATHAT #define SYS_AUE_close_range AUE_CLOSERANGE +#define SYS_AUE_rpctls_syscall AUE_NULL #undef PAD_ #undef PADL_