git: 16ff23d1a702 - main - Regen
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 28 Aug 2026 12:05:10 UTC
The branch main has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=16ff23d1a702e09764fd0fa517cc1783348518e0
commit 16ff23d1a702e09764fd0fa517cc1783348518e0
Author: Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2026-08-21 09:39:34 +0000
Commit: Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2026-08-28 11:52:32 +0000
Regen
---
lib/libsys/_libsys.h | 2 ++
lib/libsys/syscalls.map | 2 ++
sys/compat/freebsd32/freebsd32_proto.h | 9 ++++++
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 | 38 ++++++++++++++++++++++++++
sys/kern/init_sysent.c | 1 +
sys/kern/syscalls.c | 1 +
sys/kern/systrace_args.c | 38 ++++++++++++++++++++++++++
sys/sys/syscall.h | 3 +-
sys/sys/syscall.mk | 3 +-
sys/sys/sysproto.h | 9 ++++++
13 files changed, 108 insertions(+), 3 deletions(-)
diff --git a/lib/libsys/_libsys.h b/lib/libsys/_libsys.h
index 713e67bb8616..0af5e09f31e7 100644
--- a/lib/libsys/_libsys.h
+++ b/lib/libsys/_libsys.h
@@ -477,6 +477,7 @@ typedef int (__sys_pdwait_t)(int, int *, int, struct __wrusage *, struct __sigin
typedef int (__sys_renameat2_t)(int, const char *, int, const char *, int);
typedef int (__sys_pdopenpid_t)(pid_t, int);
typedef int (__sys_pddupfd_t)(int, int, int);
+typedef int (__sys_pdptrace_t)(int, int, int, void *, int);
_Noreturn void __sys__exit(int rval);
int __sys_fork(void);
@@ -889,6 +890,7 @@ int __sys_pdwait(int fd, int * status, int options, struct __wrusage * wrusage,
int __sys_renameat2(int oldfd, const char * old, int newfd, const char * new, int flags);
int __sys_pdopenpid(pid_t pid, int flags);
int __sys_pddupfd(int pd, int fd, int flags);
+int __sys_pdptrace(int req, int pfd, int lwpid, void * addr, int data);
__END_DECLS
#endif /* __LIBSYS_H_ */
diff --git a/lib/libsys/syscalls.map b/lib/libsys/syscalls.map
index 2e4fa4b27ed4..c30f1c013f21 100644
--- a/lib/libsys/syscalls.map
+++ b/lib/libsys/syscalls.map
@@ -829,4 +829,6 @@ FBSDprivate_1.0 {
__sys_pdopenpid;
_pddupfd;
__sys_pddupfd;
+ _pdptrace;
+ __sys_pdptrace;
};
diff --git a/sys/compat/freebsd32/freebsd32_proto.h b/sys/compat/freebsd32/freebsd32_proto.h
index 12458ed4cc4d..3be07464c967 100644
--- a/sys/compat/freebsd32/freebsd32_proto.h
+++ b/sys/compat/freebsd32/freebsd32_proto.h
@@ -706,6 +706,13 @@ struct freebsd32_pdwait_args {
char wrusage_l_[PADL_(struct __wrusage32 *)]; struct __wrusage32 * wrusage; char wrusage_r_[PADR_(struct __wrusage32 *)];
char info_l_[PADL_(struct __siginfo32 *)]; struct __siginfo32 * info; char info_r_[PADR_(struct __siginfo32 *)];
};
+struct freebsd32_pdptrace_args {
+ char req_l_[PADL_(int)]; int req; char req_r_[PADR_(int)];
+ char pfd_l_[PADL_(int)]; int pfd; char pfd_r_[PADR_(int)];
+ char lwpid_l_[PADL_(int)]; int lwpid; char lwpid_r_[PADR_(int)];
+ char addr_l_[PADL_(void *)]; void * addr; char addr_r_[PADR_(void *)];
+ char data_l_[PADL_(int)]; int data; char data_r_[PADR_(int)];
+};
int freebsd32_wait4(struct thread *, struct freebsd32_wait4_args *);
int freebsd32_ptrace(struct thread *, struct freebsd32_ptrace_args *);
int freebsd32_recvmsg(struct thread *, struct freebsd32_recvmsg_args *);
@@ -825,6 +832,7 @@ int freebsd32_timerfd_gettime(struct thread *, struct freebsd32_timerfd_gettime_
int freebsd32_timerfd_settime(struct thread *, struct freebsd32_timerfd_settime_args *);
int freebsd32_setcred(struct thread *, struct freebsd32_setcred_args *);
int freebsd32_pdwait(struct thread *, struct freebsd32_pdwait_args *);
+int freebsd32_pdptrace(struct thread *, struct freebsd32_pdptrace_args *);
#ifdef COMPAT_43
@@ -1328,6 +1336,7 @@ int freebsd11_freebsd32_fstatat(struct thread *, struct freebsd11_freebsd32_fsta
#define FREEBSD32_SYS_AUE_freebsd32_timerfd_settime AUE_TIMERFD
#define FREEBSD32_SYS_AUE_freebsd32_setcred AUE_SETCRED
#define FREEBSD32_SYS_AUE_freebsd32_pdwait AUE_PDWAIT
+#define FREEBSD32_SYS_AUE_freebsd32_pdptrace AUE_PDPTRACE
#undef PAD_
#undef PADL_
diff --git a/sys/compat/freebsd32/freebsd32_syscall.h b/sys/compat/freebsd32/freebsd32_syscall.h
index 22704174e366..89928b09314b 100644
--- a/sys/compat/freebsd32/freebsd32_syscall.h
+++ b/sys/compat/freebsd32/freebsd32_syscall.h
@@ -522,4 +522,5 @@
#define FREEBSD32_SYS_renameat2 602
#define FREEBSD32_SYS_pdopenpid 603
#define FREEBSD32_SYS_pddupfd 604
-#define FREEBSD32_SYS_MAXSYSCALL 605
+#define FREEBSD32_SYS_freebsd32_pdptrace 605
+#define FREEBSD32_SYS_MAXSYSCALL 606
diff --git a/sys/compat/freebsd32/freebsd32_syscalls.c b/sys/compat/freebsd32/freebsd32_syscalls.c
index 06606de6f52b..21b502da676f 100644
--- a/sys/compat/freebsd32/freebsd32_syscalls.c
+++ b/sys/compat/freebsd32/freebsd32_syscalls.c
@@ -610,4 +610,5 @@ const char *freebsd32_syscallnames[] = {
"renameat2", /* 602 = renameat2 */
"pdopenpid", /* 603 = pdopenpid */
"pddupfd", /* 604 = pddupfd */
+ "freebsd32_pdptrace", /* 605 = freebsd32_pdptrace */
};
diff --git a/sys/compat/freebsd32/freebsd32_sysent.c b/sys/compat/freebsd32/freebsd32_sysent.c
index d8c276d7669c..544e8441cb0c 100644
--- a/sys/compat/freebsd32/freebsd32_sysent.c
+++ b/sys/compat/freebsd32/freebsd32_sysent.c
@@ -672,4 +672,5 @@ struct sysent freebsd32_sysent[] = {
{ .sy_narg = AS(renameat2_args), .sy_call = (sy_call_t *)sys_renameat2, .sy_auevent = AUE_RENAMEAT, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 602 = renameat2 */
{ .sy_narg = AS(pdopenpid_args), .sy_call = (sy_call_t *)sys_pdopenpid, .sy_auevent = AUE_PDOPENPID, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 603 = pdopenpid */
{ .sy_narg = AS(pddupfd_args), .sy_call = (sy_call_t *)sys_pddupfd, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 604 = pddupfd */
+ { .sy_narg = AS(freebsd32_pdptrace_args), .sy_call = (sy_call_t *)freebsd32_pdptrace, .sy_auevent = AUE_PDPTRACE, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 605 = freebsd32_pdptrace */
};
diff --git a/sys/compat/freebsd32/freebsd32_systrace_args.c b/sys/compat/freebsd32/freebsd32_systrace_args.c
index b2b52338e84d..e2dfd5a59975 100644
--- a/sys/compat/freebsd32/freebsd32_systrace_args.c
+++ b/sys/compat/freebsd32/freebsd32_systrace_args.c
@@ -3475,6 +3475,17 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
*n_args = 3;
break;
}
+ /* freebsd32_pdptrace */
+ case 605: {
+ struct freebsd32_pdptrace_args *p = params;
+ iarg[a++] = p->req; /* int */
+ iarg[a++] = p->pfd; /* int */
+ iarg[a++] = p->lwpid; /* int */
+ uarg[a++] = (intptr_t)p->addr; /* void * */
+ iarg[a++] = p->data; /* int */
+ *n_args = 5;
+ break;
+ }
default:
*n_args = 0;
break;
@@ -9393,6 +9404,28 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
break;
};
break;
+ /* freebsd32_pdptrace */
+ case 605:
+ switch (ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "int";
+ break;
+ case 2:
+ p = "int";
+ break;
+ case 3:
+ p = "userland void *";
+ break;
+ case 4:
+ p = "int";
+ break;
+ default:
+ break;
+ };
+ break;
default:
break;
};
@@ -11336,6 +11369,11 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
if (ndx == 0 || ndx == 1)
p = "int";
break;
+ /* freebsd32_pdptrace */
+ case 605:
+ 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 1f1b26d16b7a..f5971a891765 100644
--- a/sys/kern/init_sysent.c
+++ b/sys/kern/init_sysent.c
@@ -671,4 +671,5 @@ struct sysent sysent[] = {
{ .sy_narg = AS(renameat2_args), .sy_call = (sy_call_t *)sys_renameat2, .sy_auevent = AUE_RENAMEAT, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 602 = renameat2 */
{ .sy_narg = AS(pdopenpid_args), .sy_call = (sy_call_t *)sys_pdopenpid, .sy_auevent = AUE_PDOPENPID, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 603 = pdopenpid */
{ .sy_narg = AS(pddupfd_args), .sy_call = (sy_call_t *)sys_pddupfd, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 604 = pddupfd */
+ { .sy_narg = AS(pdptrace_args), .sy_call = (sy_call_t *)sys_pdptrace, .sy_auevent = AUE_PDPTRACE, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 605 = pdptrace */
};
diff --git a/sys/kern/syscalls.c b/sys/kern/syscalls.c
index 6d36e8c7f814..21fba39fe09b 100644
--- a/sys/kern/syscalls.c
+++ b/sys/kern/syscalls.c
@@ -610,4 +610,5 @@ const char *syscallnames[] = {
"renameat2", /* 602 = renameat2 */
"pdopenpid", /* 603 = pdopenpid */
"pddupfd", /* 604 = pddupfd */
+ "pdptrace", /* 605 = pdptrace */
};
diff --git a/sys/kern/systrace_args.c b/sys/kern/systrace_args.c
index 417c75e380a4..f6b6548a2450 100644
--- a/sys/kern/systrace_args.c
+++ b/sys/kern/systrace_args.c
@@ -3572,6 +3572,17 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
*n_args = 3;
break;
}
+ /* pdptrace */
+ case 605: {
+ struct pdptrace_args *p = params;
+ iarg[a++] = p->req; /* int */
+ iarg[a++] = p->pfd; /* int */
+ iarg[a++] = p->lwpid; /* int */
+ uarg[a++] = (intptr_t)p->addr; /* void * */
+ iarg[a++] = p->data; /* int */
+ *n_args = 5;
+ break;
+ }
default:
*n_args = 0;
break;
@@ -9567,6 +9578,28 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
break;
};
break;
+ /* pdptrace */
+ case 605:
+ switch (ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "int";
+ break;
+ case 2:
+ p = "int";
+ break;
+ case 3:
+ p = "userland void *";
+ break;
+ case 4:
+ p = "int";
+ break;
+ default:
+ break;
+ };
+ break;
default:
break;
};
@@ -11605,6 +11638,11 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
if (ndx == 0 || ndx == 1)
p = "int";
break;
+ /* pdptrace */
+ case 605:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
default:
break;
};
diff --git a/sys/sys/syscall.h b/sys/sys/syscall.h
index 94321263756f..5fe775e06e4c 100644
--- a/sys/sys/syscall.h
+++ b/sys/sys/syscall.h
@@ -543,4 +543,5 @@
#define SYS_renameat2 602
#define SYS_pdopenpid 603
#define SYS_pddupfd 604
-#define SYS_MAXSYSCALL 605
+#define SYS_pdptrace 605
+#define SYS_MAXSYSCALL 606
diff --git a/sys/sys/syscall.mk b/sys/sys/syscall.mk
index 0e1b0c91943b..5c7503a10264 100644
--- a/sys/sys/syscall.mk
+++ b/sys/sys/syscall.mk
@@ -446,4 +446,5 @@ MIASM = \
pdwait.o \
renameat2.o \
pdopenpid.o \
- pddupfd.o
+ pddupfd.o \
+ pdptrace.o
diff --git a/sys/sys/sysproto.h b/sys/sys/sysproto.h
index 09afc8bb7bf4..62eef4e185df 100644
--- a/sys/sys/sysproto.h
+++ b/sys/sys/sysproto.h
@@ -1941,6 +1941,13 @@ struct pddupfd_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)];
};
+struct pdptrace_args {
+ char req_l_[PADL_(int)]; int req; char req_r_[PADR_(int)];
+ char pfd_l_[PADL_(int)]; int pfd; char pfd_r_[PADR_(int)];
+ char lwpid_l_[PADL_(int)]; int lwpid; char lwpid_r_[PADR_(int)];
+ char addr_l_[PADL_(void *)]; void * addr; char addr_r_[PADR_(void *)];
+ char data_l_[PADL_(int)]; int data; char data_r_[PADR_(int)];
+};
int sys__exit(struct thread *, struct _exit_args *);
int sys_fork(struct thread *, struct fork_args *);
int sys_read(struct thread *, struct read_args *);
@@ -2353,6 +2360,7 @@ int sys_pdwait(struct thread *, struct pdwait_args *);
int sys_renameat2(struct thread *, struct renameat2_args *);
int sys_pdopenpid(struct thread *, struct pdopenpid_args *);
int sys_pddupfd(struct thread *, struct pddupfd_args *);
+int sys_pdptrace(struct thread *, struct pdptrace_args *);
#ifdef COMPAT_43
@@ -3357,6 +3365,7 @@ int freebsd14_setgroups(struct thread *, struct freebsd14_setgroups_args *);
#define SYS_AUE_renameat2 AUE_RENAMEAT
#define SYS_AUE_pdopenpid AUE_PDOPENPID
#define SYS_AUE_pddupfd AUE_NULL
+#define SYS_AUE_pdptrace AUE_PDPTRACE
#undef PAD_
#undef PADL_