xref: /onnv-gate/usr/src/lib/libshell/common/features/sigfeatures (revision 8462:6e341f5569ba)
14887Schinlib	sigblock,sigrelse,sigsetmask,sigprocmask,sigvec
24887Schintyp	sigset_t	ast.h signal.h
34887Schinmem	sigvec.sv_mask	signal.h
44887Schincat{
54887Schin	#ifndef _mem_sigvec_sv_mask
64887Schin	#   undef _lib_sigvec
74887Schin	#endif
84887Schin	#ifdef _lib_sigprocmask
94887Schin	#    define sh_sigaction(s,action) do { sigset_t ss;\
10*8462SApril.Chin@Sun.COM				sigemptyset(&ss); \
11*8462SApril.Chin@Sun.COM				if(s) sigaddset(&ss,(s)); \
124887Schin				sigprocmask(action,&ss,0); \
134887Schin				}while(0)
144887Schin	#    define sigrelease(s)	sh_sigaction(s,SIG_UNBLOCK)
154887Schin	#    define sigblock(s)	 	sh_sigaction(s,SIG_BLOCK)
164887Schin	#    define sig_begin()		sh_sigaction(0,SIG_SETMASK)
174887Schin	#else
184887Schin	#   ifndef _lib_sigblock
194887Schin	#	define sigblock(s)
204887Schin	#   endif
214887Schin	#   ifdef _lib_sigsetmask
224887Schin	#       define sigrelease(s)  sigsetmask(0)
234887Schin	#       define sig_begin()    sigsetmask(0)
244887Schin	#   else
254887Schin	#	ifdef _lib_sigrelse
264887Schin	#	    define sigrelease	sigrelse
274887Schin	#	    define sig_begin()
284887Schin	#	else
294887Schin	#	    define sig_begin()		(0)
304887Schin	#	    define sigrelease(s)	(0)
314887Schin	#	endif /* _lib_sigrelse */
324887Schin	#    endif /* _lib_sigsetmask */
334887Schin	#endif /* _lib_sigprocmask */
344887Schin}end
354887Schintst	output{
364887Schin	#include <signal.h>
374887Schin	int main()
384887Schin	{
394887Schin	#ifdef SIGRTMIN
404887Schin		printf("#undef	_SIGRTMIN\n");
414887Schin		printf("#define _SIGRTMIN	%d\n", SIGRTMIN);
424887Schin	#endif
434887Schin	#ifdef SIGRTMAX
444887Schin		printf("#undef	_SIGRTMAX\n");
454887Schin		printf("#define _SIGRTMAX	%d\n", SIGRTMAX);
464887Schin	#endif
474887Schin		return 0;
484887Schin	}
494887Schin}end
50