diff options
| author | Andreas Schwab | 1998-02-20 13:01:10 +0000 |
|---|---|---|
| committer | Andreas Schwab | 1998-02-20 13:01:10 +0000 |
| commit | 47b682b73cd0086deff9a7e67d60d9b75d01ca82 (patch) | |
| tree | a424d6e99dd4769ddd264a16d4fc913412ef867d | |
| parent | c639b0e327da46ab5328ef644576f8a1f987410e (diff) | |
| download | emacs-47b682b73cd0086deff9a7e67d60d9b75d01ca82.tar.gz emacs-47b682b73cd0086deff9a7e67d60d9b75d01ca82.zip | |
(sigmask) [POSIX_SIGNALS]: Always define our own
version that returns a sigset_t.
(sigpause) [POSIX_SIGNALS]: Unconditionally define in terms of
sigsuspend. Don't redefine SIGEMPTYMASK.
(sys_sigpause): Don't declare.
(temp_mask): Don't declare.
| -rw-r--r-- | src/syssignal.h | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/src/syssignal.h b/src/syssignal.h index 23a15c6c1d2..08b989c8f13 100644 --- a/src/syssignal.h +++ b/src/syssignal.h | |||
| @@ -30,11 +30,13 @@ Boston, MA 02111-1307, USA. */ | |||
| 30 | 30 | ||
| 31 | #define SIGEMPTYMASK (empty_mask) | 31 | #define SIGEMPTYMASK (empty_mask) |
| 32 | #define SIGFULLMASK (full_mask) | 32 | #define SIGFULLMASK (full_mask) |
| 33 | extern sigset_t empty_mask, full_mask, temp_mask; | 33 | extern sigset_t empty_mask, full_mask; |
| 34 | 34 | ||
| 35 | /* POSIX pretty much destroys any possibility of writing sigmask as a | 35 | /* POSIX pretty much destroys any possibility of writing sigmask as a |
| 36 | macro in standard C. */ | 36 | macro in standard C. We always define our own version because the |
| 37 | #ifndef sigmask | 37 | predefined macro in Glibc 2.1 is only provided for compatility for old |
| 38 | programs that use int as signal mask type. */ | ||
| 39 | #undef sigmask | ||
| 38 | #ifdef __GNUC__ | 40 | #ifdef __GNUC__ |
| 39 | #define sigmask(SIG) \ | 41 | #define sigmask(SIG) \ |
| 40 | ({ \ | 42 | ({ \ |
| @@ -49,15 +51,8 @@ extern sigset_t sys_sigmask (); | |||
| 49 | #endif /* ! defined (__GNUC__) */ | 51 | #endif /* ! defined (__GNUC__) */ |
| 50 | #endif | 52 | #endif |
| 51 | 53 | ||
| 52 | #ifndef sigpause | 54 | #undef sigpause |
| 53 | #define sigpause(SIG) sys_sigpause (SIG) | 55 | #define sigpause(MASK) sigsuspend (&(MASK)) |
| 54 | #else | ||
| 55 | /* If sigpause is predefined, with POSIX_SIGNALS, | ||
| 56 | let's assume it needs this kind of argument. | ||
| 57 | This is true for Glibc 2.1. */ | ||
| 58 | #undef SIGEMPTYMASK | ||
| 59 | #define SIGEMPTYMASK sigmask (0) | ||
| 60 | #endif | ||
| 61 | 56 | ||
| 62 | #define sigblock(SIG) sys_sigblock (SIG) | 57 | #define sigblock(SIG) sys_sigblock (SIG) |
| 63 | #define sigunblock(SIG) sys_sigunblock (SIG) | 58 | #define sigunblock(SIG) sys_sigunblock (SIG) |
| @@ -74,7 +69,6 @@ extern sigset_t sys_sigmask (); | |||
| 74 | typedef RETSIGTYPE (*signal_handler_t) (/*int*/); | 69 | typedef RETSIGTYPE (*signal_handler_t) (/*int*/); |
| 75 | 70 | ||
| 76 | signal_handler_t sys_signal (/*int signal_number, signal_handler_t action*/); | 71 | signal_handler_t sys_signal (/*int signal_number, signal_handler_t action*/); |
| 77 | int sys_sigpause (/*sigset_t new_mask*/); | ||
| 78 | sigset_t sys_sigblock (/*sigset_t new_mask*/); | 72 | sigset_t sys_sigblock (/*sigset_t new_mask*/); |
| 79 | sigset_t sys_sigunblock (/*sigset_t new_mask*/); | 73 | sigset_t sys_sigunblock (/*sigset_t new_mask*/); |
| 80 | sigset_t sys_sigsetmask (/*sigset_t new_mask*/); | 74 | sigset_t sys_sigsetmask (/*sigset_t new_mask*/); |