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