mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			40 lines
		
	
	
		
			902 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			902 B
		
	
	
	
		
			C
		
	
	
	
| /* Version of sigsetmask.c
 | |
|    Written by Steve Chamberlain (sac@cygnus.com).
 | |
|    Contributed by Cygnus Support.
 | |
|    This file is in the public doamin. */
 | |
| 
 | |
| /*
 | |
| 
 | |
| @deftypefn Supplemental int sigsetmask (int @var{set})
 | |
| 
 | |
| Sets the signal mask to the one provided in @var{set} and returns
 | |
| the old mask (which, for libiberty's implementation, will always
 | |
| be the value @code{1}).
 | |
| 
 | |
| @end deftypefn
 | |
| 
 | |
| */
 | |
| 
 | |
| #include <ansidecl.h>
 | |
| /* Including <sys/types.h> seems to be needed by ISC. */
 | |
| #include <sys/types.h>
 | |
| #include <signal.h>
 | |
| 
 | |
| extern void abort (void) ATTRIBUTE_NORETURN;
 | |
| 
 | |
| #ifdef SIG_SETMASK
 | |
| int
 | |
| sigsetmask (int set)
 | |
| {
 | |
|     sigset_t new_sig;
 | |
|     sigset_t old_sig;
 | |
|     
 | |
|     sigemptyset (&new_sig);
 | |
|     if (set != 0) {
 | |
|       abort();	/* FIXME, we don't know how to translate old mask to new */
 | |
|     }
 | |
|     sigprocmask(SIG_SETMASK, &new_sig, &old_sig);
 | |
|     return 1;	/* FIXME, we always return 1 as old value.  */
 | |
| }
 | |
| #endif
 |