2 * refclock_conf.c - reference clock configuration
12 #include "ntp_refclock.h"
13 #include "ntp_stdlib.h"
17 static struct refclock refclock_none = {
18 noentry, noentry, noentry, noentry, noentry, noentry, NOFLAGS
22 extern struct refclock refclock_local;
24 #define refclock_local refclock_none
28 extern struct refclock refclock_pst;
30 #define refclock_pst refclock_none
34 extern struct refclock refclock_chu;
36 #define refclock_chu refclock_none
40 extern struct refclock refclock_wwv;
42 #define refclock_wwv refclock_none
45 #ifdef CLOCK_SPECTRACOM
46 extern struct refclock refclock_wwvb;
48 #define refclock_wwvb refclock_none
52 extern struct refclock refclock_parse;
54 #define refclock_parse refclock_none
57 #if defined(CLOCK_MX4200) && defined(HAVE_PPSAPI)
58 extern struct refclock refclock_mx4200;
60 #define refclock_mx4200 refclock_none
64 extern struct refclock refclock_as2201;
66 #define refclock_as2201 refclock_none
70 extern struct refclock refclock_arbiter;
72 #define refclock_arbiter refclock_none
76 extern struct refclock refclock_tpro;
78 #define refclock_tpro refclock_none
82 extern struct refclock refclock_leitch;
84 #define refclock_leitch refclock_none
88 extern struct refclock refclock_irig;
90 #define refclock_irig refclock_none
93 #if 0 && defined(CLOCK_MSFEES) && defined(PPS)
94 extern struct refclock refclock_msfees;
96 #define refclock_msfees refclock_none
100 extern struct refclock refclock_bancomm;
102 #define refclock_bancomm refclock_none
105 #ifdef CLOCK_TRUETIME
106 extern struct refclock refclock_true;
108 #define refclock_true refclock_none
112 extern struct refclock refclock_datum;
114 #define refclock_datum refclock_none
118 extern struct refclock refclock_acts;
120 #define refclock_acts refclock_none
124 extern struct refclock refclock_heath;
126 #define refclock_heath refclock_none
130 extern struct refclock refclock_nmea;
132 #define refclock_nmea refclock_none
135 #if defined (CLOCK_ATOM) && defined(HAVE_PPSAPI)
136 extern struct refclock refclock_atom;
138 #define refclock_atom refclock_none
142 extern struct refclock refclock_hpgps;
144 #define refclock_hpgps refclock_none
148 extern struct refclock refclock_gpsvme;
150 #define refclock_gpsvme refclock_none
153 #ifdef CLOCK_ARCRON_MSF
154 extern struct refclock refclock_arc;
156 #define refclock_arc refclock_none
160 extern struct refclock refclock_shm;
162 #define refclock_shm refclock_none
165 #ifdef CLOCK_PALISADE
166 extern struct refclock refclock_palisade;
168 #define refclock_palisade refclock_none
171 #if defined(CLOCK_ONCORE)
172 extern struct refclock refclock_oncore;
174 #define refclock_oncore refclock_none
177 #if defined(CLOCK_JUPITER) && defined(HAVE_PPSAPI)
178 extern struct refclock refclock_jupiter;
180 #define refclock_jupiter refclock_none
183 #if defined(CLOCK_CHRONOLOG)
184 extern struct refclock refclock_chronolog;
186 #define refclock_chronolog refclock_none
189 #if defined(CLOCK_DUMBCLOCK)
190 extern struct refclock refclock_dumbclock;
192 #define refclock_dumbclock refclock_none
196 extern struct refclock refclock_ulink;
198 #define refclock_ulink refclock_none
202 extern struct refclock refclock_pcf;
204 #define refclock_pcf refclock_none
208 extern struct refclock refclock_fg;
210 #define refclock_fg refclock_none
213 #ifdef CLOCK_HOPF_SERIAL
214 extern struct refclock refclock_hopfser;
216 #define refclock_hopfser refclock_none
219 #ifdef CLOCK_HOPF_PCI
220 extern struct refclock refclock_hopfpci;
222 #define refclock_hopfpci refclock_none
226 extern struct refclock refclock_jjy;
228 #define refclock_jjy refclock_none
232 extern struct refclock refclock_tt560;
234 #define refclock_tt560 refclock_none
238 extern struct refclock refclock_zyfer;
240 #define refclock_zyfer refclock_none
244 extern struct refclock refclock_ripencc;
246 #define refclock_ripencc refclock_none
249 #ifdef CLOCK_NEOCLOCK4X
250 extern struct refclock refclock_neoclock4x;
252 #define refclock_neoclock4x refclock_none
255 #ifdef CLOCK_TSYNCPCI
256 extern struct refclock refclock_tsyncpci;
258 #define refclock_tsyncpci refclock_none
261 #if defined(CLOCK_GPSDJSON) && !defined(SYS_WINNT)
262 extern struct refclock refclock_gpsdjson;
264 #define refclock_gpsdjson refclock_none
267 * Order is clock_start(), clock_shutdown(), clock_poll(),
268 * clock_control(), clock_init(), clock_buginfo, clock_flags;
270 * Types are defined in ntp.h. The index must match this.
272 struct refclock * const refclock_conf[] = {
273 &refclock_none, /* 0 REFCLK_NONE */
274 &refclock_local, /* 1 REFCLK_LOCAL */
275 &refclock_none, /* 2 deprecated: REFCLK_GPS_TRAK */
276 &refclock_pst, /* 3 REFCLK_WWV_PST */
277 &refclock_wwvb, /* 4 REFCLK_SPECTRACOM */
278 &refclock_true, /* 5 REFCLK_TRUETIME */
279 &refclock_irig, /* 6 REFCLK_IRIG_AUDIO */
280 &refclock_chu, /* 7 REFCLK_CHU_AUDIO */
281 &refclock_parse, /* 8 REFCLK_PARSE */
282 &refclock_mx4200, /* 9 REFCLK_GPS_MX4200 */
283 &refclock_as2201, /* 10 REFCLK_GPS_AS2201 */
284 &refclock_arbiter, /* 11 REFCLK_GPS_ARBITER */
285 &refclock_tpro, /* 12 REFCLK_IRIG_TPRO */
286 &refclock_leitch, /* 13 REFCLK_ATOM_LEITCH */
287 &refclock_none, /* 14 deprecated: REFCLK_MSF_EES */
288 &refclock_none, /* 15 not used */
289 &refclock_bancomm, /* 16 REFCLK_IRIG_BANCOMM */
290 &refclock_datum, /* 17 REFCLK_GPS_DATUM */
291 &refclock_acts, /* 18 REFCLK_ACTS */
292 &refclock_heath, /* 19 REFCLK_WWV_HEATH */
293 &refclock_nmea, /* 20 REFCLK_GPS_NMEA */
294 &refclock_gpsvme, /* 21 REFCLK_GPS_VME */
295 &refclock_atom, /* 22 REFCLK_ATOM_PPS */
296 &refclock_none, /* 23 not used */
297 &refclock_none, /* 24 not used */
298 &refclock_none, /* 25 not used */
299 &refclock_hpgps, /* 26 REFCLK_GPS_HP */
300 &refclock_arc, /* 27 REFCLK_ARCRON_MSF */
301 &refclock_shm, /* 28 REFCLK_SHM */
302 &refclock_palisade, /* 29 REFCLK_PALISADE */
303 &refclock_oncore, /* 30 REFCLK_ONCORE */
304 &refclock_jupiter, /* 31 REFCLK_GPS_JUPITER */
305 &refclock_chronolog, /* 32 REFCLK_CHRONOLOG */
306 &refclock_dumbclock, /* 33 REFCLK_DUMBCLOCK */
307 &refclock_ulink, /* 34 REFCLOCK_ULINK */
308 &refclock_pcf, /* 35 REFCLOCK_PCF */
309 &refclock_wwv, /* 36 REFCLOCK_WWV_AUDIO */
310 &refclock_fg, /* 37 REFCLOCK_FG */
311 &refclock_hopfser, /* 38 REFCLK_HOPF_SERIAL */
312 &refclock_hopfpci, /* 39 REFCLK_HOPF_PCI */
313 &refclock_jjy, /* 40 REFCLK_JJY */
314 &refclock_tt560, /* 41 REFCLK_TT560 */
315 &refclock_zyfer, /* 42 REFCLK_ZYFER */
316 &refclock_ripencc, /* 43 REFCLK_RIPENCC */
317 &refclock_neoclock4x, /* 44 REFCLK_NEOCLOCK4X */
318 &refclock_tsyncpci, /* 45 REFCLK_TSYNCPCI */
319 &refclock_gpsdjson /* 46 REFCLK_GPSDJSON */
322 u_char num_refclock_conf = sizeof(refclock_conf)/sizeof(struct refclock *);
325 int refclock_conf_bs;