158220Selan // This may look like C code, but it is really -*- C++ -*-
258220Selan /*
358220Selan Copyright (C) 1989 Free Software Foundation
458220Selan     written by Doug Lea (dl@rocky.oswego.edu)
558220Selan 
658220Selan This file is part of the GNU C++ Library.  This library is free
758220Selan software; you can redistribute it and/or modify it under the terms of
858220Selan the GNU Library General Public License as published by the Free
958220Selan Software Foundation; either version 2 of the License, or (at your
1058220Selan option) any later version.  This library is distributed in the hope
1158220Selan that it will be useful, but WITHOUT ANY WARRANTY; without even the
1258220Selan implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
1358220Selan PURPOSE.  See the GNU Library General Public License for more details.
1458220Selan You should have received a copy of the GNU Library General Public
1558220Selan License along with this library; if not, write to the Free Software
1658220Selan Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
1758220Selan */
1858220Selan 
1958220Selan #ifndef _signal_h
2058220Selan 
2158220Selan #include <_G_config.h>
2258220Selan 
2358220Selan extern "C" {
2458220Selan 
2558220Selan #ifdef __signal_h_recursive
2658220Selan #include_next <signal.h>
2758220Selan #else
2858220Selan 
2958220Selan #define __signal_h_recursive
3058220Selan 
3158220Selan #define signal __hide_signal
3258220Selan #define psignal __hide_psignal
3358220Selan #include_next <signal.h>
3458220Selan #undef signal
3558220Selan #undef psignal
3658220Selan 
3758220Selan #define _signal_h 1
3858220Selan 
3958220Selan // The Interviews folks call this SignalHandler. Might as well conform.
4058220Selan typedef _G_signal_return_type (*SignalHandler) (...);
4158220Selan typedef int (*SSignalHandler) (...);
4258220Selan 
4358220Selan extern SignalHandler signal _G_ARGS((int sig, SignalHandler action));
4458220Selan //extern SignalHandler sigset _G_ARGS((int sig, SignalHandler action));
4558220Selan extern SSignalHandler ssignal _G_ARGS((int sig, SSignalHandler action));
4658220Selan extern int           gsignal  _G_ARGS((int sig));
47*67664Sbostic extern int           kill  _G_ARGS((pid_t pid, int sig));
48*67664Sbostic extern int           killpg _G_ARGS((pid_t, int));
4958220Selan extern int           siginterrupt _G_ARGS((int, int));
5058220Selan extern void	     psignal _G_ARGS((unsigned, const char*));
5158220Selan 
5258220Selan #ifndef hpux // Interviews folks claim that hpux doesn't like these
5358220Selan extern int           sigsetmask _G_ARGS((int mask));
5458220Selan extern int           sigblock _G_ARGS((int mask));
5558220Selan extern int           sigpause _G_ARGS((int mask));
5658220Selan extern int           sigvec _G_ARGS((int, struct sigvec*, struct sigvec*));
5758220Selan #endif
5858220Selan 
5958220Selan // The Interviews version also has these ...
6058220Selan 
6158220Selan #define SignalBad ((SignalHandler)-1)
6258220Selan #define SignalDefault ((SignalHandler)0)
6358220Selan #define SignalIgnore ((SignalHandler)1)
6458220Selan 
6558220Selan #undef BADSIG
6658220Selan #undef SIG_DFL
6758220Selan #undef SIG_IGN
6858220Selan #define BAD_SIG SignalBad
6958220Selan #define SIG_DFL SignalDefault
7058220Selan #define SIG_IGN SignalIgnore
7158220Selan 
7258220Selan #endif
7358220Selan }
7458220Selan 
7558220Selan #endif
7658220Selan 
77