1 // This may look like C code, but it is really -*- C++ -*-
2 /*
3 Copyright (C) 1989 Free Software Foundation
4     written by Doug Lea (dl@rocky.oswego.edu)
5 
6 This file is part of the GNU C++ Library.  This library is free
7 software; you can redistribute it and/or modify it under the terms of
8 the GNU Library General Public License as published by the Free
9 Software Foundation; either version 2 of the License, or (at your
10 option) any later version.  This library is distributed in the hope
11 that it will be useful, but WITHOUT ANY WARRANTY; without even the
12 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
13 PURPOSE.  See the GNU Library General Public License for more details.
14 You should have received a copy of the GNU Library General Public
15 License along with this library; if not, write to the Free Software
16 Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
17 */
18 
19 #ifndef _signal_h
20 
21 #include <_G_config.h>
22 
23 extern "C" {
24 
25 #ifdef __signal_h_recursive
26 #include_next <signal.h>
27 #else
28 
29 #define __signal_h_recursive
30 
31 #define signal __hide_signal
32 #define psignal __hide_psignal
33 #include_next <signal.h>
34 #undef signal
35 #undef psignal
36 
37 #define _signal_h 1
38 
39 // The Interviews folks call this SignalHandler. Might as well conform.
40 typedef _G_signal_return_type (*SignalHandler) (...);
41 typedef int (*SSignalHandler) (...);
42 
43 extern SignalHandler signal _G_ARGS((int sig, SignalHandler action));
44 //extern SignalHandler sigset _G_ARGS((int sig, SignalHandler action));
45 extern SSignalHandler ssignal _G_ARGS((int sig, SSignalHandler action));
46 extern int           gsignal  _G_ARGS((int sig));
47 extern int           kill  _G_ARGS((pid_t pid, int sig));
48 extern int           killpg _G_ARGS((pid_t, int));
49 extern int           siginterrupt _G_ARGS((int, int));
50 extern void	     psignal _G_ARGS((unsigned, const char*));
51 
52 #ifndef hpux // Interviews folks claim that hpux doesn't like these
53 extern int           sigsetmask _G_ARGS((int mask));
54 extern int           sigblock _G_ARGS((int mask));
55 extern int           sigpause _G_ARGS((int mask));
56 extern int           sigvec _G_ARGS((int, struct sigvec*, struct sigvec*));
57 #endif
58 
59 // The Interviews version also has these ...
60 
61 #define SignalBad ((SignalHandler)-1)
62 #define SignalDefault ((SignalHandler)0)
63 #define SignalIgnore ((SignalHandler)1)
64 
65 #undef BADSIG
66 #undef SIG_DFL
67 #undef SIG_IGN
68 #define BAD_SIG SignalBad
69 #define SIG_DFL SignalDefault
70 #define SIG_IGN SignalIgnore
71 
72 #endif
73 }
74 
75 #endif
76 
77