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