Annotation of embedaddon/ntp/kernel/sys/parsestreams.h, revision 1.1.1.1
1.1 misho 1: /*
2: * /src/NTP/ntp4-dev/kernel/sys/parsestreams.h,v 4.5 2005/06/25 10:52:47 kardel RELEASE_20050625_A
3: *
4: * parsestreams.h,v 4.5 2005/06/25 10:52:47 kardel RELEASE_20050625_A
5: *
6: * Copyright (c) 1995-2005 by Frank Kardel <kardel <AT> ntp.org>
7: * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universität Erlangen-Nürnberg, Germany
8: *
9: * Redistribution and use in source and binary forms, with or without
10: * modification, are permitted provided that the following conditions
11: * are met:
12: * 1. Redistributions of source code must retain the above copyright
13: * notice, this list of conditions and the following disclaimer.
14: * 2. Redistributions in binary form must reproduce the above copyright
15: * notice, this list of conditions and the following disclaimer in the
16: * documentation and/or other materials provided with the distribution.
17: * 3. Neither the name of the author nor the names of its contributors
18: * may be used to endorse or promote products derived from this software
19: * without specific prior written permission.
20: *
21: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
22: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24: * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
25: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31: * SUCH DAMAGE.
32: */
33:
34: #if !(defined(lint) || defined(__GNUC__))
35: static char sysparsehrcsid[] = "parsestreams.h,v 4.5 2005/06/25 10:52:47 kardel RELEASE_20050625_A";
36: #endif
37:
38: #undef PARSEKERNEL
39: #if defined(KERNEL) || defined(_KERNEL)
40: #ifndef PARSESTREAM
41: #define PARSESTREAM
42: #endif
43: #endif
44: #if defined(PARSESTREAM) && defined(HAVE_SYS_STREAM_H)
45: #define PARSEKERNEL
46:
47: #ifdef HAVE_SYS_TERMIOS_H
48: #include <sys/termios.h>
49: #endif
50:
51: #include <sys/ppsclock.h>
52:
53: #ifndef NTP_NEED_BOPS
54: #define NTP_NEED_BOPS
55: #endif
56:
57: #if defined(PARSESTREAM) && (defined(_sun) || defined(__sun)) && defined(HAVE_SYS_STREAM_H)
58: /*
59: * Sorry, but in SunOS 4.x AND Solaris 2.x kernels there are no
60: * mem* operations. I don't want them - bcopy, bzero
61: * are fine in the kernel
62: */
63: #undef HAVE_STRING_H /* don't include that at kernel level - prototype mismatch in Solaris 2.6 */
64: #include "ntp_string.h"
65: #else
66: #include <stdio.h>
67: #endif
68:
69: struct parsestream /* parse module local data */
70: {
71: queue_t *parse_queue; /* read stream for this channel */
72: queue_t *parse_dqueue; /* driver queue entry (PPS support) */
73: unsigned long parse_status; /* operation flags */
74: void *parse_data; /* local data space (PPS support) */
75: parse_t parse_io; /* io structure */
76: struct ppsclockev parse_ppsclockev; /* copy of last pps event */
77: };
78:
79: typedef struct parsestream parsestream_t;
80:
81: #define PARSE_ENABLE 0x0001
82:
83: /*--------------- debugging support ---------------------------------*/
84:
85: #define DD_OPEN 0x00000001
86: #define DD_CLOSE 0x00000002
87: #define DD_RPUT 0x00000004
88: #define DD_WPUT 0x00000008
89: #define DD_RSVC 0x00000010
90: #define DD_PARSE 0x00000020
91: #define DD_INSTALL 0x00000040
92: #define DD_ISR 0x00000080
93: #define DD_RAWDCF 0x00000100
94:
95: extern int parsedebug;
96:
97: #ifdef DEBUG_PARSE
98:
99: #define parseprintf(X, Y) if ((X) & parsedebug) printf Y
100:
101: #else
102:
103: #define parseprintf(X, Y)
104:
105: #endif
106: #endif
107:
108: /*
109: * History:
110: *
111: * parsestreams.h,v
112: * Revision 4.5 2005/06/25 10:52:47 kardel
113: * fix version id / add version log
114: *
115: * Revision 4.4 1998/06/14 21:09:32 kardel
116: * Sun acc cleanup
117: *
118: * Revision 4.3 1998/06/13 18:14:32 kardel
119: * make mem*() to b*() mapping magic work on Solaris too
120: *
121: * Revision 4.2 1998/06/13 15:16:22 kardel
122: * fix mem*() to b*() function macro emulation
123: *
124: * Revision 4.1 1998/06/13 11:50:37 kardel
125: * STREAM macro gone in favor of HAVE_SYS_STREAM_H
126: *
127: * Revision 4.0 1998/04/10 19:51:30 kardel
128: * Start 4.0 release version numbering
129: *
130: * Revision 1.2 1998/04/10 19:27:42 kardel
131: * initial NTP VERSION 4 integration of PARSE with GPS166 binary support
132: *
133: */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>