git: 0ad5308987d0 - stable/14 - Add POSIX psiginfo(3) call
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 24 Apr 2025 00:29:05 UTC
The branch stable/14 has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=0ad5308987d0a34d49e1c963537759f1b73b3a4e
commit 0ad5308987d0a34d49e1c963537759f1b73b3a4e
Author: Ricardo Branco <rbranco@suse.de>
AuthorDate: 2025-04-16 07:52:13 +0000
Commit: Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2025-04-24 00:27:57 +0000
Add POSIX psiginfo(3) call
PR: 286133
(cherry picked from commit 3b2f0bfc35167724a41c969c1823be6b1ede15ab)
---
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 ee73b8ed492c..844630a8aafc 100644
--- a/include/signal.h
+++ b/include/signal.h
@@ -117,6 +117,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 f9f6f3139379..3e5f6ae8d602 100644
--- a/lib/libc/gen/Makefile.inc
+++ b/lib/libc/gen/Makefile.inc
@@ -487,7 +487,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 group_from_gid.3 \
diff --git a/lib/libc/gen/Symbol.map b/lib/libc/gen/Symbol.map
index 5178ce56da33..2542da299cb1 100644
--- a/lib/libc/gen/Symbol.map
+++ b/lib/libc/gen/Symbol.map
@@ -461,6 +461,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 0fc63418d3f3..b02d23dc16f1 100644
--- a/lib/libc/gen/psignal.3
+++ b/lib/libc/gen/psignal.3
@@ -27,11 +27,12 @@
.\"
.\" @(#)psignal.3 8.2 (Berkeley) 2/27/95
.\"
-.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
@@ -42,6 +43,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
@@ -81,6 +84,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 ,
@@ -106,3 +119,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 f8caf7621e83..eb05b08d2c27 100644
--- a/lib/libc/gen/psignal.c
+++ b/lib/libc/gen/psignal.c
@@ -57,3 +57,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);
+}