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