From f540c0a4adc26817274b34b1cca16a4969196cc1 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 3 Nov 1998 17:21:07 +0000 Subject: [PATCH] Update. 1998-11-02 16:12 -0500 Zack Weinberg * 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 * 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 before to make sockaddr_at available to . --- ChangeLog | 25 +++++++++++-- bits/signum.h | 63 +++++++++++++++++++------------- misc/sys/select.h | 4 +- sysdeps/generic/bits/signum.h | 63 +++++++++++++++++++------------- sysdeps/unix/sysv/linux/bits/sigaction.h | 8 +++- 5 files changed, 105 insertions(+), 58 deletions(-) diff --git a/ChangeLog b/ChangeLog index 47b39e3..4df5c2f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,22 @@ +1998-11-02 16:12 -0500 Zack Weinberg + + * 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 + + * 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. + 1998-11-03 Ulrich Drepper * time/mktime.c (__mktime_internal): Handle broken down times @@ -37,9 +56,9 @@ 1998-11-02 Andreas Jaeger - * sysdeps/unix/sysv/linux/netatalk/at.h: Include - before to make sockaddr_at available to - . + * sysdeps/unix/sysv/linux/netatalk/at.h: Include + before to make sockaddr_at available to + . * posix/glob.h: Remove __P from parameter lists of declarations. diff --git a/bits/signum.h b/bits/signum.h index 6b4693f..e750125 100644 --- a/bits/signum.h +++ b/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 /* 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 /* included. */ diff --git a/misc/sys/select.h b/misc/sys/select.h index d65e4b0..179e1ec 100644 --- a/misc/sys/select.h +++ b/misc/sys/select.h @@ -75,7 +75,9 @@ extern int select __P ((int __nfds, __fd_set *__readfds, __fd_set *__writefds, __fd_set *__exceptfds, struct timeval *__timeout)); -#ifdef __USE_POSIX +#ifdef __USE_GNU +/* XXX Once/if POSIX.1g gets official this prototype will be available + when defining __USE_POSIX. */ /* Same as above only that the TIMEOUT value is given with higher resolution. This version should be used. */ extern int pselect __P ((int __nfds, __fd_set *__readfds, 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 /* 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 /* 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; -- 2.7.4