summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/lib/sigismember.c
blob: 67a25888484da2f5d333e7bc5c3ff263579292ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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")));