1*4fee23f9Smrg /* Version of sigsetmask.c 2*4fee23f9Smrg Written by Steve Chamberlain (sac@cygnus.com). 3*4fee23f9Smrg Contributed by Cygnus Support. 4*4fee23f9Smrg This file is in the public doamin. */ 5*4fee23f9Smrg 6*4fee23f9Smrg /* 7*4fee23f9Smrg 8*4fee23f9Smrg @deftypefn Supplemental int sigsetmask (int @var{set}) 9*4fee23f9Smrg 10*4fee23f9Smrg Sets the signal mask to the one provided in @var{set} and returns 11*4fee23f9Smrg the old mask (which, for libiberty's implementation, will always 12*4fee23f9Smrg be the value @code{1}). 13*4fee23f9Smrg 14*4fee23f9Smrg @end deftypefn 15*4fee23f9Smrg 16*4fee23f9Smrg */ 17*4fee23f9Smrg 18*4fee23f9Smrg #include <ansidecl.h> 19*4fee23f9Smrg /* Including <sys/types.h> seems to be needed by ISC. */ 20*4fee23f9Smrg #include <sys/types.h> 21*4fee23f9Smrg #include <signal.h> 22*4fee23f9Smrg 23*4fee23f9Smrg extern void abort (void) ATTRIBUTE_NORETURN; 24*4fee23f9Smrg 25*4fee23f9Smrg #ifdef SIG_SETMASK 26*4fee23f9Smrg int sigsetmask(int set)27*4fee23f9Smrgsigsetmask (int set) 28*4fee23f9Smrg { 29*4fee23f9Smrg sigset_t new_sig; 30*4fee23f9Smrg sigset_t old_sig; 31*4fee23f9Smrg 32*4fee23f9Smrg sigemptyset (&new_sig); 33*4fee23f9Smrg if (set != 0) { 34*4fee23f9Smrg abort(); /* FIXME, we don't know how to translate old mask to new */ 35*4fee23f9Smrg } 36*4fee23f9Smrg sigprocmask(SIG_SETMASK, &new_sig, &old_sig); 37*4fee23f9Smrg return 1; /* FIXME, we always return 1 as old value. */ 38*4fee23f9Smrg } 39*4fee23f9Smrg #endif 40