git: 3b2f0bfc3516 - main - Add POSIX psiginfo(3) call

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Thu, 17 Apr 2025 15:20:00 UTC
The branch main has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=3b2f0bfc35167724a41c969c1823be6b1ede15ab

commit 3b2f0bfc35167724a41c969c1823be6b1ede15ab
Author:     Ricardo Branco <rbranco@suse.de>
AuthorDate: 2025-04-16 07:52:13 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2025-04-17 15:19:44 +0000

    Add POSIX psiginfo(3) call
    
    Signed-off-by: Ricardo Branco <rbranco@suse.de>
    PR:     286133
    MFC after:       1 week
    Github PR:       https://github.com/freebsd/freebsd-src/pull/1666
---
 include/signal.h          |  1 +
 lib/libc/gen/Makefile.inc |  3 ++-
 lib/libc/gen/Symbol.map   |  1 +
 lib/libc/gen/psignal.3    | 22 +++++++++++++++++++++-
 lib/libc/gen/psignal.c    |  6 ++++++
 5 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/include/signal.h b/include/signal.h
index 388e164d7943..c1d341f317f4 100644
--- a/include/signal.h
+++ b/include/signal.h
@@ -115,6 +115,7 @@ int	siginterrupt(int, int);
 #endif
 
 #if __POSIX_VISIBLE >= 200809
+void	psiginfo(const siginfo_t *, const char *);
 void	psignal(int, const char *);
 #endif
 
diff --git a/lib/libc/gen/Makefile.inc b/lib/libc/gen/Makefile.inc
index 9b92e52cdfad..a8308a057b05 100644
--- a/lib/libc/gen/Makefile.inc
+++ b/lib/libc/gen/Makefile.inc
@@ -465,7 +465,8 @@ MLINKS+=posix_spawn.3 posix_spawnp.3 \
 	posix_spawnattr_getsigdefault.3 posix_spawnattr_setsigdefault.3 \
 	posix_spawnattr_getsigmask.3 posix_spawnattr_setsigmask.3 \
 	posix_spawnattr_init.3 posix_spawnattr_destroy.3
-MLINKS+=psignal.3 strsignal.3 \
+MLINKS+=psignal.3 psiginfo.3 \
+	psignal.3 strsignal.3 \
 	psignal.3 sys_siglist.3 \
 	psignal.3 sys_signame.3
 MLINKS+=pwcache.3 gid_from_group.3 \
diff --git a/lib/libc/gen/Symbol.map b/lib/libc/gen/Symbol.map
index ca3974e6b747..21b66acba213 100644
--- a/lib/libc/gen/Symbol.map
+++ b/lib/libc/gen/Symbol.map
@@ -458,6 +458,7 @@ FBSD_1.8 {
 	aio_read2;
 	aio_write2;
 	execvpe;
+	psiginfo;
 	rtld_get_var;
 	rtld_set_var;
 };
diff --git a/lib/libc/gen/psignal.3 b/lib/libc/gen/psignal.3
index cd3cef0b44a9..605c3cf2d8fe 100644
--- a/lib/libc/gen/psignal.3
+++ b/lib/libc/gen/psignal.3
@@ -25,11 +25,12 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd May 30, 2016
+.Dd Apr 16, 2025
 .Dt PSIGNAL 3
 .Os
 .Sh NAME
 .Nm psignal ,
+.Nm psiginfo ,
 .Nm strsignal ,
 .Nm sys_siglist ,
 .Nm sys_signame
@@ -40,6 +41,8 @@
 .In signal.h
 .Ft void
 .Fn psignal "int sig" "const char *s"
+.Ft void
+.Fn psiginfo "const siginfo_t *si" "const char *s"
 .Vt extern const char * const sys_siglist[] ;
 .Vt extern const char * const sys_signame[] ;
 .In string.h
@@ -79,6 +82,16 @@ the string
 .Dq "Unknown signal"
 is produced.
 .Pp
+The
+.Fn psiginfo
+function is similar to
+.Fn psignal ,
+except that the signal number information is taken from the
+.Fa si
+argument which is a
+.Vt siginfo_t
+structure.
+.Pp
 The message strings can be accessed directly
 through the external array
 .Va sys_siglist ,
@@ -104,3 +117,10 @@ The
 .Fn psignal
 function appeared in
 .Bx 4.2 .
+The
+.Fn psiginfo
+function appeared in
+.Fx 15.0 ,
+.Nx 6.0 ,
+and
+.Dx 4.1 .
diff --git a/lib/libc/gen/psignal.c b/lib/libc/gen/psignal.c
index ab044f683d86..291a6a9337a0 100644
--- a/lib/libc/gen/psignal.c
+++ b/lib/libc/gen/psignal.c
@@ -55,3 +55,9 @@ psignal(int sig, const char *s)
 	(void)_write(STDERR_FILENO, c, strlen(c));
 	(void)_write(STDERR_FILENO, "\n", 1);
 }
+
+void
+psiginfo(const siginfo_t *si, const char *s)
+{
+	psignal(si->si_signo, s);
+}