From 8082d91e1c449e0cb137468b731004a5e605c8c6 Mon Sep 17 00:00:00 2001 From: Zack Weinberg Date: Sat, 3 Jun 2017 16:22:24 -0400 Subject: Factor out shared definitions from bits/signum.h. Many of the things defined by bits/signum.h are invariant across all supported operating systems. This patch factors out all of them to a new header bits/signum-generic.h, which each bits/signum.h will include and then override whichever things need adjustment. Normally that will mean, at most, adding or changing a few signal numbers. A user-visible side effect is that the obsolete signal constant SIGUNUSED (which is an alias for SIGSYS on all platforms that define it) is no longer exposed by any version of bits/signum.h. A side effect only relevant to glibc hackers is that _NSIG is now defined in terms of __SIGRTMAX, instead of the other way around. This is because __SIGRTMAX varies from platform to platform, but _NSIG==__SIGRTMAX+1 is true universally. If your platform doesn't support realtime signals, leave __SIGRTMAX equal to __SIGRTMIN. I also added a Linux-specific test to make sure that our signal constants match the ones in , since we can't use that header (it's not even vaguely namespace-clean). * bits/signum-generic.h: Renamed from bits/signum.h. Add proper multiple include guard and misuse check. Define __SIGRTMIN = __SIGRTMAX = 32, and define _NSIG = __SIGRTMAX+1. Move definition of SIGIO to "archaic names for compatibility" section. * bits/signum.h: New file which just includes bits/signum-generic.h. * sysdeps/unix/bsd/bits/signum.h * sysdeps/unix/sysv/linux/bits/signum.h * sysdeps/unix/sysv/linux/alpha/bits/signum.h * sysdeps/unix/sysv/linux/hppa/bits/signum.h * sysdeps/unix/sysv/linux/mips/bits/signum.h * sysdeps/unix/sysv/linux/sparc/bits/signum.h Just include and then add or adjust signal constants. Do not define SIGUNUSED, SIGRTMIN, or SIGRTMAX. * signal/Makefile: Install bits/signum-generic.h. * signal/signal.h: Define SIGRTMIN and SIGRTMAX here. * sysdeps/generic/siglist.h: SIGSYS and SIGWINCH are universal. Prefer SIGPOLL to SIGIO. Simplify #ifdeffage. * sysdeps/unix/sysv/linux/tst-signal-numbers.sh: New test. * sysdeps/unix/sysv/linux/Makefile: Run it. --- sysdeps/unix/sysv/linux/mips/bits/signum.h | 94 +++++++++++++----------------- 1 file changed, 42 insertions(+), 52 deletions(-) (limited to 'sysdeps/unix/sysv/linux/mips/bits/signum.h') diff --git a/sysdeps/unix/sysv/linux/mips/bits/signum.h b/sysdeps/unix/sysv/linux/mips/bits/signum.h index 6c31e01cd7..1672847212 100644 --- a/sysdeps/unix/sysv/linux/mips/bits/signum.h +++ b/sysdeps/unix/sysv/linux/mips/bits/signum.h @@ -1,4 +1,4 @@ -/* Signal number definitions. Linux version. +/* Signal number definitions. Linux/MIPS version. Copyright (C) 1995-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -16,63 +16,53 @@ License along with the GNU C Library. If not, see . */ -#ifdef _SIGNAL_H +#ifndef _BITS_SIGNUM_H +#define _BITS_SIGNUM_H 1 -/* Fake signal functions. */ -#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_XOPEN -# define SIG_HOLD ((__sighandler_t) 2) /* Add signal to hold mask. */ +#ifndef _SIGNAL_H +#error "Never include directly; use instead." #endif +#include -#define SIGHUP 1 /* Hangup (POSIX). */ -#define SIGINT 2 /* Interrupt (ANSI). */ -#define SIGQUIT 3 /* Quit (POSIX). */ -#define SIGILL 4 /* Illegal instruction (ANSI). */ -#define SIGTRAP 5 /* Trace trap (POSIX). */ -#define SIGIOT 6 /* IOT trap (4.2 BSD). */ -#define SIGABRT SIGIOT /* Abort (ANSI). */ -#define SIGEMT 7 -#define SIGFPE 8 /* Floating-point exception (ANSI). */ -#define SIGKILL 9 /* Kill, unblockable (POSIX). */ -#define SIGBUS 10 /* BUS error (4.2 BSD). */ -#define SIGSEGV 11 /* Segmentation violation (ANSI). */ -#define SIGSYS 12 -#define SIGPIPE 13 /* Broken pipe (POSIX). */ -#define SIGALRM 14 /* Alarm clock (POSIX). */ -#define SIGTERM 15 /* Termination (ANSI). */ -#define SIGUSR1 16 /* User-defined signal 1 (POSIX). */ -#define SIGUSR2 17 /* User-defined signal 2 (POSIX). */ -#define SIGCHLD 18 /* Child status has changed (POSIX). */ -#define SIGCLD SIGCHLD /* Same as SIGCHLD (System V). */ -#define SIGPWR 19 /* Power failure restart (System V). */ -#define SIGWINCH 20 /* Window size change (4.3 BSD, Sun). */ -#define SIGURG 21 /* Urgent condition on socket (4.2 BSD). */ -#define SIGIO 22 /* I/O now possible (4.2 BSD). */ -#define SIGPOLL SIGIO /* Pollable event occurred (System V). */ -#define SIGSTOP 23 /* Stop, unblockable (POSIX). */ -#define SIGTSTP 24 /* Keyboard stop (POSIX). */ -#define SIGCONT 25 /* Continue (POSIX). */ -#define SIGTTIN 26 /* Background read from tty (POSIX). */ -#define SIGTTOU 27 /* Background write to tty (POSIX). */ -#define SIGVTALRM 28 /* Virtual alarm clock (4.2 BSD). */ -#define SIGPROF 29 /* Profiling alarm clock (4.2 BSD). */ -#define SIGXCPU 30 /* CPU limit exceeded (4.2 BSD). */ -#define SIGXFSZ 31 /* File size limit exceeded (4.2 BSD). */ - +/* Adjustments and additions to the signal number constants for + Linux/MIPS. */ -#define _NSIG 128 /* Biggest signal number + 1 - (including real-time signals). */ +#define SIGEMT 7 /* Emulator trap. */ +#define SIGPWR 19 /* Power failure imminent. */ -#define SIGRTMIN (__libc_current_sigrtmin ()) -#define SIGRTMAX (__libc_current_sigrtmax ()) +#undef SIGUSR1 +#define SIGUSR1 16 +#undef SIGUSR2 +#define SIGUSR2 17 +#undef SIGCHLD +#define SIGCHLD 18 +#undef SIGWINCH +#define SIGWINCH 20 +#undef SIGURG +#define SIGURG 21 +#undef SIGPOLL +#define SIGPOLL 22 +#undef SIGSTOP +#define SIGSTOP 23 +#undef SIGTSTP +#define SIGTSTP 24 +#undef SIGCONT +#define SIGCONT 25 +#undef SIGTTIN +#define SIGTTIN 26 +#undef SIGTTOU +#define SIGTTOU 27 +#undef SIGVTALRM +#define SIGVTALRM 28 +#undef SIGPROF +#define SIGPROF 29 +#undef SIGXCPU +#define SIGXCPU 30 +#undef SIGXFSZ +#define SIGXFSZ 31 -/* These are the hard limits of the kernel. These values should not be - used directly at user level. */ -#define __SIGRTMIN 32 -#define __SIGRTMAX (_NSIG - 1) +#undef __SIGRTMAX +#define __SIGRTMAX 127 #endif /* included. */ -- cgit 1.4.1