The branch main has been updated by kib:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=77c5f29453ed3dbb4ba1a372329ab32ec27c998d

commit 77c5f29453ed3dbb4ba1a372329ab32ec27c998d
Author:     Konstantin Belousov <[email protected]>
AuthorDate: 2026-01-26 20:06:44 +0000
Commit:     Konstantin Belousov <[email protected]>
CommitDate: 2026-01-26 21:47:50 +0000

    libc: document posix_spawnattr_{get,set}procdescp_np(3)
    
    Reviewed by:    asomers
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential revision:  https://reviews.freebsd.org/D54899
---
 lib/libc/gen/Makefile.inc                      |  2 +
 lib/libc/gen/posix_spawn.3                     |  2 +
 lib/libc/gen/posix_spawnattr_getprocdescp_np.3 | 94 ++++++++++++++++++++++++++
 3 files changed, 98 insertions(+)

diff --git a/lib/libc/gen/Makefile.inc b/lib/libc/gen/Makefile.inc
index 9b92abb6282a..3e68f8400c5c 100644
--- a/lib/libc/gen/Makefile.inc
+++ b/lib/libc/gen/Makefile.inc
@@ -277,6 +277,7 @@ MAN+=       alarm.3 \
        posix_spawnattr_getexecfd_np.3 \
        posix_spawnattr_getflags.3 \
        posix_spawnattr_getpgroup.3 \
+       posix_spawnattr_getprocdescp_np.3 \
        posix_spawnattr_getschedparam.3 \
        posix_spawnattr_getschedpolicy.3 \
        posix_spawnattr_init.3 \
@@ -472,6 +473,7 @@ MLINKS+=posix_spawn.3 posix_spawnp.3 \
        posix_spawnattr_getflags.3 posix_spawnattr_setflags.3 \
        posix_spawnattr_getexecfd_np.3 posix_spawnattr_setexecfd_np.3 \
        posix_spawnattr_getpgroup.3 posix_spawnattr_setpgroup.3 \
+       posix_spawnattr_getprocdescp_np.3 posix_spawnattr_setprocdescp_np.3 \
        posix_spawnattr_getschedparam.3 posix_spawnattr_setschedparam.3 \
        posix_spawnattr_getschedpolicy.3 posix_spawnattr_setschedpolicy.3 \
        posix_spawnattr_getsigdefault.3 posix_spawnattr_setsigdefault.3 \
diff --git a/lib/libc/gen/posix_spawn.3 b/lib/libc/gen/posix_spawn.3
index a34344597a99..f7489890db31 100644
--- a/lib/libc/gen/posix_spawn.3
+++ b/lib/libc/gen/posix_spawn.3
@@ -458,6 +458,7 @@ action.
 .Xr posix_spawnattr_getexecfd_np 3 ,
 .Xr posix_spawnattr_getflags 3 ,
 .Xr posix_spawnattr_getpgroup 3 ,
+.Xr posix_spawnattr_getprocdescp_np 3 ,
 .Xr posix_spawnattr_getschedparam 3 ,
 .Xr posix_spawnattr_getschedpolicy 3 ,
 .Xr posix_spawnattr_getsigdefault 3 ,
@@ -466,6 +467,7 @@ action.
 .Xr posix_spawnattr_setexecfd_np 3 ,
 .Xr posix_spawnattr_setflags 3 ,
 .Xr posix_spawnattr_setpgroup 3 ,
+.Xr posix_spawnattr_setprocdescp_np 3,
 .Xr posix_spawnattr_setschedparam 3 ,
 .Xr posix_spawnattr_setschedpolicy 3 ,
 .Xr posix_spawnattr_setsigdefault 3 ,
diff --git a/lib/libc/gen/posix_spawnattr_getprocdescp_np.3 
b/lib/libc/gen/posix_spawnattr_getprocdescp_np.3
new file mode 100644
index 000000000000..fab529d91313
--- /dev/null
+++ b/lib/libc/gen/posix_spawnattr_getprocdescp_np.3
@@ -0,0 +1,94 @@
+.\" Copyright 2026 The FreeBSD Foundation
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" This documentation was written by
+.\" Konstantin Belousov <[email protected]> under sponsorship
+.\" from the FreeBSD Foundation.
+.\"
+.Dd January 26, 2026
+.Dt POSIX_SPAWNATTR_GETPROCDESCP_NP 3
+.Os
+.Sh NAME
+.Nm posix_spawnattr_getprocdesp_np ,
+.Nm posix_spawnattr_setprocdescp_np
+.Nd "get and set the spawn-procdescp attribute of a spawn attributes object"
+.Sh LIBRARY
+.Lb libc
+.Sh SYNOPSIS
+.In spawn.h
+.Ft int
+.Fo posix_spawnattr_getprocdescp_np
+.Fa "const posix_spawnattr_t *restrict attr"
+.Fa "int **restrict fdpp"
+.Fa "int *restrict pdrflagsp"
+.Fc
+.Ft int
+.Fo posix_spawnattr_setprocdescp_np
+.Fa "posix_spawnattr_t *attr"
+.Fa "int *restrict fdp"
+.Fa "int pdrflags"
+.Fc
+.Sh DESCRIPTION
+The
+.Fn posix_spawnattr_getprocdescp_np
+function obtains the value of the spawn-procdescp attribute from the
+attributes object referenced by
+.Fa attr .
+.Pp
+The
+.Fn posix_spawnattr_procdescp_np
+function sets the spawn-procdescp attribute in an initialized attributes
+object referenced by
+.Fa attr .
+.Pp
+The spawn-procdescp attribute provides the location where the child process's
+file descriptor will be stored after a successful spawn.
+Setting the attribute to a non-NULL value implicitly request the creation of
+the file descriptor that references the child process.
+It wiil be created by the
+.Xr pdrfork 2
+system call. which will be used instead of
+.Xr fork/vfork/rfork 2
+when the attribute is set to
+.Va NULL.
+.Pp
+If the attribute is set to a value other then
+.Dv NULL ,
+it must be a valid pointer to a variable of
+.Vt int
+type, where the resulting descriptor will be stored.
+The
+.Fa pdrflags
+argument specifies additional flags that are accepted by the
+.Xr pdfork 2
+system call.
+See its description for the list of the valid flags.
+Note that the
+.Va PD_CLOEXEC
+flag is always set, preventing leakage of the process descriptor
+into the newly created child.
+.Pp
+The default value for the spawn-procdescp attribute is
+.Dv NULL ,
+which means that no process descriptor will be created.
+.Sh RETURN VALUES
+The
+.Fn posix_spawnattr_getprocdescp_np
+and
+.Fn posix_spawnattr_setprocdescp_np
+functions return zero.
+.Sh SEE ALSO
+.Xr posix_spawn 3 ,
+.Xr posix_spawnattr_destroy 3 ,
+.Xr posix_spawnattr_init 3 ,
+.Xr posix_spawnp 3
+.Sh STANDARDS
+The
+.Fn posix_spawnattr_getprocdescp_np
+and
+.Fn posix_spawnattr_setprocdescp_np
+are
+.Fx
+extensions that first appeared in
+.Fx 16.0 .

Reply via email to