1*4887Schinlib	sigblock,sigrelse,sigsetmask,sigprocmask,sigvec
2*4887Schintyp	sigset_t	ast.h signal.h
3*4887Schinmem	sigvec.sv_mask	signal.h
4*4887Schincat{
5*4887Schin	#ifndef _mem_sigvec_sv_mask
6*4887Schin	#   undef _lib_sigvec
7*4887Schin	#endif
8*4887Schin	#ifdef _lib_sigprocmask
9*4887Schin	#    define sh_sigaction(s,action) do { sigset_t ss;\
10*4887Schin				sigemptyset(&ss);\
11*4887Schin				sigaddset(&ss,(s));\
12*4887Schin				sigprocmask(action,&ss,0); \
13*4887Schin				}while(0)
14*4887Schin	#    define sigrelease(s)	sh_sigaction(s,SIG_UNBLOCK)
15*4887Schin	#    define sigblock(s)	 	sh_sigaction(s,SIG_BLOCK)
16*4887Schin	#    define sig_begin()		sh_sigaction(0,SIG_SETMASK)
17*4887Schin	#else
18*4887Schin	#   ifndef _lib_sigblock
19*4887Schin	#	define sigblock(s)
20*4887Schin	#   endif
21*4887Schin	#   ifdef _lib_sigsetmask
22*4887Schin	#       define sigrelease(s)  sigsetmask(0)
23*4887Schin	#       define sig_begin()    sigsetmask(0)
24*4887Schin	#   else
25*4887Schin	#	ifdef _lib_sigrelse
26*4887Schin	#	    define sigrelease	sigrelse
27*4887Schin	#	    define sig_begin()
28*4887Schin	#	else
29*4887Schin	#	    define sig_begin()		(0)
30*4887Schin	#	    define sigrelease(s)	(0)
31*4887Schin	#	endif /* _lib_sigrelse */
32*4887Schin	#    endif /* _lib_sigsetmask */
33*4887Schin	#endif /* _lib_sigprocmask */
34*4887Schin}end
35*4887Schintst	output{
36*4887Schin	#include <signal.h>
37*4887Schin	int main()
38*4887Schin	{
39*4887Schin	#ifdef SIGRTMIN
40*4887Schin		printf("#undef	_SIGRTMIN\n");
41*4887Schin		printf("#define _SIGRTMIN	%d\n", SIGRTMIN);
42*4887Schin	#endif
43*4887Schin	#ifdef SIGRTMAX
44*4887Schin		printf("#undef	_SIGRTMAX\n");
45*4887Schin		printf("#define _SIGRTMAX	%d\n", SIGRTMAX);
46*4887Schin	#endif
47*4887Schin		return 0;
48*4887Schin	}
49*4887Schin}end
50