From nobody Sat May 31 19:52:59 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b8rPS6ZnCz5xVMt; Sat, 31 May 2025 19:53:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b8rPR50Tdz3JHx; Sat, 31 May 2025 19:52:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748721180; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UQb9Bx0denXx/rqX2qIeVqVrgO2w5+usK4t0xd9heeA=; b=qxyvNvGuyTVkbv64XM8eD7yUdWTeFyTIRziFm2iDMaQmQOhsPTV3SLiF5RlU4tzLbu1K6+ 01m2GNVuyS0lslT1awdBAUOM55uofb3ITNZDJov2+qxZoS352OZmzbrV0u2tEM0+2bE4g5 yNH2kN4yNZMZN0gzxoEs19ULcKHub1PNy8lL+ALh4hq4fYzf82KZhnqsu4hPsnAzWB14On zdaeAvjrwsbkExmtpTF2fGTocPchDQE9SLhjF1wB2yYKIWEoDvNrH/oVFvbrjZ5F/UuUqP /H5nRLYFBi2mHXcXJt/2b11UPLcM9ebjQK7Z8p4Zca3x7+yFXTcpKbUOLRG5ug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748721180; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UQb9Bx0denXx/rqX2qIeVqVrgO2w5+usK4t0xd9heeA=; b=l2bvTvzyvG3x4ANzVVqNeprXI2O8vBJg8pdto3kD7Ca1/zkhYLcXY5ShPU3OvTQKgme7bw inVCWt9ZwlU8Rk5U0O2Zx17IwCdXj9ETnDuiP4y2ej+LKrD3C7loDEPaCou3VOAU5z4TtK GWoXMNYbimKWpdeuCWB8An5Lqm1cqIHVy2nbctrv9hHBvbswOzZNNHZxkmZeZJ53E2X0Es uuRBUfb+Y9w+T3ZDXgvzyKvO8i9CaeszwPfjcC5YkvzpM3+lVzlby9kPCYymkEHgF6oOrK FvWvDYmDsdFUwBP9V5AVfo35RW+IXZrkSbiAy79dU8V5JQx7w2VezYuFKXe+vQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1748721180; a=rsa-sha256; cv=none; b=SF1Ch+elkXMGp8la9FbeiG3N2t5phUNpuDasaWl7ak2wZT7ah38enECGIf1j3jGliWcitX V+0rT3/aTik+mYQxErt0b+UGgI64ln3CkScJRzQHObPShLkKFIPE1BC2qm0SdTSbpZ7U7A fuSqEznVbg+FYlV6gTPfOQKE/vxWGSAS3Kz7bRhCEhN+rtK1CN6YhJE2zAQk0rfCD0/Oya GyCw9iZ6llHZcrdiez0YZikJOjsgV1msyJFxx3VgTGeZJaIZfVssCUwJ5X1MqbmTKDwn1o bHY4CbDIqP4PQUlXHj9I/PWg4SU49fCC8AnBbjW2PgNwinzQhXC1aQPwVuRMcg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b8rPR1bjmzsDn; Sat, 31 May 2025 19:52:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54VJqxfB029944; Sat, 31 May 2025 19:52:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54VJqxrA029941; Sat, 31 May 2025 19:52:59 GMT (envelope-from git) Date: Sat, 31 May 2025 19:52:59 GMT Message-Id: <202505311952.54VJqxrA029941@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: bfe9e97a23af - main - Regen List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: bfe9e97a23af40f9d6343c92f6adf137b2ca23f1 Auto-Submitted: auto-generated The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=bfe9e97a23af40f9d6343c92f6adf137b2ca23f1 commit bfe9e97a23af40f9d6343c92f6adf137b2ca23f1 Author: Konstantin Belousov AuthorDate: 2025-05-23 05:07:21 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-31 19:52:42 +0000 Regen --- lib/libsys/_libsys.h | 2 ++ lib/libsys/syscalls.map | 2 ++ sys/compat/freebsd32/freebsd32_syscall.h | 3 ++- sys/compat/freebsd32/freebsd32_syscalls.c | 1 + sys/compat/freebsd32/freebsd32_sysent.c | 1 + sys/compat/freebsd32/freebsd32_systrace_args.c | 30 ++++++++++++++++++++++++++ sys/kern/init_sysent.c | 1 + sys/kern/syscalls.c | 1 + sys/kern/systrace_args.c | 30 ++++++++++++++++++++++++++ sys/sys/syscall.h | 3 ++- sys/sys/syscall.mk | 3 ++- sys/sys/sysproto.h | 7 ++++++ 12 files changed, 81 insertions(+), 3 deletions(-) diff --git a/lib/libsys/_libsys.h b/lib/libsys/_libsys.h index d06017edf6d9..e2a8f2253814 100644 --- a/lib/libsys/_libsys.h +++ b/lib/libsys/_libsys.h @@ -465,6 +465,7 @@ typedef int (__sys_kcmp_t)(pid_t, pid_t, int, uintptr_t, uintptr_t); typedef int (__sys_getrlimitusage_t)(u_int, int, rlim_t *); typedef int (__sys_fchroot_t)(int); typedef int (__sys_setcred_t)(u_int, const struct setcred *, size_t); +typedef int (__sys_exterrctl_t)(u_int, u_int, void *); void __sys_exit(int rval); int __sys_fork(void); @@ -866,6 +867,7 @@ int __sys_kcmp(pid_t pid1, pid_t pid2, int type, uintptr_t idx1, uintptr_t idx2) int __sys_getrlimitusage(u_int which, int flags, rlim_t * res); int __sys_fchroot(int fd); int __sys_setcred(u_int flags, const struct setcred * wcred, size_t size); +int __sys_exterrctl(u_int op, u_int flags, void * ptr); __END_DECLS #endif /* __LIBSYS_H_ */ diff --git a/lib/libsys/syscalls.map b/lib/libsys/syscalls.map index 474df2cd8b1c..51be88203c17 100644 --- a/lib/libsys/syscalls.map +++ b/lib/libsys/syscalls.map @@ -807,4 +807,6 @@ FBSDprivate_1.0 { __sys_fchroot; _setcred; __sys_setcred; + _exterrctl; + __sys_exterrctl; }; diff --git a/sys/compat/freebsd32/freebsd32_syscall.h b/sys/compat/freebsd32/freebsd32_syscall.h index 37be6137289e..eaa086188b5f 100644 --- a/sys/compat/freebsd32/freebsd32_syscall.h +++ b/sys/compat/freebsd32/freebsd32_syscall.h @@ -510,4 +510,5 @@ #define FREEBSD32_SYS_getrlimitusage 589 #define FREEBSD32_SYS_fchroot 590 #define FREEBSD32_SYS_freebsd32_setcred 591 -#define FREEBSD32_SYS_MAXSYSCALL 592 +#define FREEBSD32_SYS_exterrctl 592 +#define FREEBSD32_SYS_MAXSYSCALL 593 diff --git a/sys/compat/freebsd32/freebsd32_syscalls.c b/sys/compat/freebsd32/freebsd32_syscalls.c index 45d5563d6660..989f32a5c6f0 100644 --- a/sys/compat/freebsd32/freebsd32_syscalls.c +++ b/sys/compat/freebsd32/freebsd32_syscalls.c @@ -597,4 +597,5 @@ const char *freebsd32_syscallnames[] = { "getrlimitusage", /* 589 = getrlimitusage */ "fchroot", /* 590 = fchroot */ "freebsd32_setcred", /* 591 = freebsd32_setcred */ + "exterrctl", /* 592 = exterrctl */ }; diff --git a/sys/compat/freebsd32/freebsd32_sysent.c b/sys/compat/freebsd32/freebsd32_sysent.c index 321d2264b65e..476fe2ac3f80 100644 --- a/sys/compat/freebsd32/freebsd32_sysent.c +++ b/sys/compat/freebsd32/freebsd32_sysent.c @@ -659,4 +659,5 @@ struct sysent freebsd32_sysent[] = { { .sy_narg = AS(getrlimitusage_args), .sy_call = (sy_call_t *)sys_getrlimitusage, .sy_auevent = AUE_NULL, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 589 = getrlimitusage */ { .sy_narg = AS(fchroot_args), .sy_call = (sy_call_t *)sys_fchroot, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 590 = fchroot */ { .sy_narg = AS(freebsd32_setcred_args), .sy_call = (sy_call_t *)freebsd32_setcred, .sy_auevent = AUE_SETCRED, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 591 = freebsd32_setcred */ + { .sy_narg = AS(exterrctl_args), .sy_call = (sy_call_t *)sys_exterrctl, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 592 = exterrctl */ }; diff --git a/sys/compat/freebsd32/freebsd32_systrace_args.c b/sys/compat/freebsd32/freebsd32_systrace_args.c index 6ffb00784d10..cf08938cd5de 100644 --- a/sys/compat/freebsd32/freebsd32_systrace_args.c +++ b/sys/compat/freebsd32/freebsd32_systrace_args.c @@ -3386,6 +3386,15 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) *n_args = 3; break; } + /* exterrctl */ + case 592: { + struct exterrctl_args *p = params; + uarg[a++] = p->op; /* u_int */ + uarg[a++] = p->flags; /* u_int */ + uarg[a++] = (intptr_t)p->ptr; /* void * */ + *n_args = 3; + break; + } default: *n_args = 0; break; @@ -9147,6 +9156,22 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; }; break; + /* exterrctl */ + case 592: + switch (ndx) { + case 0: + p = "u_int"; + break; + case 1: + p = "u_int"; + break; + case 2: + p = "userland void *"; + break; + default: + break; + }; + break; default: break; }; @@ -11040,6 +11065,11 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) if (ndx == 0 || ndx == 1) p = "int"; break; + /* exterrctl */ + case 592: + if (ndx == 0 || ndx == 1) + p = "int"; + break; default: break; }; diff --git a/sys/kern/init_sysent.c b/sys/kern/init_sysent.c index f34fae00f532..a48a513aa3b5 100644 --- a/sys/kern/init_sysent.c +++ b/sys/kern/init_sysent.c @@ -658,4 +658,5 @@ struct sysent sysent[] = { { .sy_narg = AS(getrlimitusage_args), .sy_call = (sy_call_t *)sys_getrlimitusage, .sy_auevent = AUE_NULL, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 589 = getrlimitusage */ { .sy_narg = AS(fchroot_args), .sy_call = (sy_call_t *)sys_fchroot, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 590 = fchroot */ { .sy_narg = AS(setcred_args), .sy_call = (sy_call_t *)sys_setcred, .sy_auevent = AUE_SETCRED, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 591 = setcred */ + { .sy_narg = AS(exterrctl_args), .sy_call = (sy_call_t *)sys_exterrctl, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 592 = exterrctl */ }; diff --git a/sys/kern/syscalls.c b/sys/kern/syscalls.c index f8543cfa611d..fa36cc824078 100644 --- a/sys/kern/syscalls.c +++ b/sys/kern/syscalls.c @@ -597,4 +597,5 @@ const char *syscallnames[] = { "getrlimitusage", /* 589 = getrlimitusage */ "fchroot", /* 590 = fchroot */ "setcred", /* 591 = setcred */ + "exterrctl", /* 592 = exterrctl */ }; diff --git a/sys/kern/systrace_args.c b/sys/kern/systrace_args.c index d1877f3c9333..15789d3eb5fa 100644 --- a/sys/kern/systrace_args.c +++ b/sys/kern/systrace_args.c @@ -3473,6 +3473,15 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) *n_args = 3; break; } + /* exterrctl */ + case 592: { + struct exterrctl_args *p = params; + uarg[a++] = p->op; /* u_int */ + uarg[a++] = p->flags; /* u_int */ + uarg[a++] = (intptr_t)p->ptr; /* void * */ + *n_args = 3; + break; + } default: *n_args = 0; break; @@ -9292,6 +9301,22 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; }; break; + /* exterrctl */ + case 592: + switch (ndx) { + case 0: + p = "u_int"; + break; + case 1: + p = "u_int"; + break; + case 2: + p = "userland void *"; + break; + default: + break; + }; + break; default: break; }; @@ -11275,6 +11300,11 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) if (ndx == 0 || ndx == 1) p = "int"; break; + /* exterrctl */ + case 592: + if (ndx == 0 || ndx == 1) + p = "int"; + break; default: break; }; diff --git a/sys/sys/syscall.h b/sys/sys/syscall.h index 1e1a36c8951b..68406a2dfc29 100644 --- a/sys/sys/syscall.h +++ b/sys/sys/syscall.h @@ -528,4 +528,5 @@ #define SYS_getrlimitusage 589 #define SYS_fchroot 590 #define SYS_setcred 591 -#define SYS_MAXSYSCALL 592 +#define SYS_exterrctl 592 +#define SYS_MAXSYSCALL 593 diff --git a/sys/sys/syscall.mk b/sys/sys/syscall.mk index d1f2b0e2dbb7..9a90a63f35a3 100644 --- a/sys/sys/syscall.mk +++ b/sys/sys/syscall.mk @@ -433,4 +433,5 @@ MIASM = \ kcmp.o \ getrlimitusage.o \ fchroot.o \ - setcred.o + setcred.o \ + exterrctl.o diff --git a/sys/sys/sysproto.h b/sys/sys/sysproto.h index 55f91424d16f..94da81c84d25 100644 --- a/sys/sys/sysproto.h +++ b/sys/sys/sysproto.h @@ -1886,6 +1886,11 @@ struct setcred_args { char wcred_l_[PADL_(const struct setcred *)]; const struct setcred * wcred; char wcred_r_[PADR_(const struct setcred *)]; char size_l_[PADL_(size_t)]; size_t size; char size_r_[PADR_(size_t)]; }; +struct exterrctl_args { + char op_l_[PADL_(u_int)]; u_int op; char op_r_[PADR_(u_int)]; + char flags_l_[PADL_(u_int)]; u_int flags; char flags_r_[PADR_(u_int)]; + char ptr_l_[PADL_(void *)]; void * ptr; char ptr_r_[PADR_(void *)]; +}; int sys_exit(struct thread *, struct exit_args *); int sys_fork(struct thread *, struct fork_args *); int sys_read(struct thread *, struct read_args *); @@ -2287,6 +2292,7 @@ int sys_kcmp(struct thread *, struct kcmp_args *); int sys_getrlimitusage(struct thread *, struct getrlimitusage_args *); int sys_fchroot(struct thread *, struct fchroot_args *); int sys_setcred(struct thread *, struct setcred_args *); +int sys_exterrctl(struct thread *, struct exterrctl_args *); #ifdef COMPAT_43 @@ -3268,6 +3274,7 @@ int freebsd13_swapoff(struct thread *, struct freebsd13_swapoff_args *); #define SYS_AUE_getrlimitusage AUE_NULL #define SYS_AUE_fchroot AUE_NULL #define SYS_AUE_setcred AUE_SETCRED +#define SYS_AUE_exterrctl AUE_NULL #undef PAD_ #undef PADL_