git: 3b2f0bfc3516 - main - Add POSIX psiginfo(3) call
- Reply: Warner Losh : "Re: git: 3b2f0bfc3516 - main - Add POSIX psiginfo(3) call"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
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);
+}