modernc.org/cc@v1.0.1/v2/headers/linux_386/usr/include/i386-linux-gnu/bits/sigaction.h (about)

     1  /* The proper definitions for Linux's sigaction.
     2     Copyright (C) 1993-2018 Free Software Foundation, Inc.
     3     This file is part of the GNU C Library.
     4  
     5     The GNU C Library is free software; you can redistribute it and/or
     6     modify it under the terms of the GNU Lesser General Public
     7     License as published by the Free Software Foundation; either
     8     version 2.1 of the License, or (at your option) any later version.
     9  
    10     The GNU C Library is distributed in the hope that it will be useful,
    11     but WITHOUT ANY WARRANTY; without even the implied warranty of
    12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    13     Lesser General Public License for more details.
    14  
    15     You should have received a copy of the GNU Lesser General Public
    16     License along with the GNU C Library; if not, see
    17     <http://www.gnu.org/licenses/>.  */
    18  
    19  #ifndef _SIGNAL_H
    20  # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
    21  #endif
    22  
    23  /* Structure describing the action to be taken when a signal arrives.  */
    24  struct sigaction {
    25  	/* Signal handler.  */
    26  #if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED
    27  	union {
    28  		/* Used if SA_SIGINFO is not set.  */
    29  		__sighandler_t sa_handler;
    30  		/* Used if SA_SIGINFO is set.  */
    31  		void (*sa_sigaction) (int, siginfo_t *, void *);
    32  	} __sigaction_handler;
    33  # define sa_handler	__sigaction_handler.sa_handler
    34  # define sa_sigaction	__sigaction_handler.sa_sigaction
    35  #else
    36  	__sighandler_t sa_handler;
    37  #endif
    38  
    39  	/* Additional set of signals to be blocked.  */
    40  	__sigset_t sa_mask;
    41  
    42  	/* Special flags.  */
    43  	int sa_flags;
    44  
    45  	/* Restore handler.  */
    46  	void (*sa_restorer) (void);
    47  };
    48  
    49  /* Bits in `sa_flags'.  */
    50  #define	SA_NOCLDSTOP  1		/* Don't send SIGCHLD when children stop.  */
    51  #define SA_NOCLDWAIT  2		/* Don't create zombie on child death.  */
    52  #define SA_SIGINFO    4		/* Invoke signal-catching function with
    53  				   three arguments instead of one.  */
    54  #if defined __USE_XOPEN_EXTENDED || defined __USE_MISC
    55  # define SA_ONSTACK   0x08000000	/* Use signal stack by using `sa_restorer'. */
    56  #endif
    57  #if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
    58  # define SA_RESTART   0x10000000	/* Restart syscall on signal return.  */
    59  # define SA_NODEFER   0x40000000	/* Don't automatically block the signal when
    60  					   its handler is being executed.  */
    61  # define SA_RESETHAND 0x80000000	/* Reset to SIG_DFL on entry to handler.  */
    62  #endif
    63  #ifdef __USE_MISC
    64  # define SA_INTERRUPT 0x20000000	/* Historical no-op.  */
    65  
    66  /* Some aliases for the SA_ constants.  */
    67  # define SA_NOMASK    SA_NODEFER
    68  # define SA_ONESHOT   SA_RESETHAND
    69  # define SA_STACK     SA_ONSTACK
    70  #endif
    71  
    72  /* Values for the HOW argument to `sigprocmask'.  */
    73  #define	SIG_BLOCK     0		/* Block signals.  */
    74  #define	SIG_UNBLOCK   1		/* Unblock signals.  */
    75  #define	SIG_SETMASK   2		/* Set the set of blocked signals.  */