xref: /freebsd/contrib/ntp/include/ntp_workimpl.h (revision 416ba5c74546f32a993436a99516d35008e9f384)
1*2b15cb3dSCy Schubert /*
2*2b15cb3dSCy Schubert  * ntp_workimpl.h - selects worker child implementation
3*2b15cb3dSCy Schubert  */
4*2b15cb3dSCy Schubert #ifndef NTP_WORKIMPL_H
5*2b15cb3dSCy Schubert #define NTP_WORKIMPL_H
6*2b15cb3dSCy Schubert 
7*2b15cb3dSCy Schubert /*
8*2b15cb3dSCy Schubert  * Some systems do not support fork() and don't have an alternate
9*2b15cb3dSCy Schubert  * threads implementation of ntp_intres.  Such systems are limited
10*2b15cb3dSCy Schubert  * to using numeric IP addresses.
11*2b15cb3dSCy Schubert  */
12*2b15cb3dSCy Schubert #if defined(SYS_WINNT)
13*2b15cb3dSCy Schubert # define WORK_THREAD
14*2b15cb3dSCy Schubert #elif defined(ISC_PLATFORM_USETHREADS) && \
15*2b15cb3dSCy Schubert       defined(HAVE_SEM_TIMEDWAIT) && \
16*2b15cb3dSCy Schubert       (defined(HAVE_GETCLOCK) || defined(HAVE_CLOCK_GETTIME))
17*2b15cb3dSCy Schubert # define WORK_THREAD
18*2b15cb3dSCy Schubert # define WORK_PIPE
19*2b15cb3dSCy Schubert #elif defined(VMS) || defined(SYS_VXWORKS)
20*2b15cb3dSCy Schubert   /* empty */
21*2b15cb3dSCy Schubert #elif defined(HAVE_WORKING_FORK)
22*2b15cb3dSCy Schubert # define WORK_FORK
23*2b15cb3dSCy Schubert # define WORK_PIPE
24*2b15cb3dSCy Schubert #endif
25*2b15cb3dSCy Schubert 
26*2b15cb3dSCy Schubert #if defined(WORK_FORK) || defined(WORK_THREAD)
27*2b15cb3dSCy Schubert # define WORKER
28*2b15cb3dSCy Schubert #endif
29*2b15cb3dSCy Schubert 
30*2b15cb3dSCy Schubert #endif	/* !NTP_WORKIMPL_H */
31