1995-08-09 08:06:35 -07:00
|
|
|
/***********************************************************************/
|
|
|
|
/* */
|
2011-07-27 07:17:02 -07:00
|
|
|
/* OCaml */
|
1995-08-09 08:06:35 -07:00
|
|
|
/* */
|
|
|
|
/* Xavier Leroy and Damien Doligez, INRIA Rocquencourt */
|
|
|
|
/* */
|
1996-04-30 07:53:58 -07:00
|
|
|
/* Copyright 1996 Institut National de Recherche en Informatique et */
|
1999-11-17 10:59:06 -08:00
|
|
|
/* en Automatique. All rights reserved. This file is distributed */
|
2001-12-07 05:41:02 -08:00
|
|
|
/* under the terms of the GNU Library General Public License, with */
|
|
|
|
/* the special exception on linking described in file ../LICENSE. */
|
1995-08-09 08:06:35 -07:00
|
|
|
/* */
|
|
|
|
/***********************************************************************/
|
|
|
|
|
|
|
|
/* $Id$ */
|
|
|
|
|
2003-12-15 08:29:53 -08:00
|
|
|
#ifndef CAML_SIGNALS_H
|
|
|
|
#define CAML_SIGNALS_H
|
1995-05-04 03:15:53 -07:00
|
|
|
|
2003-12-29 14:15:02 -08:00
|
|
|
#ifndef CAML_NAME_SPACE
|
2003-12-15 08:29:53 -08:00
|
|
|
#include "compatibility.h"
|
2003-12-29 14:15:02 -08:00
|
|
|
#endif
|
1995-05-04 03:15:53 -07:00
|
|
|
#include "misc.h"
|
1996-11-02 10:00:46 -08:00
|
|
|
#include "mlvalues.h"
|
1995-05-04 03:15:53 -07:00
|
|
|
|
2012-01-07 12:55:28 -08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2003-06-23 05:52:06 -07:00
|
|
|
/* <private> */
|
2006-04-16 16:28:22 -07:00
|
|
|
CAMLextern intnat volatile caml_signals_are_pending;
|
2005-09-22 07:21:50 -07:00
|
|
|
CAMLextern intnat volatile caml_pending_signals[];
|
2004-01-01 08:42:43 -08:00
|
|
|
CAMLextern int volatile caml_something_to_do;
|
|
|
|
extern int volatile caml_force_major_slice;
|
2003-06-23 05:52:06 -07:00
|
|
|
/* </private> */
|
1997-09-02 05:55:01 -07:00
|
|
|
|
2004-01-01 08:42:43 -08:00
|
|
|
CAMLextern void caml_enter_blocking_section (void);
|
|
|
|
CAMLextern void caml_leave_blocking_section (void);
|
2003-06-23 05:52:06 -07:00
|
|
|
|
|
|
|
/* <private> */
|
2004-01-01 08:42:43 -08:00
|
|
|
void caml_urge_major_slice (void);
|
|
|
|
CAMLextern int caml_convert_signal_number (int);
|
2005-04-17 01:23:51 -07:00
|
|
|
CAMLextern int caml_rev_convert_signal_number (int);
|
2004-01-01 08:42:43 -08:00
|
|
|
void caml_execute_signal(int signal_number, int in_signal_handler);
|
2005-10-12 05:33:47 -07:00
|
|
|
void caml_record_signal(int signal_number);
|
2007-02-23 01:29:45 -08:00
|
|
|
void caml_process_pending_signals(void);
|
2004-01-01 08:42:43 -08:00
|
|
|
void caml_process_event(void);
|
2007-02-23 01:29:45 -08:00
|
|
|
int caml_set_signal_action(int signo, int action);
|
2004-01-01 08:42:43 -08:00
|
|
|
|
|
|
|
CAMLextern void (*caml_enter_blocking_section_hook)(void);
|
|
|
|
CAMLextern void (*caml_leave_blocking_section_hook)(void);
|
2005-07-29 05:11:01 -07:00
|
|
|
CAMLextern int (*caml_try_leave_blocking_section_hook)(void);
|
2004-01-01 08:42:43 -08:00
|
|
|
CAMLextern void (* volatile caml_async_action_hook)(void);
|
2003-06-23 05:52:06 -07:00
|
|
|
/* </private> */
|
1996-04-01 07:24:38 -08:00
|
|
|
|
2012-01-07 12:55:28 -08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2003-12-15 08:29:53 -08:00
|
|
|
#endif /* CAML_SIGNALS_H */
|