5 * Revision 1.2 1997/02/04 17:34:41 mclareni
6 * Merge Winnt and 97a versions
8 * Revision 1.1.1.1.2.1 1997/01/21 11:29:41 mclareni
9 * All mods for Winnt 96a on winnt branch
11 * Revision 1.1.1.1 1996/02/15 17:49:26 mclareni
15 #include "kerngen/pilot.h"
16 #include "kerngen/fortranc.h"
18 #if defined(CERNLIB_QMSGI)
19 #include "sgigs/signalf.c"
20 #elif defined(CERNLIB_QMIRT)||defined(CERNLIB_QMIRTD)
21 #include "irtgs/signalf.c"
22 #elif defined(CERNLIB_QMOS9)
23 #include "os9gs/signalf.c"
24 #elif defined(CERNLIB_QSIGBSD)
26 #elif defined(CERNLIB_QSIGPOSIX)
30 CERN PROGLIB# SIGNALF .VERSION KERNFOR 4.38 931108
32 FORTRAN interface routine to signal
34 INTEGER FUNCTION SIGNALF (NUMSIG,PROC,IFLAG)
36 C- NUMSIG : signal number
37 C- PROC : external of the handler, if IFLAG = -1
38 C- IFLAG : < 0 instal PROC
41 C- > 1 adr of handler as returned earlier
42 C- function value = adr of previous handler
45 #if defined(CERNLIB_QX_SC)
46 int type_of_call signalf_(signum,funct,flag)
48 #if defined(CERNLIB_QXNO_SC)
49 int type_of_call signalf(signum,funct,flag)
51 #if defined(CERNLIB_QXCAPT)
52 int type_of_call SIGNALF(signum,funct,flag)
63 #if defined(CERNLIB_QCCINDAD)
64 if (*flag < 0) handler = *funct;
66 #if !defined(CERNLIB_QCCINDAD)
67 if (*flag < 0) handler = (int)funct;
69 else if (*flag == 0) handler = (int)SIG_DFL;
70 else if (*flag == 1) handler = (int)SIG_IGN;
73 oldhand = signal(signo,handler);
76 if (oldhand == SIG_ERR) istat = -1;
80 /*> END <----------------------------------------------------------*/