summaryrefslogtreecommitdiffstats
path: root/contrib/netbsd-tests/lib/libc/sys/t_sigqueue.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/netbsd-tests/lib/libc/sys/t_sigqueue.c')
-rw-r--r--contrib/netbsd-tests/lib/libc/sys/t_sigqueue.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/contrib/netbsd-tests/lib/libc/sys/t_sigqueue.c b/contrib/netbsd-tests/lib/libc/sys/t_sigqueue.c
index f9e0c63..ac7d3ad 100644
--- a/contrib/netbsd-tests/lib/libc/sys/t_sigqueue.c
+++ b/contrib/netbsd-tests/lib/libc/sys/t_sigqueue.c
@@ -46,7 +46,11 @@ static void handler(int, siginfo_t *, void *);
static int value;
static void
+#if defined(__FreeBSD__)
+handler(int signo __unused, siginfo_t *info __unused, void *data __unused)
+#else
handler(int signo, siginfo_t *info, void *data)
+#endif
{
value = info->si_value.sival_int;
kill(0, SIGINFO);
@@ -72,7 +76,15 @@ ATF_TC_BODY(sigqueue_basic, tc)
sv.sival_int = VALUE;
+#if defined(__FreeBSD__)
+ /*
+ * From kern_sig.c:
+ * Specification says sigqueue can only send signal to single process.
+ */
+ if (sigqueue(getpid(), SIGUSR1, sv) != 0)
+#else
if (sigqueue(0, SIGUSR1, sv) != 0)
+#endif
atf_tc_fail("sigqueue failed");
sched_yield();
OpenPOWER on IntegriCloud