aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-11-03 17:21:07 +0000
committerUlrich Drepper <drepper@redhat.com>1998-11-03 17:21:07 +0000
commitf540c0a4adc26817274b34b1cca16a4969196cc1 (patch)
tree0496e0ea2ab56ddd875e10233d3de0a75fafef74 /sysdeps
parent5fea58fbe857e89ceb4f0c0afb48278806f2e32f (diff)
downloadglibc-f540c0a4adc26817274b34b1cca16a4969196cc1.zip
glibc-f540c0a4adc26817274b34b1cca16a4969196cc1.tar.gz
glibc-f540c0a4adc26817274b34b1cca16a4969196cc1.tar.bz2
Update.
1998-11-02 16:12 -0500 Zack Weinberg <zack@rabi.phys.columbia.edu> * sysdeps/generic/bits/signum.h: Define signals with their historical numbers when those are in the 1-15 range and consistent across platforms. Define compatibility aliases (SIGIOT, SIGCLD) if __USE_MISC. Define SIG_DFL, SIG_IGN, SIG_ERR as numeric constants cast appropriately instead of with fake function declarations (would cause link errors). If __USE_UNIX98, define SIG_HOLD. 1998-10-29 H.J. Lu <hjl@gnu.org> * sysdeps/unix/sysv/linux/bits/sigaction.h (sigaction): Use union only if __USE_POSIX199309 is defined. * misc/sys/select.h (pselect): Declared only if __USE_GNU is defined. * sysdeps/unix/sysv/linux/netatalk/at.h: Include <linux/atalk.h> before <sys/socket.h> to make sockaddr_at available to <sys/socket.h>.
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 6b4693f..e750125 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 523084b..b357c45 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;