1#include <errno.h>
2#include <signal.h>
3
4#include "threads_impl.h"
5
6int pthread_sigmask(int how, const sigset_t* restrict set, sigset_t* restrict old) {
7    if ((unsigned)how - SIG_BLOCK > 2U)
8        return EINVAL;
9    if (old) {
10        if (sizeof old->__bits[0] == 8) {
11            old->__bits[0] &= ~0x380000000ULL;
12        } else {
13            old->__bits[0] &= ~0x80000000UL;
14            old->__bits[1] &= ~0x3UL;
15        }
16    }
17    return 0;
18}
19