(linenum→info "unix/slp.c:2238")

glibc/2.7/bits/sigaction.h

    1: /* Copyright (C) 1991,92,96,97,98,2001 Free Software Foundation, Inc.
    2:    This file is part of the GNU C Library.
    3: 
    4:    The GNU C Library is free software; you can redistribute it and/or
    5:    modify it under the terms of the GNU Lesser General Public
    6:    License as published by the Free Software Foundation; either
    7:    version 2.1 of the License, or (at your option) any later version.
    8: 
    9:    The GNU C Library is distributed in the hope that it will be useful,
   10:    but WITHOUT ANY WARRANTY; without even the implied warranty of
   11:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   12:    Lesser General Public License for more details.
   13: 
   14:    You should have received a copy of the GNU Lesser General Public
   15:    License along with the GNU C Library; if not, write to the Free
   16:    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
   17:    02111-1307 USA.  */
   18: 
   19: #ifndef _SIGNAL_H
   20: # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
   21: #endif
   22: 
   23: /* These definitions match those used by the 4.4 BSD kernel.
   24:    If the operating system has a `sigaction' system call that correctly
   25:    implements the POSIX.1 behavior, there should be a system-dependent
   26:    version of this file that defines `struct sigaction' and the `SA_*'
   27:    constants appropriately.  */
   28: 
   29: /* Structure describing the action to be taken when a signal arrives.  */
   30: struct sigaction
   31:   {
   32:     /* Signal handler.  */
   33: #ifdef __USE_POSIX199309
   34:     union
   35:       {
   36:         /* Used if SA_SIGINFO is not set.  */
   37:         __sighandler_t sa_handler;
   38:         /* Used if SA_SIGINFO is set.  */
   39:         void (*sa_sigaction) (int, siginfo_t *, void *);
   40:       }
   41:     __sigaction_handler;
   42: # define sa_handler     __sigaction_handler.sa_handler
   43: # define sa_sigaction   __sigaction_handler.sa_sigaction
   44: #else
   45:     __sighandler_t sa_handler;
   46: #endif
   47: 
   48:     /* Additional set of signals to be blocked.  */
   49:     __sigset_t sa_mask;
   50: 
   51:     /* Special flags.  */
   52:     int sa_flags;
   53:   };
   54: 
   55: /* Bits in `sa_flags'.  */
   56: #if defined __USE_UNIX98 || defined __USE_MISC
   57: # define SA_ONSTACK     0x0001      /* Take signal on signal stack.  */
   58: # define SA_RESTART     0x0002      /* Restart syscall on signal return.  */
   59: # define SA_NODEFER     0x0010      /* Don't automatically block the signal when
   60:                                     its handler is being executed.  */
   61: # define SA_RESETHAND   0x0004    /* Reset to SIG_DFL on entry to handler.  */
   62: #endif
   63: #define SA_NOCLDSTOP    0x0008     /* Don't send SIGCHLD when children stop.  */
   64: 
   65: #ifdef __USE_MISC
   66: # define SA_INTERRUPT   0 /* Historical no-op ("not SA_RESTART").  */
   67: 
   68: /* Some aliases for the SA_ constants.  */
   69: # define SA_NOMASK    SA_NODEFER
   70: # define SA_ONESHOT   SA_RESETHAND
   71: # define SA_STACK     SA_ONSTACK
   72: #endif
   73: 
   74: 
   75: /* Values for the HOW argument to `sigprocmask'.  */
   76: #define SIG_BLOCK       1     /* Block signals.  */
   77: #define SIG_UNBLOCK     2   /* Unblock signals.  */
   78: #define SIG_SETMASK     3   /* Set the set of blocked signals.  */
Syntax (Markdown)