Tue Jun 4 00:16:03 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
[kopensolaris-gnu/glibc.git] / signal / signal.h
index d0f4880..402d15e 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
 This file is part of the GNU C Library.
 
 The GNU C Library is free software; you can redistribute it and/or
@@ -13,7 +13,7 @@ Library General Public License for more details.
 
 You should have received a copy of the GNU Library General Public
 License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the, 1992 Free Software Foundation, Inc., 675 Mass Ave,
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
 Cambridge, MA 02139, USA.  */
 
 /*
@@ -22,19 +22,18 @@ Cambridge, MA 02139, USA.  */
 
 #ifndef        _SIGNAL_H
 
-__BEGIN_DECLS
-
 #if    !defined(__need_sig_atomic_t) && !defined(__need_sigset_t)
 #define        _SIGNAL_H       1
 #include <features.h>
 #endif
 
+__BEGIN_DECLS
+
 #define         __need_size_t
 #include <stddef.h>
 
 #include <gnu/types.h>
 #include <sigset.h>            /* __sigset_t, __sig_atomic_t.  */
-#include <signum.h>
 
 #if    !defined(__sig_atomic_t_defined) &&     \
   (defined(_SIGNAL_H) || defined(__need_sig_atomic_t))
@@ -46,6 +45,8 @@ typedef __sig_atomic_t sig_atomic_t;
 
 #ifdef _SIGNAL_H
 
+#include <signum.h>
+
 /* Type of a signal handler.  */
 typedef void (*__sighandler_t) __P ((int));
 
@@ -58,14 +59,14 @@ extern __sighandler_t signal __P ((int __sig, __sighandler_t __handler));
    If PID is < -1, send SIG to all processes in process group - PID.  */
 extern int __kill __P ((__pid_t __pid, int __sig));
 #ifdef __USE_POSIX
-extern int kill __P ((int __pid, int __sig));
+extern int kill __P ((__pid_t __pid, int __sig));
 #endif /* Use POSIX.  */
 
 #ifdef __USE_BSD
 /* Send SIG to all processes in process group PGRP.
    If PGRP is zero, send SIG to all processes in
    the current process's process group.  */
-extern int killpg __P ((int __pgrp, int __sig));
+extern int killpg __P ((__pid_t __pgrp, int __sig));
 #endif /* Use BSD.  */
 
 /* Raise signal SIG, i.e., send SIG to yourself.  */
@@ -77,6 +78,11 @@ extern __sighandler_t ssignal __P ((int __sig, __sighandler_t __handler));
 extern int gsignal __P ((int __sig));
 #endif /* Use SVID.  */
 
+#ifdef __USE_MISC
+/* Print a message describing the meaning of the given signal number.  */
+extern void psignal __P ((int __sig, __const char *__s));
+#endif /* Use misc.  */
+
 
 /* Block signals in MASK, returning the old mask.  */
 extern int __sigblock __P ((int __mask));
@@ -105,6 +111,11 @@ extern int sigpause __P ((int __mask));
 typedef __sighandler_t sighandler_t;
 #endif
 
+/* 4.4 BSD uses the name `sig_t' for this.  */
+#ifdef __USE_BSD
+typedef __sighandler_t sig_t;
+#endif
+
 #endif /* <signal.h> included.  */
 
 
@@ -143,39 +154,25 @@ extern int sigismember __P ((__const sigset_t *__set, int signo));
 #define        sigismember(set, signo) __sigismember(set, signo)
 #endif
 
+/* Get the system-specific definitions of `struct sigaction'
+   and the `SA_*' and `SIG_*'. constants.  */
+#include <sigaction.h>
+
 /* Get and/or change the set of blocked signals.  */
 extern int __sigprocmask __P ((int __how,
                               __const sigset_t *__set, sigset_t *__oset));
 extern int sigprocmask __P ((int __how,
                             __const sigset_t *__set, sigset_t *__oset));
 
-/* Values for the HOW argument to `sigprocmask'.  */
-#define        SIG_BLOCK       1       /* Block signals.  */
-#define        SIG_UNBLOCK     2       /* Unblock signals.  */
-#define        SIG_SETMASK     3       /* Set the set of blocked signals.  */
-
-
 /* Change the set of blocked signals to SET,
    wait until a signal arrives, and restore the set of blocked signals.  */
 extern int sigsuspend __P ((__const sigset_t *__set));
 
-/* Get the system-specific definitions of
-   `struct sigaction' and the `__SA_*' constants.  */
-#include <sigaction.h>
-
-/* Bits in the `sa_flags' field of a `struct sigaction'.  */
-#ifdef __USE_BSD
-#define        SA_ONSTACK      __SA_ONSTACK    /* Take signal on signal stack.  */
-#define        SA_RESTART      __SA_RESTART    /* No syscall restart on sig ret.  */
-#define        SA_DISABLE      __SA_DISABLE    /* Disable alternate signal stack.  */
-#endif
-#define        SA_NOCLDSTOP    __SA_NOCLDSTOP  /* No SIGCHLD when children stop.  */
-
 /* Get and/or set the action for signal SIG.  */
-extern int __sigaction __P ((int __sig, __const struct __sigaction *__act,
-                            struct __sigaction *__oact));
-extern int sigaction __P ((int __sig, __const struct __sigaction *__act,
-                          struct __sigaction *__oact));
+extern int __sigaction __P ((int __sig, __const struct sigaction *__act,
+                            struct sigaction *__oact));
+extern int sigaction __P ((int __sig, __const struct sigaction *__act,
+                          struct sigaction *__oact));
 
 /* Put in SET all signals that are blocked and waiting to be delivered.  */
 extern int sigpending __P ((sigset_t *__set));
@@ -186,6 +183,11 @@ extern int sigpending __P ((sigset_t *__set));
 
 #if    defined(_SIGNAL_H) && defined(__USE_BSD)
 
+/* Names of the signals.  This variable exists only for compatiblity.
+   Use `strsignal' instead (see <string.h>).  */
+extern __const char *__const _sys_siglist[NSIG];
+extern __const char *__const sys_siglist[NSIG];
+
 /* Structure passed to `sigvec'.  */
 struct sigvec
   {
@@ -246,8 +248,8 @@ extern int sigaltstack __P ((__const struct sigaltstack *__ss,
 #include <sigcontext.h>
 
 /* Restore the state saved in SCP.  */
-extern int __sigreturn __P ((__const struct sigcontext *__scp));
-extern int sigreturn __P ((__const struct sigcontext *__scp));
+extern int __sigreturn __P ((struct sigcontext *__scp));
+extern int sigreturn __P ((struct sigcontext *__scp));
 
 #endif /* signal.h included and use BSD.  */