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