diff options
Diffstat (limited to 'mdk-stage1/dietlibc/lib/sigismember.c')
-rw-r--r-- | mdk-stage1/dietlibc/lib/sigismember.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/lib/sigismember.c b/mdk-stage1/dietlibc/lib/sigismember.c new file mode 100644 index 000000000..67a258884 --- /dev/null +++ b/mdk-stage1/dietlibc/lib/sigismember.c @@ -0,0 +1,21 @@ +#define __USE_EXTERN_INLINES 1 +#include <signal.h> + +# define __sigmask(sig) \ + (((unsigned long int) 1) << (((sig) - 1) % (8 * sizeof (unsigned long int)))) + +# define __sigword(sig) (((sig) - 1) / (8 * sizeof (unsigned long int))) + +# define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int))) +typedef struct + { + unsigned long int __val[_SIGSET_NWORDS]; + } __sigset_t; + +int __sigismember(const __sigset_t *set, int signo) { + unsigned long int __mask = __sigmask (signo); + unsigned long int __word = __sigword (signo); + return (set->__val[__word] & __mask); +} + +int sigismember(const sigset_t *env, int signo) __attribute__((weak,alias("__sigismember"))); |