X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/5a95db215e07e2f80af6238a0f92b5d6823a7e0b..84c9ce0579c1f16670d15c486dc3ceeb3c103af1:/src/syssignal.h
diff --git a/src/syssignal.h b/src/syssignal.h
index 72ac1ed7f6..48eb722935 100644
--- a/src/syssignal.h
+++ b/src/syssignal.h
@@ -1,13 +1,13 @@
/* syssignal.h - System-dependent definitions for signals.
Copyright (C) 1993, 1999, 2001, 2002, 2003, 2004,
- 2005, 2006, 2007 Free Software Foundation, Inc.
+ 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
This file is part of GNU Emacs.
-GNU Emacs is free software; you can redistribute it and/or modify
+GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3, or (at your option)
-any later version.
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -15,19 +15,17 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with GNU Emacs; see the file COPYING. If not, write to
-the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA. */
+along with GNU Emacs. If not, see . */
-extern void init_signals P_ ((void));
+extern void init_signals (void);
-#ifdef HAVE_GTK_AND_PTHREAD
+#if defined (HAVE_GTK_AND_PTHREAD) || defined (HAVE_NS)
#include
-extern pthread_t main_thread;
+/* If defined, asynchronous signals delivered to a non-main thread are
+ forwarded to the main thread. */
+#define FORWARD_SIGNAL_TO_MAIN_THREAD
#endif
-#ifdef POSIX_SIGNALS
-
/* Don't #include . 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
@@ -67,90 +65,27 @@ extern sigset_t sys_sigmask ();
#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 RETSIGTYPE (*signal_handler_t) (int);
-signal_handler_t sys_signal P_ ((int signal_number, signal_handler_t action));
-sigset_t sys_sigblock P_ ((sigset_t new_mask));
-sigset_t sys_sigunblock P_ ((sigset_t new_mask));
-sigset_t sys_sigsetmask P_ ((sigset_t new_mask));
+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)
-#else /* ! defined (POSIX_SIGNALS) */
-#ifdef USG5_4
-
-extern SIGMASKTYPE sigprocmask_set;
-
-#ifndef sigblock
-#define sigblock(sig) \
- (sigprocmask_set = SIGEMPTYMASK | (sig), \
- sigprocmask (SIG_BLOCK, &sigprocmask_set, NULL))
-#endif
-
-#ifndef sigunblock
-#define sigunblock(sig) \
- (sigprocmask_set = SIGFULLMASK & ~(sig), \
- sigprocmask (SIG_SETMASK, &sigprocmask_set, NULL))
-#endif
-
-#else
-#ifdef USG
-
-#ifndef sigunblock
-#define sigunblock(sig)
-#endif
-
-#else
-
-#ifndef sigunblock
-#define sigunblock(SIG) \
-{ SIGMASKTYPE omask = sigblock (SIGEMPTYMASK); sigsetmask (omask & ~SIG); }
-#endif
-
-#endif /* ! defined (USG) */
-#endif /* ! defined (USG5_4) */
-#endif /* ! defined (POSIX_SIGNALS) */
-
-#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))
-#endif
-
-#ifndef sigunblock
-#define sigunblock(SIG) \
-{ SIGMASKTYPE omask = sigblock (SIGFULLMASK); sigsetmask (omask & ~SIG); }
-#endif
-
-#ifndef BSD4_1
#define sigfree() sigsetmask (SIGEMPTYMASK)
-#endif /* not BSD4_1 */
#if defined (SIGINFO) && defined (BROKEN_SIGINFO)
#undef SIGINFO
#endif
#if defined (SIGIO) && defined (BROKEN_SIGIO)
# undef SIGIO
-# if defined (__Lynx__)
-# undef SIGPOLL /* Defined as SIGIO on LynxOS */
-# endif
#endif
#if defined (SIGPOLL) && defined (BROKEN_SIGPOLL)
#undef SIGPOLL
@@ -176,11 +111,6 @@ extern SIGMASKTYPE sigprocmask_set;
# define NSIG NSIG_MINIMUM
#endif
-#ifdef BSD4_1
-#define SIGIO SIGTINT
-/* sigfree is in sysdep.c */
-#endif /* BSD4_1 */
-
/* On bsd, [man says] kill does not accept a negative number to kill a pgrp.
Must do that using the killpg call. */
#ifdef BSD_SYSTEM
@@ -195,20 +125,19 @@ extern SIGMASKTYPE sigprocmask_set;
/* Define SIGCHLD as an alias for SIGCLD. There are many conditionals
testing SIGCHLD. */
-#ifndef VMS
#ifdef SIGCLD
#ifndef SIGCHLD
#define SIGCHLD SIGCLD
#endif /* SIGCHLD */
#endif /* ! defined (SIGCLD) */
-#endif /* VMS */
#ifndef HAVE_STRSIGNAL
/* strsignal is in sysdep.c */
-char *strsignal ();
+char *strsignal (int);
#endif
-#ifdef HAVE_GTK_AND_PTHREAD
+#ifdef FORWARD_SIGNAL_TO_MAIN_THREAD
+extern pthread_t main_thread;
#define SIGNAL_THREAD_CHECK(signo) \
do { \
if (!pthread_equal (pthread_self (), main_thread)) \
@@ -227,8 +156,8 @@ char *strsignal ();
} \
} while (0)
-#else /* not HAVE_GTK_AND_PTHREAD */
+#else /* not FORWARD_SIGNAL_TO_MAIN_THREAD */
#define SIGNAL_THREAD_CHECK(signo)
-#endif /* not HAVE_GTK_AND_PTHREAD */
+#endif /* not FORWARD_SIGNAL_TO_MAIN_THREAD */
/* arch-tag: 4580e86a-340d-4574-9e11-a742b6e1a152
(do not change this comment) */