Annotation of embedaddon/ntp/include/ntp_stdlib.h, revision 1.1
1.1 ! misho 1: /*
! 2: * ntp_stdlib.h - Prototypes for NTP lib.
! 3: */
! 4: #ifndef NTP_STDLIB_H
! 5: #define NTP_STDLIB_H
! 6:
! 7: #include <sys/types.h>
! 8: #ifdef HAVE_SYS_SOCKET_H
! 9: #include <sys/socket.h>
! 10: #endif
! 11:
! 12: #include "l_stdlib.h"
! 13: #include "ntp_rfc2553.h"
! 14: #include "ntp_types.h"
! 15: #include "ntp_malloc.h"
! 16: #include "ntp_string.h"
! 17: #include "ntp_net.h"
! 18: #include "ntp_syslog.h"
! 19:
! 20:
! 21: /*
! 22: * Handle gcc __attribute__ if available.
! 23: */
! 24: #ifndef __attribute__
! 25: /* This feature is available in gcc versions 2.5 and later. */
! 26: # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || (defined(__STRICT_ANSI__))
! 27: # define __attribute__(Spec) /* empty */
! 28: # endif
! 29: /* The __-protected variants of `format' and `printf' attributes
! 30: are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */
! 31: # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
! 32: # define __format__ format
! 33: # define __printf__ printf
! 34: # endif
! 35: #endif
! 36:
! 37: extern int mprintf(const char *, ...)
! 38: __attribute__((__format__(__printf__, 1, 2)));
! 39: extern int mfprintf(FILE *, const char *, ...)
! 40: __attribute__((__format__(__printf__, 2, 3)));
! 41: extern int mvfprintf(FILE *, const char *, va_list)
! 42: __attribute__((__format__(__printf__, 2, 0)));
! 43: extern int mvsnprintf(char *, size_t, const char *, va_list)
! 44: __attribute__((__format__(__printf__, 3, 0)));
! 45: extern int msnprintf(char *, size_t, const char *, ...)
! 46: __attribute__((__format__(__printf__, 3, 4)));
! 47: extern void msyslog(int, const char *, ...)
! 48: __attribute__((__format__(__printf__, 2, 3)));
! 49:
! 50: /*
! 51: * When building without OpenSSL, use a few macros of theirs to
! 52: * minimize source differences in NTP.
! 53: */
! 54: #ifndef OPENSSL
! 55: #define NID_md5 4 /* from openssl/objects.h */
! 56: /* from openssl/evp.h */
! 57: #define EVP_MAX_MD_SIZE 64 /* longest known is SHA512 */
! 58: #endif
! 59:
! 60: /* authkeys.c */
! 61: extern void auth_delkeys (void);
! 62: extern int auth_havekey (keyid_t);
! 63: extern int authdecrypt (keyid_t, u_int32 *, int, int);
! 64: extern int authencrypt (keyid_t, u_int32 *, int);
! 65: extern int authhavekey (keyid_t);
! 66: extern int authistrusted (keyid_t);
! 67: extern int authreadkeys (const char *);
! 68: extern void authtrust (keyid_t, u_long);
! 69: extern int authusekey (keyid_t, int, const u_char *);
! 70:
! 71: extern u_long calyearstart (u_long);
! 72: extern const char *clockname (int);
! 73: extern int clocktime (int, int, int, int, int, u_long, u_long *, u_int32 *);
! 74: extern int ntp_getopt (int, char **, const char *);
! 75: extern void init_auth (void);
! 76: extern void init_lib (void);
! 77: extern struct savekey *auth_findkey (keyid_t);
! 78: extern int auth_moremem (void);
! 79: extern int ymd2yd (int, int, int);
! 80:
! 81: /* a_md5encrypt.c */
! 82: extern int MD5authdecrypt (int, u_char *, u_int32 *, int, int);
! 83: extern int MD5authencrypt (int, u_char *, u_int32 *, int);
! 84: extern void MD5auth_setkey (keyid_t, int, const u_char *, const int);
! 85: extern u_int32 addr2refid (sockaddr_u *);
! 86:
! 87: /* emalloc.c */
! 88: #ifndef EREALLOC_CALLSITE /* ntp_malloc.h defines */
! 89: extern void * ereallocz (void *, size_t, size_t, int);
! 90: #define erealloczsite(p, n, o, z, f, l) ereallocz(p, n, o, (z))
! 91: extern void * emalloc (size_t);
! 92: #define emalloc_zero(c) ereallocz(NULL, (c), 0, TRUE)
! 93: #define erealloc(p, c) ereallocz(p, (c), 0, FALSE)
! 94: #define erealloc_zero(p, n, o) ereallocz(p, n, (o), TRUE)
! 95: extern char * estrdup_impl (const char *);
! 96: #define estrdup(s) estrdup_impl(s)
! 97: #else
! 98: extern void * ereallocz (void *, size_t, size_t, int,
! 99: const char *, int);
! 100: #define erealloczsite ereallocz
! 101: #define emalloc(c) ereallocz(NULL, (c), 0, FALSE, \
! 102: __FILE__, __LINE__)
! 103: #define emalloc_zero(c) ereallocz(NULL, (c), 0, TRUE, \
! 104: __FILE__, __LINE__)
! 105: #define erealloc(p, c) ereallocz(p, (c), 0, FALSE, \
! 106: __FILE__, __LINE__)
! 107: #define erealloc_zero(p, n, o) ereallocz(p, n, (o), TRUE, \
! 108: __FILE__, __LINE__)
! 109: extern char * estrdup_impl (const char *, const char *, int);
! 110: #define estrdup(s) estrdup_impl((s), __FILE__, __LINE__)
! 111: #endif
! 112:
! 113:
! 114: extern int atoint (const char *, long *);
! 115: extern int atouint (const char *, u_long *);
! 116: extern int hextoint (const char *, u_long *);
! 117: extern char * humanlogtime (void);
! 118: extern char * inttoa (long);
! 119: extern char * mfptoa (u_long, u_long, short);
! 120: extern char * mfptoms (u_long, u_long, short);
! 121: extern const char * modetoa (int);
! 122: extern const char * eventstr (int);
! 123: extern const char * ceventstr (int);
! 124: extern char * statustoa (int, int);
! 125: extern const char * sysstatstr (int);
! 126: extern const char * peerstatstr (int);
! 127: extern const char * clockstatstr (int);
! 128: extern sockaddr_u * netof (sockaddr_u *);
! 129: extern char * numtoa (u_int32);
! 130: extern char * numtohost (u_int32);
! 131: extern char * socktoa (const sockaddr_u *);
! 132: extern char * socktohost (const sockaddr_u *);
! 133: extern int octtoint (const char *, u_long *);
! 134: extern u_long ranp2 (int);
! 135: extern char * refnumtoa (sockaddr_u *);
! 136: extern int tsftomsu (u_long, int);
! 137: extern char * uinttoa (u_long);
! 138:
! 139: extern int decodenetnum (const char *, sockaddr_u *);
! 140:
! 141: extern const char * FindConfig (const char *);
! 142:
! 143: extern void signal_no_reset (int, RETSIGTYPE (*func)(int));
! 144:
! 145: extern void getauthkeys (const char *);
! 146: extern void auth_agekeys (void);
! 147: extern void rereadkeys (void);
! 148:
! 149: /*
! 150: * Variable declarations for libntp.
! 151: */
! 152:
! 153: /*
! 154: * Defined by any program.
! 155: */
! 156: extern volatile int debug; /* debugging flag */
! 157:
! 158: /* authkeys.c */
! 159: extern u_long authkeynotfound; /* keys not found */
! 160: extern u_long authkeylookups; /* calls to lookup keys */
! 161: extern u_long authnumkeys; /* number of active keys */
! 162: extern u_long authkeyexpired; /* key lifetime expirations */
! 163: extern u_long authkeyuncached; /* cache misses */
! 164: extern u_long authencryptions; /* calls to encrypt */
! 165: extern u_long authdecryptions; /* calls to decrypt */
! 166:
! 167: extern int authnumfreekeys;
! 168:
! 169: /*
! 170: * The key cache. We cache the last key we looked at here.
! 171: */
! 172: extern keyid_t cache_keyid; /* key identifier */
! 173: extern u_char * cache_key; /* key pointer */
! 174: extern int cache_type; /* key type */
! 175: extern u_int cache_keylen; /* key length */
! 176:
! 177: /* getopt.c */
! 178: extern char * ntp_optarg; /* global argument pointer */
! 179: extern int ntp_optind; /* global argv index */
! 180:
! 181: /* lib_strbuf.c */
! 182: extern int ipv4_works;
! 183: extern int ipv6_works;
! 184:
! 185: /* machines.c */
! 186: typedef void (*pset_tod_using)(const char *);
! 187: extern pset_tod_using set_tod_using;
! 188:
! 189: /* ssl_init.c */
! 190: #ifdef OPENSSL
! 191: extern void ssl_init (void);
! 192: extern void ssl_check_version (void);
! 193: extern int ssl_init_done;
! 194: #define INIT_SSL() \
! 195: do { \
! 196: if (!ssl_init_done) \
! 197: ssl_init(); \
! 198: } while (0)
! 199: #else /* !OPENSSL follows */
! 200: #define INIT_SSL() do {} while (0)
! 201: #endif
! 202: extern int keytype_from_text (const char *, size_t *);
! 203: extern const char *keytype_name (int);
! 204: extern char * getpass_keytype (int);
! 205:
! 206:
! 207: /* lib/isc/win32/strerror.c
! 208: *
! 209: * To minimize Windows-specific changes to the rest of the NTP code,
! 210: * particularly reference clocks, we hijack calls to strerror() to deal
! 211: * with our mixture of error codes from the C runtime (open, write)
! 212: * and Windows (sockets, serial ports). This is an ugly hack because
! 213: * both use the lowest values differently, but particularly for ntpd,
! 214: * it's not a problem.
! 215: */
! 216: #ifdef NTP_REDEFINE_STRERROR
! 217: #define strerror(e) ntp_strerror(e)
! 218: extern char * ntp_strerror (int e);
! 219: #endif
! 220:
! 221: /* systime.c */
! 222: extern double sys_tick; /* adjtime() resolution */
! 223:
! 224: /* version.c */
! 225: extern const char *Version; /* version declaration */
! 226:
! 227: #endif /* NTP_STDLIB_H */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>