#include <sys/types.h>
#include "ntp_types.h"
#include "ntp_string.h"
#include "l_stdlib.h"
#ifndef __attribute__
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
# define __attribute__(Spec)
# endif
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
# define __format__ format
# define __printf__ printf
# endif
#endif
#if defined(__STDC__) || defined(HAVE_STDARG_H)
# include <stdarg.h>
extern void msyslog P((int, const char *, ...))
__attribute__((__format__(__printf__, 2, 3)));
#else
# include <varargs.h>
extern void msyslog P(());
#endif
#if 0
extern void auth_des P((u_long *, u_char *));
extern void auth_delkeys P((void));
extern int auth_parity P((u_long *));
extern void auth_setkey P((u_long, u_long *));
extern void auth_subkeys P((u_long *, u_char *, u_char *));
#endif
extern void auth1crypt P((u_long, u_int32 *, int));
extern int auth2crypt P((u_long, u_int32 *, int));
extern void auth_delkeys P((void));
extern int auth_havekey P((u_long));
extern int authdecrypt P((u_long, u_int32 *, int, int));
extern int authencrypt P((u_long, u_int32 *, int));
extern int authhavekey P((u_long));
extern int authistrusted P((u_long));
extern int authreadkeys P((const char *));
extern void authtrust P((u_long, int));
extern int authusekey P((u_long, int, const u_char *));
extern u_long calleapwhen P((u_long));
extern u_long calyearstart P((u_long));
extern const char *clockname P((int));
extern int clocktime P((int, int, int, int, int, u_long, u_long *, u_int32 *));
#if defined SYS_WINNT && defined DEBUG
# define emalloc(_c) debug_emalloc(_c, __FILE__, __LINE__)
extern void * debug_emalloc P((u_int, char *, int));
#else
extern void * emalloc P((u_int));
#endif
extern int ntp_getopt P((int, char **, const char *));
extern void init_auth P((void));
extern void init_lib P((void));
extern void init_random P((void));
extern struct savekey *auth_findkey P((u_long));
extern int auth_moremem P((void));
extern int ymd2yd P((int, int, int));
#ifdef DES
extern int DESauthdecrypt P((u_char *, u_int32 *, int, int));
extern int DESauthencrypt P((u_char *, u_int32 *, int));
extern void DESauth_setkey P((u_long, const u_int32 *));
extern void DESauth_subkeys P((const u_int32 *, u_char *, u_char *));
extern void DESauth_des P((u_int32 *, u_char *));
extern int DESauth_parity P((u_int32 *));
#endif
#ifdef MD5
extern int MD5authdecrypt P((u_char *, u_int32 *, int, int));
extern int MD5authencrypt P((u_char *, u_int32 *, int));
extern void MD5auth_setkey P((u_long, const u_char *, const int));
extern u_long session_key P((u_int32, u_int32, u_long, u_long));
#endif
extern int atoint P((const char *, long *));
extern int atouint P((const char *, u_long *));
extern int hextoint P((const char *, u_long *));
extern char * humandate P((u_long));
extern char * humanlogtime P((void));
extern char * inttoa P((long));
extern char * mfptoa P((u_long, u_long, int));
extern char * mfptoms P((u_long, u_long, int));
extern const char * modetoa P((int));
extern const char * eventstr P((int));
extern const char * ceventstr P((int));
extern char * statustoa P((int, int));
extern const char * sysstatstr P((int));
extern const char * peerstatstr P((int));
extern const char * clockstatstr P((int));
extern u_int32 netof P((u_int32));
extern char * numtoa P((u_int32));
extern char * numtohost P((u_int32));
extern int octtoint P((const char *, u_long *));
extern u_long ranp2 P((int));
extern char * refnumtoa P((u_int32));
extern int tsftomsu P((u_long, int));
extern char * uinttoa P((u_long));
extern int decodenetnum P((const char *, u_int32 *));
extern const char * FindConfig P((const char *));
extern void signal_no_reset P((int, RETSIGTYPE (*func)(int)));
extern void getauthkeys P((char *));
extern void auth_agekeys P((void));
extern void rereadkeys P((void));
extern volatile int debug;
extern u_long authkeynotfound;
extern u_long authkeylookups;
extern u_long authnumkeys;
extern u_long authkeyexpired;
extern u_long authkeyuncached;
extern u_long authencryptions;
extern u_long authdecryptions;
extern int authnumfreekeys;
extern u_long cache_keyid;
extern u_char * cache_key;
extern u_int cache_keylen;
extern struct clktype clktypes[];
extern char * ntp_optarg;
extern int ntp_optind;
extern const char *set_tod_using;
#if defined SYS_WINNT || defined SYS_CYGWIN32
extern HANDLE hServDoneEvent;
#endif
#if defined SCO5_CLOCK
extern int sco5_oldclock;
#endif
extern double sys_maxfreq;
extern const char *Version;