diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/generic/bits/signum.h | 63 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/bits/sigaction.h | 8 |
2 files changed, 43 insertions, 28 deletions
diff --git a/sysdeps/generic/bits/signum.h b/sysdeps/generic/bits/signum.h index 6b4693f64c..e750125bda 100644 --- a/sysdeps/generic/bits/signum.h +++ b/sysdeps/generic/bits/signum.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1993, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1993, 1996, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -19,35 +19,46 @@ #ifdef _SIGNAL_H /* Fake signal functions. */ -extern void _sig_ign __P ((int sig)); -extern void _sig_dfl __P ((int sig)); -#define SIG_ERR ((__sighandler_t) 0) /* Error return. */ -#define SIG_DFL _sig_dfl /* Default action. */ -#define SIG_IGN _sig_ign /* Ignore signal. */ +#define SIG_ERR ((__sighandler_t) -1) /* Error return. */ +#define SIG_DFL ((__sighandler_t) 0) /* Default action. */ +#define SIG_IGN ((__sighandler_t) 1) /* Ignore signal. */ +#ifdef __USE_UNIX98 +# define SIG_HOLD ((__sighandler_t) 2) /* Add signal to hold mask. */ +#endif + +/* Signals in the 1-15 range are defined with their historical numbers. + Signals in the 20-25 range are relatively new and have no ingrained + numbers. */ /* ANSI signals. */ -#define SIGABRT 1 /* Abnormal termination. */ -#define SIGFPE 2 /* Erroneous arithmetic operation. */ -#define SIGILL 3 /* Illegal instruction. */ -#define SIGINT 3 /* Interactive attention signal. */ -#define SIGSEGV 4 /* Invalid access to storage. */ -#define SIGTERM 5 /* Termination request. */ - -/* POSIX signals. */ -#define SIGHUP 6 /* Hangup. */ -#define SIGQUIT 7 /* Quit. */ -#define SIGPIPE 8 /* Broken pipe. */ +#define SIGINT 2 /* Interactive attention signal. */ +#define SIGILL 4 /* Illegal instruction. */ +#define SIGABRT 6 /* Abnormal termination. */ +#define SIGFPE 8 /* Erroneous arithmetic operation. */ +#define SIGSEGV 11 /* Invalid access to storage. */ +#define SIGTERM 15 /* Termination request. */ + +/* Historical signals specified by POSIX. */ +#define SIGHUP 1 /* Hangup. */ +#define SIGQUIT 3 /* Quit. */ #define SIGKILL 9 /* Kill (cannot be blocked, caught, or ignored). */ -#define SIGALRM 10 /* Alarm clock. */ -#define SIGSTOP 11 /* Stop (cannot be blocked, caught, or ignored). */ -#define SIGTSTP 12 /* Keyboard stop. */ -#define SIGCONT 13 /* Continue. */ -#define SIGCHLD 14 /* Child terminated or stopped. */ -#define SIGTTIN 15 /* Background read from control terminal. */ -#define SIGTTOU 16 /* Background write to control terminal. */ +#define SIGPIPE 13 /* Broken pipe. */ +#define SIGALRM 14 /* Alarm clock. */ -#endif /* <signal.h> included. */ +/* New(er) POSIX signals. */ +#define SIGSTOP 20 /* Stop (cannot be blocked, caught, or ignored). */ +#define SIGCONT 21 /* Continue. */ +#define SIGTSTP 22 /* Keyboard stop. */ +#define SIGTTIN 23 /* Background read from control terminal. */ +#define SIGTTOU 24 /* Background write to control terminal. */ +#define SIGCHLD 25 /* Child terminated or stopped. */ -#define _NSIG 17 +#define _NSIG 26 + +/* Archaic names for compatibility. */ +#define SIGIOT SIGABRT /* IOT instruction, abort() on a PDP11 */ +#define SIGCLD SIGCHLD /* Old System V name */ + +#endif /* <signal.h> included. */ diff --git a/sysdeps/unix/sysv/linux/bits/sigaction.h b/sysdeps/unix/sysv/linux/bits/sigaction.h index 523084bcf3..b357c45342 100644 --- a/sysdeps/unix/sysv/linux/bits/sigaction.h +++ b/sysdeps/unix/sysv/linux/bits/sigaction.h @@ -25,6 +25,7 @@ struct sigaction { /* Signal handler. */ +#ifdef __USE_POSIX199309 union { /* Used if SA_SIGINFO is not set. */ @@ -33,8 +34,11 @@ struct sigaction void (*sa_sigaction) __PMT ((int, siginfo_t *, void *)); } __sigaction_handler; -#define sa_handler __sigaction_handler.sa_handler -#define sa_sigaction __sigaction_handler.sa_sigaction +# define sa_handler __sigaction_handler.sa_handler +# define sa_sigaction __sigaction_handler.sa_sigaction +#else + __sighandler_t sa_handler; +#endif /* Additional set of signals to be blocked. */ __sigset_t sa_mask; |