summaryrefslogtreecommitdiff
path: root/src/regress/lib/libc/sys/t_select.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/regress/lib/libc/sys/t_select.c')
-rw-r--r--src/regress/lib/libc/sys/t_select.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/regress/lib/libc/sys/t_select.c b/src/regress/lib/libc/sys/t_select.c
index 94ff3d3410..b10fe87495 100644
--- a/src/regress/lib/libc/sys/t_select.c
+++ b/src/regress/lib/libc/sys/t_select.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: t_select.c,v 1.1.1.1 2019/11/19 19:57:04 bluhm Exp $ */ 1/* $OpenBSD: t_select.c,v 1.2 2020/11/09 23:18:51 bluhm Exp $ */
2/* $NetBSD: t_select.c,v 1.4 2017/01/13 21:18:33 christos Exp $ */ 2/* $NetBSD: t_select.c,v 1.4 2017/01/13 21:18:33 christos Exp $ */
3 3
4/*- 4/*-
@@ -76,10 +76,18 @@ prmask(const sigset_t *m, char *buf, size_t len)
76 buf[0] = '0'; 76 buf[0] = '0';
77 buf[1] = 'x'; 77 buf[1] = 'x';
78#define N(p, a) (((p) >> ((a) * 4)) & 0xf) 78#define N(p, a) (((p) >> ((a) * 4)) & 0xf)
79 /* Adjusted for OpenBSD, on NetBSD sigset_t is a struct */ 79#ifdef __OpenBSD__
80 /* On NetBSD sigset_t is a struct */
80 uint32_t p = (*m); 81 uint32_t p = (*m);
81 for (size_t k = sizeof(p); k > 0; k--) 82 for (size_t k = sizeof(p); k > 0; k--)
82 buf[j++] = xtoa(N(p, k - 1)); 83 buf[j++] = xtoa(N(p, k - 1));
84#else
85 for (size_t i = __arraycount(m->__bits); i > 0; i--) {
86 uint32_t p = m->__bits[i - 1];
87 for (size_t k = sizeof(p); k > 0; k--)
88 buf[j++] = xtoa(N(p, k - 1));
89 }
90#endif
83 buf[j] = '\0'; 91 buf[j] = '\0';
84 return buf; 92 return buf;
85} 93}