xref: /freebsd/contrib/ntp/libparse/parse_conf.c (revision a151a66c2a1c722d095dfdd6a06d8acd74a03253)
1c0b746e5SOllivier Robert /*
2a151a66cSOllivier Robert  * /src/NTP/ntp-4/libparse/parse_conf.c,v 4.5 1999/11/28 09:13:53 kardel RELEASE_19991128_A
3c0b746e5SOllivier Robert  *
4a151a66cSOllivier Robert  * parse_conf.c,v 4.5 1999/11/28 09:13:53 kardel RELEASE_19991128_A
5c0b746e5SOllivier Robert  *
6c0b746e5SOllivier Robert  * Parser configuration module for reference clocks
7c0b746e5SOllivier Robert  *
8c0b746e5SOllivier Robert  * STREAM define switches between two personalities of the module
9c0b746e5SOllivier Robert  * if STREAM is defined this module can be used with dcf77sync.c as
10c0b746e5SOllivier Robert  * a STREAMS kernel module. In this case the time stamps will be
11c0b746e5SOllivier Robert  * a struct timeval.
12c0b746e5SOllivier Robert  * when STREAM is not defined NTP time stamps will be used.
13c0b746e5SOllivier Robert  *
14c0b746e5SOllivier Robert  * Copyright (C) 1995-1998 by Frank Kardel
15c0b746e5SOllivier Robert  * Copyright (C) 1992-1994 by Frank Kardel, Friedrich-Alexander Universit�t Erlangen-N�rnberg, Germany
16c0b746e5SOllivier Robert  *
17c0b746e5SOllivier Robert  * This program is distributed in the hope that it will be useful,
18c0b746e5SOllivier Robert  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19c0b746e5SOllivier Robert  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20c0b746e5SOllivier Robert  *
21c0b746e5SOllivier Robert  */
22c0b746e5SOllivier Robert 
23c0b746e5SOllivier Robert #ifdef HAVE_CONFIG_H
24c0b746e5SOllivier Robert # include <config.h>
25c0b746e5SOllivier Robert #endif
26c0b746e5SOllivier Robert 
27c0b746e5SOllivier Robert #if defined(REFCLOCK) && defined(CLOCK_PARSE)
28c0b746e5SOllivier Robert 
29c0b746e5SOllivier Robert #include <sys/types.h>
30c0b746e5SOllivier Robert #include <sys/time.h>
31c0b746e5SOllivier Robert 
32c0b746e5SOllivier Robert #include "ntp_fp.h"
33c0b746e5SOllivier Robert #include "ntp_unixtime.h"
34c0b746e5SOllivier Robert #include "ntp_calendar.h"
35c0b746e5SOllivier Robert 
36c0b746e5SOllivier Robert #include "parse.h"
37c0b746e5SOllivier Robert 
38c0b746e5SOllivier Robert #ifdef CLOCK_SCHMID
39c0b746e5SOllivier Robert extern clockformat_t clock_schmid;
40c0b746e5SOllivier Robert #endif
41c0b746e5SOllivier Robert 
42c0b746e5SOllivier Robert #ifdef CLOCK_DCF7000
43c0b746e5SOllivier Robert extern clockformat_t clock_dcf7000;
44c0b746e5SOllivier Robert #endif
45c0b746e5SOllivier Robert 
46c0b746e5SOllivier Robert #ifdef CLOCK_MEINBERG
47c0b746e5SOllivier Robert extern clockformat_t clock_meinberg[];
48c0b746e5SOllivier Robert #endif
49c0b746e5SOllivier Robert 
50c0b746e5SOllivier Robert #ifdef CLOCK_RAWDCF
51c0b746e5SOllivier Robert extern clockformat_t clock_rawdcf;
52c0b746e5SOllivier Robert #endif
53c0b746e5SOllivier Robert 
54c0b746e5SOllivier Robert #ifdef CLOCK_TRIMTAIP
55c0b746e5SOllivier Robert extern clockformat_t clock_trimtaip;
56c0b746e5SOllivier Robert #endif
57c0b746e5SOllivier Robert 
58c0b746e5SOllivier Robert #ifdef CLOCK_TRIMTSIP
59c0b746e5SOllivier Robert extern clockformat_t clock_trimtsip;
60c0b746e5SOllivier Robert #endif
61c0b746e5SOllivier Robert 
62c0b746e5SOllivier Robert #ifdef CLOCK_RCC8000
63c0b746e5SOllivier Robert extern clockformat_t clock_rcc8000;
64c0b746e5SOllivier Robert #endif
65c0b746e5SOllivier Robert 
66c0b746e5SOllivier Robert #ifdef CLOCK_HOPF6021
67c0b746e5SOllivier Robert extern clockformat_t clock_hopf6021;
68c0b746e5SOllivier Robert #endif
69c0b746e5SOllivier Robert 
70c0b746e5SOllivier Robert #ifdef CLOCK_COMPUTIME
71c0b746e5SOllivier Robert extern clockformat_t clock_computime;
72c0b746e5SOllivier Robert #endif
73c0b746e5SOllivier Robert 
74c0b746e5SOllivier Robert #ifdef CLOCK_WHARTON_400A
75c0b746e5SOllivier Robert extern clockformat_t clock_wharton_400a;
76c0b746e5SOllivier Robert #endif
77c0b746e5SOllivier Robert 
78c0b746e5SOllivier Robert #ifdef CLOCK_VARITEXT
79c0b746e5SOllivier Robert extern clockformat_t clock_varitext;
80c0b746e5SOllivier Robert #endif
81c0b746e5SOllivier Robert 
82c0b746e5SOllivier Robert /*
83c0b746e5SOllivier Robert  * format definitions
84c0b746e5SOllivier Robert  */
85c0b746e5SOllivier Robert clockformat_t *clockformats[] =
86c0b746e5SOllivier Robert {
87c0b746e5SOllivier Robert #ifdef CLOCK_MEINBERG
88c0b746e5SOllivier Robert 	&clock_meinberg[0],
89c0b746e5SOllivier Robert 	&clock_meinberg[1],
90c0b746e5SOllivier Robert 	&clock_meinberg[2],
91c0b746e5SOllivier Robert #endif
92c0b746e5SOllivier Robert #ifdef CLOCK_DCF7000
93c0b746e5SOllivier Robert 	&clock_dcf7000,
94c0b746e5SOllivier Robert #endif
95c0b746e5SOllivier Robert #ifdef CLOCK_SCHMID
96c0b746e5SOllivier Robert 	&clock_schmid,
97c0b746e5SOllivier Robert #endif
98c0b746e5SOllivier Robert #ifdef CLOCK_RAWDCF
99c0b746e5SOllivier Robert 	&clock_rawdcf,
100c0b746e5SOllivier Robert #endif
101c0b746e5SOllivier Robert #ifdef CLOCK_TRIMTAIP
102c0b746e5SOllivier Robert 	&clock_trimtaip,
103c0b746e5SOllivier Robert #endif
104c0b746e5SOllivier Robert #ifdef CLOCK_TRIMTSIP
105c0b746e5SOllivier Robert 	&clock_trimtsip,
106c0b746e5SOllivier Robert #endif
107c0b746e5SOllivier Robert #ifdef CLOCK_RCC8000
108c0b746e5SOllivier Robert 	&clock_rcc8000,
109c0b746e5SOllivier Robert #endif
110c0b746e5SOllivier Robert #ifdef CLOCK_HOPF6021
111c0b746e5SOllivier Robert 	&clock_hopf6021,
112c0b746e5SOllivier Robert #endif
113c0b746e5SOllivier Robert #ifdef CLOCK_COMPUTIME
114c0b746e5SOllivier Robert 	&clock_computime,
115c0b746e5SOllivier Robert #endif
116c0b746e5SOllivier Robert #ifdef CLOCK_WHARTON_400A
117c0b746e5SOllivier Robert 	&clock_wharton_400a,
118c0b746e5SOllivier Robert #endif
119c0b746e5SOllivier Robert #ifdef CLOCK_VARITEXT
120c0b746e5SOllivier Robert         &clock_varitext,
121c0b746e5SOllivier Robert #endif
122c0b746e5SOllivier Robert 	0};
123c0b746e5SOllivier Robert 
124c0b746e5SOllivier Robert unsigned short nformats = sizeof(clockformats) / sizeof(clockformats[0]) - 1;
125c0b746e5SOllivier Robert 
126c0b746e5SOllivier Robert #else /* not (REFCLOCK && CLOCK_PARSE) */
127c0b746e5SOllivier Robert int parse_conf_bs;
128c0b746e5SOllivier Robert #endif /* not (REFCLOCK && CLOCK_PARSE) */
129c0b746e5SOllivier Robert 
130c0b746e5SOllivier Robert /*
131c0b746e5SOllivier Robert  * History:
132c0b746e5SOllivier Robert  *
133c0b746e5SOllivier Robert  * parse_conf.c,v
134a151a66cSOllivier Robert  * Revision 4.5  1999/11/28 09:13:53  kardel
135a151a66cSOllivier Robert  * RECON_4_0_98F
136a151a66cSOllivier Robert  *
137c0b746e5SOllivier Robert  * Revision 4.4  1999/02/28 15:27:25  kardel
138c0b746e5SOllivier Robert  * wharton clock integration
139c0b746e5SOllivier Robert  *
140c0b746e5SOllivier Robert  * Revision 4.3  1998/08/16 18:52:15  kardel
141c0b746e5SOllivier Robert  * (clockformats): Trimble TSIP driver now also
142c0b746e5SOllivier Robert  * available for kernel operation
143c0b746e5SOllivier Robert  *
144c0b746e5SOllivier Robert  * Revision 4.2  1998/06/12 09:13:48  kardel
145c0b746e5SOllivier Robert  * conditional compile macros fixed
146c0b746e5SOllivier Robert  *
147c0b746e5SOllivier Robert  * Revision 4.1  1998/05/24 09:40:49  kardel
148c0b746e5SOllivier Robert  * adjustments of log messages
149c0b746e5SOllivier Robert  *
150c0b746e5SOllivier Robert  *
151c0b746e5SOllivier Robert  * from V3 3.24 log info deleted 1998/04/11 kardel
152c0b746e5SOllivier Robert  */
153