The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/sys/signal.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Copyright (c) 1982, 1986, 1989, 1991, 1993
    3  *      The Regents of the University of California.  All rights reserved.
    4  * (c) UNIX System Laboratories, Inc.
    5  * All or some portions of this file are derived from material licensed
    6  * to the University of California by American Telephone and Telegraph
    7  * Co. or Unix System Laboratories, Inc. and are reproduced herein with
    8  * the permission of UNIX System Laboratories, Inc.
    9  *
   10  * Redistribution and use in source and binary forms, with or without
   11  * modification, are permitted provided that the following conditions
   12  * are met:
   13  * 1. Redistributions of source code must retain the above copyright
   14  *    notice, this list of conditions and the following disclaimer.
   15  * 2. Redistributions in binary form must reproduce the above copyright
   16  *    notice, this list of conditions and the following disclaimer in the
   17  *    documentation and/or other materials provided with the distribution.
   18  * 3. All advertising materials mentioning features or use of this software
   19  *    must display the following acknowledgement:
   20  *      This product includes software developed by the University of
   21  *      California, Berkeley and its contributors.
   22  * 4. Neither the name of the University nor the names of its contributors
   23  *    may be used to endorse or promote products derived from this software
   24  *    without specific prior written permission.
   25  *
   26  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
   27  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   28  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   29  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
   30  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   31  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   32  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   33  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   34  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   35  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   36  * SUCH DAMAGE.
   37  *
   38  *      @(#)signal.h    8.4 (Berkeley) 5/4/95
   39  * $FreeBSD: src/sys/sys/signal.h,v 1.9.4.1 1999/09/05 08:22:54 peter Exp $
   40  */
   41 
   42 #ifndef _SYS_SIGNAL_H_
   43 #define _SYS_SIGNAL_H_
   44 
   45 #include <sys/cdefs.h>
   46 #include <machine/signal.h>     /* sig_atomic_t; trap codes; sigcontext */
   47 
   48 #if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
   49 #define NSIG    32              /* counting 0; could be 33 (mask is 1-32) */
   50 #endif
   51 
   52 #define SIGHUP  1       /* hangup */
   53 #define SIGINT  2       /* interrupt */
   54 #define SIGQUIT 3       /* quit */
   55 #define SIGILL  4       /* illegal instruction (not reset when caught) */
   56 #ifndef _POSIX_SOURCE
   57 #define SIGTRAP 5       /* trace trap (not reset when caught) */
   58 #endif
   59 #define SIGABRT 6       /* abort() */
   60 #ifndef _POSIX_SOURCE
   61 #define SIGIOT  SIGABRT /* compatibility */
   62 #define SIGEMT  7       /* EMT instruction */
   63 #endif
   64 #define SIGFPE  8       /* floating point exception */
   65 #define SIGKILL 9       /* kill (cannot be caught or ignored) */
   66 #ifndef _POSIX_SOURCE
   67 #define SIGBUS  10      /* bus error */
   68 #endif
   69 #define SIGSEGV 11      /* segmentation violation */
   70 #ifndef _POSIX_SOURCE
   71 #define SIGSYS  12      /* non-existent system call invoked */
   72 #endif
   73 #define SIGPIPE 13      /* write on a pipe with no one to read it */
   74 #define SIGALRM 14      /* alarm clock */
   75 #define SIGTERM 15      /* software termination signal from kill */
   76 #ifndef _POSIX_SOURCE
   77 #define SIGURG  16      /* urgent condition on IO channel */
   78 #endif
   79 #define SIGSTOP 17      /* sendable stop signal not from tty */
   80 #define SIGTSTP 18      /* stop signal from tty */
   81 #define SIGCONT 19      /* continue a stopped process */
   82 #define SIGCHLD 20      /* to parent on child stop or exit */
   83 #define SIGTTIN 21      /* to readers pgrp upon background tty read */
   84 #define SIGTTOU 22      /* like TTIN for output if (tp->t_local&LTOSTOP) */
   85 #ifndef _POSIX_SOURCE
   86 #define SIGIO   23      /* input/output possible signal */
   87 #define SIGXCPU 24      /* exceeded CPU time limit */
   88 #define SIGXFSZ 25      /* exceeded file size limit */
   89 #define SIGVTALRM 26    /* virtual time alarm */
   90 #define SIGPROF 27      /* profiling time alarm */
   91 #define SIGWINCH 28     /* window size changes */
   92 #define SIGINFO 29      /* information request */
   93 #endif
   94 #define SIGUSR1 30      /* user defined signal 1 */
   95 #define SIGUSR2 31      /* user defined signal 2 */
   96 
   97 /*-
   98  * Type of a signal handling function.
   99  *
  100  * Language spec sez signal handlers take exactly one arg, even though we
  101  * actually supply three.  Ugh!
  102  *
  103  * We don't try to hide the difference by leaving out the args because
  104  * that would cause warnings about conformant programs.  Nonconformant
  105  * programs can avoid the warnings by casting to (__sighandler_t *) or
  106  * sig_t before calling signal() or assigning to sa_handler or sv_handler.
  107  *
  108  * The kernel should reverse the cast before calling the function.  It
  109  * has no way to do this, but on most machines 1-arg and 3-arg functions
  110  * have the same calling protocol so there is no problem in practice.
  111  * A bit in sa_flags could be used to specify the number of args.
  112  */
  113 typedef void __sighandler_t __P((int));
  114 
  115 #define SIG_DFL         ((__sighandler_t *)0)
  116 #define SIG_IGN         ((__sighandler_t *)1)
  117 #define SIG_ERR         ((__sighandler_t *)-1)
  118 
  119 #ifndef _ANSI_SOURCE
  120 typedef unsigned int sigset_t;
  121 
  122 /*
  123  * Signal vector "template" used in sigaction call.
  124  */
  125 struct  sigaction {
  126         __sighandler_t *sa_handler;     /* signal handler */
  127         sigset_t sa_mask;               /* signal mask to apply */
  128         int     sa_flags;               /* see signal options below */
  129 };
  130 #ifndef _POSIX_SOURCE
  131 #define SA_ONSTACK      0x0001  /* take signal on signal stack */
  132 #define SA_RESTART      0x0002  /* restart system call on signal return */
  133 #define SA_RESETHAND    0x0004  /* reset to SIG_DFL when taking signal */
  134 #define SA_NODEFER      0x0010  /* don't mask the signal we're delivering */
  135 #ifdef COMPAT_SUNOS
  136 #define SA_USERTRAMP    0x0100  /* do not bounce off kernel's sigtramp */
  137 #endif
  138 #endif  /* _POSIX_SOURCE */
  139 #define SA_NOCLDSTOP    0x0008  /* do not generate SIGCHLD on child stop */
  140 
  141 /*
  142  * Flags for sigprocmask:
  143  */
  144 #define SIG_BLOCK       1       /* block specified signal set */
  145 #define SIG_UNBLOCK     2       /* unblock specified signal set */
  146 #define SIG_SETMASK     3       /* set specified signal set */
  147 
  148 #ifndef _POSIX_SOURCE
  149 typedef __sighandler_t  *sig_t; /* type of pointer to a signal function */
  150 
  151 /*
  152  * Structure used in sigaltstack call.
  153  */
  154 struct  sigaltstack {
  155         char    *ss_sp;                 /* signal stack base */
  156         int     ss_size;                /* signal stack length */
  157         int     ss_flags;               /* SS_DISABLE and/or SS_ONSTACK */
  158 };
  159 #define SS_ONSTACK      0x0001  /* take signal on alternate stack */
  160 #define SS_DISABLE      0x0004  /* disable taking signals on alternate stack */
  161 #define MINSIGSTKSZ     8192                    /* minimum allowable stack */
  162 #define SIGSTKSZ        (MINSIGSTKSZ + 32768)   /* recommended stack size */
  163 
  164 /*
  165  * 4.3 compatibility:
  166  * Signal vector "template" used in sigvec call.
  167  */
  168 struct  sigvec {
  169         __sighandler_t *sv_handler;     /* signal handler */
  170         int     sv_mask;                /* signal mask to apply */
  171         int     sv_flags;               /* see signal options below */
  172 };
  173 
  174 #define SV_ONSTACK      SA_ONSTACK
  175 #define SV_INTERRUPT    SA_RESTART      /* same bit, opposite sense */
  176 #define SV_RESETHAND    SA_RESETHAND
  177 #define SV_NODEFER      SA_NODEFER
  178 #define SV_NOCLDSTOP    SA_NOCLDSTOP
  179 #define sv_onstack sv_flags     /* isn't compatibility wonderful! */
  180 
  181 /*
  182  * Structure used in sigstack call.
  183  */
  184 struct  sigstack {
  185         char    *ss_sp;                 /* signal stack pointer */
  186         int     ss_onstack;             /* current status */
  187 };
  188 
  189 /*
  190  * Macro for converting signal number to a mask suitable for
  191  * sigblock().
  192  */
  193 #define sigmask(m)      (1 << ((m)-1))
  194 
  195 #define BADSIG          SIG_ERR
  196 
  197 #endif  /* !_POSIX_SOURCE */
  198 #endif  /* !_ANSI_SOURCE */
  199 
  200 /*
  201  * For historical reasons; programs expect signal's return value to be
  202  * defined by <sys/signal.h>.
  203  */
  204 __BEGIN_DECLS
  205 __sighandler_t *signal __P((int, __sighandler_t *));
  206 __END_DECLS
  207 
  208 #endif  /* !_SYS_SIGNAL_H_ */

Cache object: 2d91dcdb6bce6dea4800a6c2eb2834e9


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.