about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/bits/signum.h63
-rw-r--r--sysdeps/unix/sysv/linux/bits/sigaction.h8
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;