xref: /plan9-contrib/sys/src/ape/lib/ap/plan9/sigprocmask.c (revision 3e12c5d1bb89fc02707907988834ef147769ddaf)
1 #include "lib.h"
2 #include <signal.h>
3 #include <errno.h>
4 
5 sigset_t _psigblocked;
6 
7 int
sigprocmask(int how,sigset_t * set,sigset_t * oset)8 sigprocmask(int how, sigset_t *set, sigset_t *oset)
9 {
10 	if(oset)
11 		*oset = _psigblocked;
12 	if(how==SIG_BLOCK)
13 		_psigblocked |= *set;
14 	else if(how==SIG_UNBLOCK)
15 		_psigblocked &= ~*set;
16 	else if(how==SIG_SETMASK)
17 		_psigblocked = *set;
18 	else{
19 		errno = EINVAL;
20 		return -1;
21 	}
22 	return 0;
23 }
24