aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Schwab1998-02-20 13:01:10 +0000
committerAndreas Schwab1998-02-20 13:01:10 +0000
commit47b682b73cd0086deff9a7e67d60d9b75d01ca82 (patch)
treea424d6e99dd4769ddd264a16d4fc913412ef867d
parentc639b0e327da46ab5328ef644576f8a1f987410e (diff)
downloademacs-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.h20
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)
33extern sigset_t empty_mask, full_mask, temp_mask; 33extern 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 ();
74typedef RETSIGTYPE (*signal_handler_t) (/*int*/); 69typedef RETSIGTYPE (*signal_handler_t) (/*int*/);
75 70
76signal_handler_t sys_signal (/*int signal_number, signal_handler_t action*/); 71signal_handler_t sys_signal (/*int signal_number, signal_handler_t action*/);
77int sys_sigpause (/*sigset_t new_mask*/);
78sigset_t sys_sigblock (/*sigset_t new_mask*/); 72sigset_t sys_sigblock (/*sigset_t new_mask*/);
79sigset_t sys_sigunblock (/*sigset_t new_mask*/); 73sigset_t sys_sigunblock (/*sigset_t new_mask*/);
80sigset_t sys_sigsetmask (/*sigset_t new_mask*/); 74sigset_t sys_sigsetmask (/*sigset_t new_mask*/);