source: trunk/src/gcc/libf2c/libU77/alarm_.c@ 2

Last change on this file since 2 was 2, checked in by bird, 23 years ago

Initial revision

  • Property cvs2svn:cvs-rev set to 1.1
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 1.7 KB
Line 
1/* Copyright (C) 1997, 2001 Free Software Foundation, Inc.
2This file is part of GNU Fortran libU77 library.
3
4This library is free software; you can redistribute it and/or modify it
5under the terms of the GNU Library General Public License as published
6by the Free Software Foundation; either version 2 of the License, or
7(at your option) any later version.
8
9GNU Fortran is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12Library General Public License for more details.
13
14You should have received a copy of the GNU Library General Public
15License along with GNU Fortran; see the file COPYING.LIB. If
16not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17Boston, MA 02111-1307, USA. */
18
19#ifdef HAVE_CONFIG_H
20#include "config.h"
21#endif
22
23#if HAVE_UNISTD_H
24# include <unistd.h>
25#endif
26
27#include <errno.h> /* for ENOSYS */
28#include "f2c.h"
29
30#ifndef RETSIGTYPE
31/* we shouldn't rely on this... */
32#ifdef KR_headers
33#define RETSIGTYPE int
34#else
35#define RETSIGTYPE void
36#endif
37#endif
38typedef RETSIGTYPE (*sig_type)();
39
40#ifdef KR_headers
41extern sig_type signal();
42#else
43#include <signal.h>
44typedef int (*sig_proc)(int);
45#endif
46
47#ifndef SIG_ERR
48#define SIG_ERR ((sig_type) -1)
49#endif
50
51#ifdef KR_headers
52integer G77_alarm_0 (seconds, proc)
53 integer *seconds;
54 sig_type proc;
55#else
56integer G77_alarm_0 (integer *seconds, sig_proc proc)
57#endif
58{
59 int status;
60#if defined (HAVE_ALARM) && defined (SIGALRM)
61 if (signal(SIGALRM, (sig_type)proc) == SIG_ERR)
62 status = -1;
63 else
64 status = alarm (*seconds);
65#else /* ! HAVE_ALARM || ! SIGALRM */
66 errno = ENOSYS;
67 status = -1;
68#endif
69 return status;
70}
Note: See TracBrowser for help on using the repository browser.