Annotation of embedaddon/ntp/include/ntp_types.h, revision 1.1

1.1     ! misho       1: /*
        !             2:  *  ntp_types.h - defines how int32 and u_int32 are treated.
        !             3:  *  For 64 bit systems like the DEC Alpha, they have to be defined
        !             4:  *  as int and u_int.
        !             5:  *  For 32 bit systems, define them as long and u_long
        !             6:  */
        !             7: #ifndef NTP_TYPES_H
        !             8: #define NTP_TYPES_H
        !             9: 
        !            10: #include <sys/types.h>
        !            11: #include "ntp_machine.h"
        !            12: 
        !            13: #ifndef TRUE
        !            14: # define       TRUE    1
        !            15: #endif
        !            16: #ifndef FALSE
        !            17: # define       FALSE   0
        !            18: #endif
        !            19: 
        !            20: /*
        !            21:  * This is another naming conflict.
        !            22:  * On NetBSD for MAC the macro "mac" is defined as 1
        !            23:  * this is fun for us as a packet structure contains an
        !            24:  * optional "mac" member - severe confusion results 8-)
        !            25:  * As we hopefully do not have to rely on that macro we
        !            26:  * just undefine that.
        !            27:  */
        !            28: #ifdef mac
        !            29: #undef mac
        !            30: #endif
        !            31: 
        !            32: /*
        !            33:  * used to quiet compiler warnings
        !            34:  */
        !            35: #ifndef UNUSED_ARG
        !            36: #define UNUSED_ARG(arg)        ((void)(arg))
        !            37: #endif
        !            38: 
        !            39: /*
        !            40:  * COUNTOF(array) - size of array in elements
        !            41:  */
        !            42: #define COUNTOF(arr)   (sizeof(arr) / sizeof((arr)[0]))
        !            43: 
        !            44: /*
        !            45:  * VMS DECC (v4.1), {u_char,u_short,u_long} are only in SOCKET.H,
        !            46:  *                     and u_int isn't defined anywhere
        !            47:  */
        !            48: #if defined(VMS)
        !            49: #include <socket.h>
        !            50: typedef unsigned int u_int;
        !            51: /*
        !            52:  * Note: VMS DECC has  long == int  (even on __alpha),
        !            53:  *      so the distinction below doesn't matter
        !            54:  */
        !            55: #endif /* VMS */
        !            56: 
        !            57: #if (SIZEOF_INT == 4)
        !            58: # ifndef int32
        !            59: #  define int32 int
        !            60: #  ifndef INT32_MIN
        !            61: #   define INT32_MIN INT_MIN
        !            62: #  endif
        !            63: #  ifndef INT32_MAX
        !            64: #   define INT32_MAX INT_MAX
        !            65: #  endif
        !            66: # endif
        !            67: # ifndef u_int32
        !            68: #  define u_int32 unsigned int
        !            69: #  ifndef U_INT32_MAX
        !            70: #   define U_INT32_MAX UINT_MAX
        !            71: #  endif
        !            72: # endif
        !            73: #else /* not sizeof(int) == 4 */
        !            74: # if (SIZEOF_LONG == 4)
        !            75: #  ifndef int32
        !            76: #   define int32 long
        !            77: #   ifndef INT32_MIN
        !            78: #    define INT32_MIN LONG_MIN
        !            79: #   endif
        !            80: #   ifndef INT32_MAX
        !            81: #    define INT32_MAX LONG_MAX
        !            82: #   endif
        !            83: #  endif
        !            84: #  ifndef u_int32
        !            85: #   define u_int32 unsigned long
        !            86: #   ifndef U_INT32_MAX
        !            87: #    define U_INT32_MAX ULONG_MAX
        !            88: #   endif
        !            89: #  endif
        !            90: # else /* not sizeof(long) == 4 */
        !            91: #  include "Bletch: what's 32 bits on this machine?"
        !            92: # endif /* not sizeof(long) == 4 */
        !            93: #endif /* not sizeof(int) == 4 */
        !            94: 
        !            95: typedef u_char         ntp_u_int8_t;
        !            96: typedef u_short                ntp_u_int16_t;
        !            97: typedef u_int32                ntp_u_int32_t;
        !            98: 
        !            99: typedef struct ntp_uint64_t { u_int32 val[2]; } ntp_uint64_t;
        !           100: 
        !           101: typedef unsigned short associd_t; /* association ID */
        !           102: typedef u_int32 keyid_t;       /* cryptographic key ID */
        !           103: typedef u_int32 tstamp_t;      /* NTP seconds timestamp */
        !           104: 
        !           105: /*
        !           106:  * On Unix struct sock_timeval is equivalent to struct timeval.
        !           107:  * On Windows built with 64-bit time_t, sock_timeval.tv_sec is a long
        !           108:  * as required by Windows' socket() interface timeout argument, while
        !           109:  * timeval.tv_sec is time_t for the more common use as a UTC time 
        !           110:  * within NTP.
        !           111:  */
        !           112: #ifndef SYS_WINNT
        !           113: #define        sock_timeval    timeval
        !           114: #endif
        !           115: 
        !           116: /*
        !           117:  * On Unix open() works for tty (serial) devices just fine, while on
        !           118:  * Windows refclock serial devices are opened using CreateFile, a lower
        !           119:  * level than the CRT-provided descriptors, because the C runtime lacks
        !           120:  * tty APIs.  For refclocks which wish to use open() as well as or 
        !           121:  * instead of refclock_open(), tty_open() is equivalent to open() on
        !           122:  * Unix and  implemented in the Windows port similarly to
        !           123:  * refclock_open().
        !           124:  */
        !           125: #ifndef SYS_WINNT
        !           126: #define tty_open(f, a, m)      open(f, a, m)
        !           127: #endif
        !           128: 
        !           129: 
        !           130: #endif /* NTP_TYPES_H */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>