/* syssignal.h - System-dependent definitions for signals.
- Copyright (C) 1993, 1999, 2001, 2002, 2003, 2004,
- 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1999, 2001-2012 Free Software Foundation, Inc.
This file is part of GNU Emacs.
extern void init_signals (void);
-#if defined (HAVE_GTK_AND_PTHREAD) || defined (HAVE_NS)
+#ifdef HAVE_PTHREAD
#include <pthread.h>
/* If defined, asynchronous signals delivered to a non-main thread are
forwarded to the main thread. */
#define FORWARD_SIGNAL_TO_MAIN_THREAD
#endif
-#ifdef FORWARD_SIGNAL_TO_MAIN_THREAD
-extern pthread_t main_thread;
-#endif
-
/* Don't #include <signal.h>. That header should always be #included
before "config.h", because some configuration files (like s/hpux.h)
indicate that SIGIO doesn't work by #undef-ing SIGIO. If this file
#define SIGMASKTYPE sigset_t
#define SIGEMPTYMASK (empty_mask)
-#define SIGFULLMASK (full_mask)
-extern sigset_t empty_mask, full_mask;
+extern sigset_t empty_mask;
/* POSIX pretty much destroys any possibility of writing sigmask as a
macro in standard C. We always define our own version because the
- predefined macro in Glibc 2.1 is only provided for compatility for old
+ predefined macro in Glibc 2.1 is only provided for compatibility for old
programs that use int as signal mask type. */
#undef sigmask
#ifdef __GNUC__
#ifndef sigsetmask
#define sigsetmask(SIG) sys_sigsetmask (SIG)
#endif
-#define sighold(SIG) ONLY_USED_IN_BSD_4_1
-#define sigrelse(SIG) ONLY_USED_IN_BSD_4_1
#undef signal
#define signal(SIG,ACT) sys_signal(SIG,ACT)
/* Whether this is what all systems want or not, this is what
appears to be assumed in the source, for example data.c:arith_error. */
-typedef RETSIGTYPE (*signal_handler_t) (int);
+typedef void (*signal_handler_t) (int);
signal_handler_t sys_signal (int signal_number, signal_handler_t action);
sigset_t sys_sigblock (sigset_t new_mask);
sigset_t sys_sigunblock (sigset_t new_mask);
sigset_t sys_sigsetmask (sigset_t new_mask);
-
-#define sys_sigdel(MASK,SIG) sigdelset (&MASK,SIG)
-
-#ifndef SIGMASKTYPE
-#define SIGMASKTYPE int
-#endif
-
-#ifndef SIGEMPTYMASK
-#define SIGEMPTYMASK (0)
-#endif
-
-#ifndef SIGFULLMASK
-#define SIGFULLMASK (0xffffffff)
-#endif
-
-#ifndef sigmask
-#define sigmask(no) (1L << ((no) - 1))
+#if ! (defined TIOCNOTTY || defined USG5 || defined CYGWIN)
+void croak (char *) NO_RETURN;
#endif
-#ifndef sigunblock
-#define sigunblock(SIG) \
-{ SIGMASKTYPE omask = sigblock (SIGFULLMASK); sigsetmask (omask & ~SIG); }
-#endif
+#define sys_sigdel(MASK,SIG) sigdelset (&MASK,SIG)
#define sigfree() sigsetmask (SIGEMPTYMASK)
#endif
#ifdef FORWARD_SIGNAL_TO_MAIN_THREAD
+extern pthread_t main_thread;
#define SIGNAL_THREAD_CHECK(signo) \
do { \
if (!pthread_equal (pthread_self (), main_thread)) \
#else /* not FORWARD_SIGNAL_TO_MAIN_THREAD */
#define SIGNAL_THREAD_CHECK(signo)
#endif /* not FORWARD_SIGNAL_TO_MAIN_THREAD */
-/* arch-tag: 4580e86a-340d-4574-9e11-a742b6e1a152
- (do not change this comment) */