iosignal.h revision 285612
1#ifndef IOSIGNAL_H
2#define IOSIGNAL_H
3
4#include "ntp_refclock.h"
5
6 /*
7 * Some systems (MOST) define SIGPOLL == SIGIO, others SIGIO == SIGPOLL, and
8 * a few have separate SIGIO and SIGPOLL signals.  This code checks for the
9 * SIGIO == SIGPOLL case at compile time.
10 * Do not define USE_SIGPOLL or USE_SIGIO.
11 * these are interal only to iosignal.c and ntpd/work_fork.c!
12 */
13#if defined(USE_SIGPOLL)
14# undef USE_SIGPOLL
15#endif
16#if defined(USE_SIGIO)
17# undef USE_SIGIO
18#endif
19
20/* type of input handler function - only shared between iosignal.c and ntp_io.c */
21typedef void (input_handler_t)(l_fp *);
22
23#if defined(HAVE_SIGNALED_IO)
24# if defined(USE_TTY_SIGPOLL) || defined(USE_UDP_SIGPOLL)
25#  define USE_SIGPOLL
26# endif
27
28# if !defined(USE_TTY_SIGPOLL) || !defined(USE_UDP_SIGPOLL)
29#  define USE_SIGIO
30# endif
31
32# if defined(USE_SIGIO) && defined(USE_SIGPOLL)
33#  if SIGIO == SIGPOLL
34#   define USE_SIGIO
35#   undef USE_SIGPOLL
36#  endif	/* SIGIO == SIGPOLL */
37# endif		/* USE_SIGIO && USE_SIGPOLL */
38
39#define	USING_SIGIO()	using_sigio
40
41extern int		using_sigio;
42
43extern void		block_sigio	(void);
44extern void		unblock_sigio	(void);
45extern int		init_clock_sig	(struct refclockio *);
46extern void		init_socket_sig	(int);
47extern void		set_signal	(input_handler_t *);
48
49# define BLOCKIO()	block_sigio()
50# define UNBLOCKIO()	unblock_sigio()
51
52#else	/* !HAVE_SIGNALED_IO follows */
53# define BLOCKIO()	do {} while (0)
54# define UNBLOCKIO()	do {} while (0)
55# define USING_SIGIO()	FALSE
56#endif
57
58#endif	/* IOSIGNAL_H */
59