parse_conf.c revision 1.1.1.8 1 /*
2 * /src/NTP/ntp4-dev/libparse/parse_conf.c,v 4.9 2005/04/16 17:32:10 kardel RELEASE_20050508_A
3 *
4 * parse_conf.c,v 4.9 2005/04/16 17:32:10 kardel RELEASE_20050508_A
5 *
6 * Parser configuration module for reference clocks
7 *
8 * STREAM define switches between two personalities of the module
9 * if STREAM is defined this module can be used with dcf77sync.c as
10 * a STREAMS kernel module. In this case the time stamps will be
11 * a struct timeval.
12 * when STREAM is not defined NTP time stamps will be used.
13 *
14 * Copyright (c) 1995-2005 by Frank Kardel <kardel <AT> ntp.org>
15 * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universitaet Erlangen-Nuernberg, Germany
16 *
17 * Redistribution and use in source and binary forms, with or without
18 * modification, are permitted provided that the following conditions
19 * are met:
20 * 1. Redistributions of source code must retain the above copyright
21 * notice, this list of conditions and the following disclaimer.
22 * 2. Redistributions in binary form must reproduce the above copyright
23 * notice, this list of conditions and the following disclaimer in the
24 * documentation and/or other materials provided with the distribution.
25 * 3. Neither the name of the author nor the names of its contributors
26 * may be used to endorse or promote products derived from this software
27 * without specific prior written permission.
28 *
29 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
30 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
31 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
32 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
33 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
34 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
35 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
36 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
37 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
38 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
39 * SUCH DAMAGE.
40 *
41 */
42
43 #ifdef HAVE_CONFIG_H
44 # include <config.h>
45 #endif
46
47 #if defined(REFCLOCK) && defined(CLOCK_PARSE)
48
49 #include "ntp_fp.h"
50 #include "ntp_unixtime.h"
51 #include "ntp_calendar.h"
52
53 #include "parse.h"
54
55 #ifdef CLOCK_SCHMID
56 extern clockformat_t clock_schmid;
57 #endif
58
59 #ifdef CLOCK_DCF7000
60 extern clockformat_t clock_dcf7000;
61 #endif
62
63 #ifdef CLOCK_MEINBERG
64 extern clockformat_t clock_meinberg[];
65 #endif
66
67 #ifdef CLOCK_RAWDCF
68 extern clockformat_t clock_rawdcf;
69 #endif
70
71 #ifdef CLOCK_TRIMTAIP
72 extern clockformat_t clock_trimtaip;
73 #endif
74
75 #ifdef CLOCK_TRIMTSIP
76 extern clockformat_t clock_trimtsip;
77 #endif
78
79 #ifdef CLOCK_RCC8000
80 extern clockformat_t clock_rcc8000;
81 #endif
82
83 #ifdef CLOCK_HOPF6021
84 extern clockformat_t clock_hopf6021;
85 #endif
86
87 #ifdef CLOCK_COMPUTIME
88 extern clockformat_t clock_computime;
89 #endif
90
91 #ifdef CLOCK_WHARTON_400A
92 extern clockformat_t clock_wharton_400a;
93 #endif
94
95 #ifdef CLOCK_VARITEXT
96 extern clockformat_t clock_varitext;
97 #endif
98
99 #ifdef CLOCK_SEL240X
100 extern clockformat_t clock_sel240x;
101 #endif
102
103 /*
104 * format definitions
105 */
106 clockformat_t *clockformats[] =
107 {
108 #ifdef CLOCK_MEINBERG
109 &clock_meinberg[0],
110 &clock_meinberg[1],
111 &clock_meinberg[2],
112 #endif
113 #ifdef CLOCK_DCF7000
114 &clock_dcf7000,
115 #endif
116 #ifdef CLOCK_SCHMID
117 &clock_schmid,
118 #endif
119 #ifdef CLOCK_RAWDCF
120 &clock_rawdcf,
121 #endif
122 #ifdef CLOCK_TRIMTAIP
123 &clock_trimtaip,
124 #endif
125 #ifdef CLOCK_TRIMTSIP
126 &clock_trimtsip,
127 #endif
128 #ifdef CLOCK_RCC8000
129 &clock_rcc8000,
130 #endif
131 #ifdef CLOCK_HOPF6021
132 &clock_hopf6021,
133 #endif
134 #ifdef CLOCK_COMPUTIME
135 &clock_computime,
136 #endif
137 #ifdef CLOCK_WHARTON_400A
138 &clock_wharton_400a,
139 #endif
140 #ifdef CLOCK_VARITEXT
141 &clock_varitext,
142 #endif
143 #ifdef CLOCK_SEL240X
144 &clock_sel240x,
145 #endif
146 0};
147
148 unsigned short nformats = sizeof(clockformats) / sizeof(clockformats[0]) - 1;
149
150 #else /* not (REFCLOCK && CLOCK_PARSE) */
151 int parse_conf_bs;
152 #endif /* not (REFCLOCK && CLOCK_PARSE) */
153
154 /*
155 * History:
156 *
157 * parse_conf.c,v
158 * Revision 4.9 2005/04/16 17:32:10 kardel
159 * update copyright
160 *
161 * Revision 4.8 2004/11/14 15:29:41 kardel
162 * support PPSAPI, upgrade Copyright to Berkeley style
163 *
164 * Revision 4.5 1999/11/28 09:13:53 kardel
165 * RECON_4_0_98F
166 *
167 * Revision 4.4 1999/02/28 15:27:25 kardel
168 * wharton clock integration
169 *
170 * Revision 4.3 1998/08/16 18:52:15 kardel
171 * (clockformats): Trimble TSIP driver now also
172 * available for kernel operation
173 *
174 * Revision 4.2 1998/06/12 09:13:48 kardel
175 * conditional compile macros fixed
176 *
177 * Revision 4.1 1998/05/24 09:40:49 kardel
178 * adjustments of log messages
179 *
180 *
181 * from V3 3.24 log info deleted 1998/04/11 kardel
182 */
183