From: Sascha Wildner Date: Thu, 1 Jan 2015 20:21:16 +0000 (+0100) Subject: libc: Add the psiginfo() function. X-Git-Tag: v4.2.0rc~1203 X-Git-Url: https://gitweb.dragonflybsd.org/~tuxillo/dragonfly.git/commitdiff_plain/f22fc87716268dd838b7bd7d3c4815ba80fb2b2b libc: Add the psiginfo() function. It is required by _POSIX_C_SOURCE == 200809. --- diff --git a/include/signal.h b/include/signal.h index ab7695529b..cca459bccc 100644 --- a/include/signal.h +++ b/include/signal.h @@ -89,6 +89,7 @@ int sigwaitinfo(const sigset_t * __restrict, siginfo_t * __restrict); #endif #if __POSIX_VISIBLE >= 200809 +void psiginfo(const siginfo_t *, const char *); void psignal(unsigned int, const char *); /* XXX signum should be int */ #endif diff --git a/lib/libc/gen/Makefile.inc b/lib/libc/gen/Makefile.inc index 15b5746fd6..b40c13abcd 100644 --- a/lib/libc/gen/Makefile.inc +++ b/lib/libc/gen/Makefile.inc @@ -168,7 +168,8 @@ MLINKS+=posix_spawnattr_getschedpolicy.3 posix_spawnattr_setschedpolicy.3 MLINKS+=posix_spawnattr_getsigdefault.3 posix_spawnattr_setsigdefault.3 MLINKS+=posix_spawnattr_getsigmask.3 posix_spawnattr_setsigmask.3 MLINKS+=posix_spawnattr_init.3 posix_spawnattr_destroy.3 -MLINKS+=psignal.3 strsignal.3 psignal.3 sys_nsig.3 psignal.3 sys_siglist.3 \ +MLINKS+=psignal.3 psiginfo.3 \ + psignal.3 strsignal.3 psignal.3 sys_nsig.3 psignal.3 sys_siglist.3 \ psignal.3 sys_signame.3 MLINKS+=pwcache.3 group_from_gid.3 pwcache.3 user_from_uid.3 MLINKS+=rand48.3 drand48.3 rand48.3 erand48.3 \ diff --git a/lib/libc/gen/psignal.3 b/lib/libc/gen/psignal.3 index 8bedcec1f4..95f3120a5c 100644 --- a/lib/libc/gen/psignal.3 +++ b/lib/libc/gen/psignal.3 @@ -28,11 +28,12 @@ .\" @(#)psignal.3 8.2 (Berkeley) 2/27/95 .\" $FreeBSD: src/lib/libc/gen/psignal.3,v 1.10.2.5 2003/03/15 15:11:05 trhodes Exp $ .\" -.Dd February 27, 1995 +.Dd January 2, 2015 .Dt PSIGNAL 3 .Os .Sh NAME .Nm psignal , +.Nm psiginfo , .Nm strsignal , .Nm sys_siglist , .Nm sys_signame , @@ -44,6 +45,8 @@ .In signal.h .Ft void .Fn psignal "unsigned 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[] ; .Vt extern const int sys_nsig ; @@ -84,6 +87,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 , @@ -120,3 +133,7 @@ The .Fn psignal function appeared in .Bx 4.2 . +The +.Fn psiginfo +function appeared in +.Dx 4.1 . diff --git a/lib/libc/gen/psignal.c b/lib/libc/gen/psignal.c index 21a451f14e..0fc5ddff96 100644 --- a/lib/libc/gen/psignal.c +++ b/lib/libc/gen/psignal.c @@ -31,7 +31,6 @@ * SUCH DAMAGE. * * $FreeBSD: src/lib/libc/gen/psignal.c,v 1.5 2000/01/27 23:06:19 jasone Exp $ - * $DragonFly: src/lib/libc/gen/psignal.c,v 1.5 2005/11/13 00:07:42 swildner Exp $ * * @(#)psignal.c 8.1 (Berkeley) 6/4/93 */ @@ -62,3 +61,9 @@ psignal(unsigned int sig, const char *s) _write(STDERR_FILENO, c, strlen(c)); _write(STDERR_FILENO, "\n", 1); } + +void +psiginfo(const siginfo_t *si, const char *s) +{ + psignal(si->si_signo, s); +}