diff options
| author | Jakob Kaivo <jkk@ung.org> | 2020-08-13 19:31:50 -0400 |
|---|---|---|
| committer | Jakob Kaivo <jkk@ung.org> | 2020-08-13 19:31:50 -0400 |
| commit | 17130d83b48ce257ed9bc5bb2898d44c01ab82c0 (patch) | |
| tree | 24b70d54588065d0ef1316c241d0fb45770db711 /src/signal/sigismember.c | |
| parent | c7c53812b45f2ba0689fc5c797292d188f66c3b2 (diff) | |
basic implementation
Diffstat (limited to 'src/signal/sigismember.c')
| -rw-r--r-- | src/signal/sigismember.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/signal/sigismember.c b/src/signal/sigismember.c index 5e21cb5c..6d3c1512 100644 --- a/src/signal/sigismember.c +++ b/src/signal/sigismember.c @@ -1,9 +1,16 @@ #include "sys/types.h" #include <signal.h> +#include "limits.h" int sigismember(const sigset_t * set, int signo) { - (void)set; (void)signo; + /* TODO: fail with EINVAL if signo is not a valid signal number */ + + size_t byte = signo % CHAR_BIT; + int bit = signo / CHAR_BIT; + if (set->__bits[byte] & (1 << bit)) { + return 1; + } return 0; } /* |
