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