The branch main has been updated by kib:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=16ff23d1a702e09764fd0fa517cc1783348518e0

commit 16ff23d1a702e09764fd0fa517cc1783348518e0
Author:     Konstantin Belousov <[email protected]>
AuthorDate: 2026-08-21 09:39:34 +0000
Commit:     Konstantin Belousov <[email protected]>
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_

Reply via email to