| 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 |