1280849Scy#ifndef IOSIGNAL_H
2280849Scy#define IOSIGNAL_H
354359Sroberto
454359Sroberto#include "ntp_refclock.h"
554359Sroberto
6280849Scy /*
7280849Scy * Some systems (MOST) define SIGPOLL == SIGIO, others SIGIO == SIGPOLL, and
8280849Scy * a few have separate SIGIO and SIGPOLL signals.  This code checks for the
9280849Scy * SIGIO == SIGPOLL case at compile time.
10280849Scy * Do not define USE_SIGPOLL or USE_SIGIO.
11280849Scy * these are interal only to iosignal.c and ntpd/work_fork.c!
12280849Scy */
13280849Scy#if defined(USE_SIGPOLL)
14280849Scy# undef USE_SIGPOLL
15280849Scy#endif
16280849Scy#if defined(USE_SIGIO)
17280849Scy# undef USE_SIGIO
18280849Scy#endif
19280849Scy
20280849Scy/* type of input handler function - only shared between iosignal.c and ntp_io.c */
21280849Scytypedef void (input_handler_t)(l_fp *);
22280849Scy
2354359Sroberto#if defined(HAVE_SIGNALED_IO)
24280849Scy# if defined(USE_TTY_SIGPOLL) || defined(USE_UDP_SIGPOLL)
25280849Scy#  define USE_SIGPOLL
26280849Scy# endif
2754359Sroberto
28280849Scy# if !defined(USE_TTY_SIGPOLL) || !defined(USE_UDP_SIGPOLL)
29280849Scy#  define USE_SIGIO
30280849Scy# endif
3154359Sroberto
32280849Scy# if defined(USE_SIGIO) && defined(USE_SIGPOLL)
33280849Scy#  if SIGIO == SIGPOLL
34280849Scy#   define USE_SIGIO
35280849Scy#   undef USE_SIGPOLL
36280849Scy#  endif	/* SIGIO == SIGPOLL */
37280849Scy# endif		/* USE_SIGIO && USE_SIGPOLL */
3854359Sroberto
39280849Scy#define	USING_SIGIO()	using_sigio
4054359Sroberto
41280849Scyextern int		using_sigio;
42280849Scy
43280849Scyextern void		block_sigio	(void);
44280849Scyextern void		unblock_sigio	(void);
45280849Scyextern int		init_clock_sig	(struct refclockio *);
46280849Scyextern void		init_socket_sig	(int);
47280849Scyextern void		set_signal	(input_handler_t *);
48280849Scy
49280849Scy# define BLOCKIO()	block_sigio()
50280849Scy# define UNBLOCKIO()	unblock_sigio()
51280849Scy
52280849Scy#else	/* !HAVE_SIGNALED_IO follows */
53280849Scy# define BLOCKIO()	do {} while (0)
54280849Scy# define UNBLOCKIO()	do {} while (0)
55280849Scy# define USING_SIGIO()	FALSE
5654359Sroberto#endif
57280849Scy
58280849Scy#endif	/* IOSIGNAL_H */
59