remove cruft for supposedly-buggy clang from or1k & microblaze syscall_arch
[musl.git] / src / signal / block.c
blobd7f6100134572aeaa42131dc001ff287ffc9fbbd
1 #include "pthread_impl.h"
2 #include "syscall.h"
3 #include <signal.h>
5 static const unsigned long all_mask[] = {
6 #if ULONG_MAX == 0xffffffff && _NSIG == 129
7 -1UL, -1UL, -1UL, -1UL
8 #elif ULONG_MAX == 0xffffffff
9 -1UL, -1UL
10 #else
11 -1UL
12 #endif
15 static const unsigned long app_mask[] = {
16 #if ULONG_MAX == 0xffffffff
17 #if _NSIG == 65
18 0x7fffffff, 0xfffffffc
19 #else
20 0x7fffffff, 0xfffffffc, -1UL, -1UL
21 #endif
22 #else
23 #if _NSIG == 65
24 0xfffffffc7fffffff
25 #else
26 0xfffffffc7fffffff, -1UL
27 #endif
28 #endif
31 void __block_all_sigs(void *set)
33 __syscall(SYS_rt_sigprocmask, SIG_BLOCK, &all_mask, set, _NSIG/8);
36 void __block_app_sigs(void *set)
38 __syscall(SYS_rt_sigprocmask, SIG_BLOCK, &app_mask, set, _NSIG/8);
41 void __restore_sigs(void *set)
43 __syscall(SYS_rt_sigprocmask, SIG_SETMASK, set, 0, _NSIG/8);