Annotation of embedaddon/ntp/include/ntp_types.h, revision 1.1.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>