File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / ntp / include / ntp_types.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:08:38 2012 UTC (12 years, 1 month ago) by misho
Branches: ntp, MAIN
CVS tags: v4_2_6p5p0, v4_2_6p5, HEAD
ntp 4.2.6p5

    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>