1: /*
2: * refclock_conf.c - reference clock configuration
3: */
4: #ifdef HAVE_CONFIG_H
5: #include <config.h>
6: #endif
7:
8: #include <stdio.h>
9: #include <sys/types.h>
10:
11: #include "ntpd.h"
12: #include "ntp_refclock.h"
13: #include "ntp_stdlib.h"
14:
15: #ifdef REFCLOCK
16:
17: static struct refclock refclock_none = {
18: noentry, noentry, noentry, noentry, noentry, noentry, NOFLAGS
19: };
20:
21: #ifdef CLOCK_LOCAL
22: extern struct refclock refclock_local;
23: #else
24: #define refclock_local refclock_none
25: #endif
26:
27: #if 0 && defined(CLOCK_TRAK) && defined(PPS)
28: extern struct refclock refclock_trak;
29: #else
30: #define refclock_trak refclock_none
31: #endif
32:
33: #ifdef CLOCK_PST
34: extern struct refclock refclock_pst;
35: #else
36: #define refclock_pst refclock_none
37: #endif
38:
39: #ifdef CLOCK_CHU
40: extern struct refclock refclock_chu;
41: #else
42: #define refclock_chu refclock_none
43: #endif
44:
45: #ifdef CLOCK_WWV
46: extern struct refclock refclock_wwv;
47: #else
48: #define refclock_wwv refclock_none
49: #endif
50:
51: #ifdef CLOCK_SPECTRACOM
52: extern struct refclock refclock_wwvb;
53: #else
54: #define refclock_wwvb refclock_none
55: #endif
56:
57: #ifdef CLOCK_PARSE
58: extern struct refclock refclock_parse;
59: #else
60: #define refclock_parse refclock_none
61: #endif
62:
63: #if defined(CLOCK_MX4200) && defined(HAVE_PPSAPI)
64: extern struct refclock refclock_mx4200;
65: #else
66: #define refclock_mx4200 refclock_none
67: #endif
68:
69: #ifdef CLOCK_AS2201
70: extern struct refclock refclock_as2201;
71: #else
72: #define refclock_as2201 refclock_none
73: #endif
74:
75: #ifdef CLOCK_ARBITER
76: extern struct refclock refclock_arbiter;
77: #else
78: #define refclock_arbiter refclock_none
79: #endif
80:
81: #ifdef CLOCK_TPRO
82: extern struct refclock refclock_tpro;
83: #else
84: #define refclock_tpro refclock_none
85: #endif
86:
87: #ifdef CLOCK_LEITCH
88: extern struct refclock refclock_leitch;
89: #else
90: #define refclock_leitch refclock_none
91: #endif
92:
93: #ifdef CLOCK_IRIG
94: extern struct refclock refclock_irig;
95: #else
96: #define refclock_irig refclock_none
97: #endif
98:
99: #if 0 && defined(CLOCK_MSFEES) && defined(PPS)
100: extern struct refclock refclock_msfees;
101: #else
102: #define refclock_msfees refclock_none
103: #endif
104:
105: #ifdef CLOCK_BANC
106: extern struct refclock refclock_bancomm;
107: #else
108: #define refclock_bancomm refclock_none
109: #endif
110:
111: #ifdef CLOCK_TRUETIME
112: extern struct refclock refclock_true;
113: #else
114: #define refclock_true refclock_none
115: #endif
116:
117: #ifdef CLOCK_DATUM
118: extern struct refclock refclock_datum;
119: #else
120: #define refclock_datum refclock_none
121: #endif
122:
123: #ifdef CLOCK_ACTS
124: extern struct refclock refclock_acts;
125: #else
126: #define refclock_acts refclock_none
127: #endif
128:
129: #ifdef CLOCK_HEATH
130: extern struct refclock refclock_heath;
131: #else
132: #define refclock_heath refclock_none
133: #endif
134:
135: #ifdef CLOCK_NMEA
136: extern struct refclock refclock_nmea;
137: #else
138: #define refclock_nmea refclock_none
139: #endif
140:
141: #if defined (CLOCK_ATOM) && defined(HAVE_PPSAPI)
142: extern struct refclock refclock_atom;
143: #else
144: #define refclock_atom refclock_none
145: #endif
146:
147: #ifdef CLOCK_HPGPS
148: extern struct refclock refclock_hpgps;
149: #else
150: #define refclock_hpgps refclock_none
151: #endif
152:
153: #ifdef CLOCK_GPSVME
154: extern struct refclock refclock_gpsvme;
155: #else
156: #define refclock_gpsvme refclock_none
157: #endif
158:
159: #ifdef CLOCK_ARCRON_MSF
160: extern struct refclock refclock_arc;
161: #else
162: #define refclock_arc refclock_none
163: #endif
164:
165: #ifdef CLOCK_SHM
166: extern struct refclock refclock_shm;
167: #else
168: #define refclock_shm refclock_none
169: #endif
170:
171: #ifdef CLOCK_PALISADE
172: extern struct refclock refclock_palisade;
173: #else
174: #define refclock_palisade refclock_none
175: #endif
176:
177: #if defined(CLOCK_ONCORE)
178: extern struct refclock refclock_oncore;
179: #else
180: #define refclock_oncore refclock_none
181: #endif
182:
183: #if defined(CLOCK_JUPITER) && defined(HAVE_PPSAPI)
184: extern struct refclock refclock_jupiter;
185: #else
186: #define refclock_jupiter refclock_none
187: #endif
188:
189: #if defined(CLOCK_CHRONOLOG)
190: extern struct refclock refclock_chronolog;
191: #else
192: #define refclock_chronolog refclock_none
193: #endif
194:
195: #if defined(CLOCK_DUMBCLOCK)
196: extern struct refclock refclock_dumbclock;
197: #else
198: #define refclock_dumbclock refclock_none
199: #endif
200:
201: #ifdef CLOCK_ULINK
202: extern struct refclock refclock_ulink;
203: #else
204: #define refclock_ulink refclock_none
205: #endif
206:
207: #ifdef CLOCK_PCF
208: extern struct refclock refclock_pcf;
209: #else
210: #define refclock_pcf refclock_none
211: #endif
212:
213: #ifdef CLOCK_FG
214: extern struct refclock refclock_fg;
215: #else
216: #define refclock_fg refclock_none
217: #endif
218:
219: #ifdef CLOCK_HOPF_SERIAL
220: extern struct refclock refclock_hopfser;
221: #else
222: #define refclock_hopfser refclock_none
223: #endif
224:
225: #ifdef CLOCK_HOPF_PCI
226: extern struct refclock refclock_hopfpci;
227: #else
228: #define refclock_hopfpci refclock_none
229: #endif
230:
231: #ifdef CLOCK_JJY
232: extern struct refclock refclock_jjy;
233: #else
234: #define refclock_jjy refclock_none
235: #endif
236:
237: #ifdef CLOCK_TT560
238: extern struct refclock refclock_tt560;
239: #else
240: #define refclock_tt560 refclock_none
241: #endif
242:
243: #ifdef CLOCK_ZYFER
244: extern struct refclock refclock_zyfer;
245: #else
246: #define refclock_zyfer refclock_none
247: #endif
248:
249: #ifdef CLOCK_RIPENCC
250: extern struct refclock refclock_ripencc;
251: #else
252: #define refclock_ripencc refclock_none
253: #endif
254:
255: #ifdef CLOCK_NEOCLOCK4X
256: extern struct refclock refclock_neoclock4x;
257: #else
258: #define refclock_neoclock4x refclock_none
259: #endif
260:
261: /*
262: * Order is clock_start(), clock_shutdown(), clock_poll(),
263: * clock_control(), clock_init(), clock_buginfo, clock_flags;
264: *
265: * Types are defined in ntp.h. The index must match this.
266: */
267: struct refclock * const refclock_conf[] = {
268: &refclock_none, /* 0 REFCLK_NONE */
269: &refclock_local, /* 1 REFCLK_LOCAL */
270: &refclock_none, /* 2 deprecated: REFCLK_GPS_TRAK */
271: &refclock_pst, /* 3 REFCLK_WWV_PST */
272: &refclock_wwvb, /* 4 REFCLK_SPECTRACOM */
273: &refclock_true, /* 5 REFCLK_TRUETIME */
274: &refclock_irig, /* 6 REFCLK_IRIG_AUDIO */
275: &refclock_chu, /* 7 REFCLK_CHU_AUDIO */
276: &refclock_parse, /* 8 REFCLK_PARSE */
277: &refclock_mx4200, /* 9 REFCLK_GPS_MX4200 */
278: &refclock_as2201, /* 10 REFCLK_GPS_AS2201 */
279: &refclock_arbiter, /* 11 REFCLK_GPS_ARBITER */
280: &refclock_tpro, /* 12 REFCLK_IRIG_TPRO */
281: &refclock_leitch, /* 13 REFCLK_ATOM_LEITCH */
282: &refclock_none, /* 14 deprecated: REFCLK_MSF_EES */
283: &refclock_none, /* 15 not used */
284: &refclock_bancomm, /* 16 REFCLK_IRIG_BANCOMM */
285: &refclock_datum, /* 17 REFCLK_GPS_DATUM */
286: &refclock_acts, /* 18 REFCLK_ACTS */
287: &refclock_heath, /* 19 REFCLK_WWV_HEATH */
288: &refclock_nmea, /* 20 REFCLK_GPS_NMEA */
289: &refclock_gpsvme, /* 21 REFCLK_GPS_VME */
290: &refclock_atom, /* 22 REFCLK_ATOM_PPS */
291: &refclock_none, /* 23 not used */
292: &refclock_none, /* 24 not used */
293: &refclock_none, /* 25 not used */
294: &refclock_hpgps, /* 26 REFCLK_GPS_HP */
295: &refclock_arc, /* 27 REFCLK_ARCRON_MSF */
296: &refclock_shm, /* 28 REFCLK_SHM */
297: &refclock_palisade, /* 29 REFCLK_PALISADE */
298: &refclock_oncore, /* 30 REFCLK_ONCORE */
299: &refclock_jupiter, /* 31 REFCLK_GPS_JUPITER */
300: &refclock_chronolog, /* 32 REFCLK_CHRONOLOG */
301: &refclock_dumbclock, /* 33 REFCLK_DUMBCLOCK */
302: &refclock_ulink, /* 34 REFCLOCK_ULINK */
303: &refclock_pcf, /* 35 REFCLOCK_PCF */
304: &refclock_wwv, /* 36 REFCLOCK_WWV_AUDIO */
305: &refclock_fg, /* 37 REFCLOCK_FG */
306: &refclock_hopfser, /* 38 REFCLK_HOPF_SERIAL */
307: &refclock_hopfpci, /* 39 REFCLK_HOPF_PCI */
308: &refclock_jjy, /* 40 REFCLK_JJY */
309: &refclock_tt560, /* 41 REFCLK_TT560 */
310: &refclock_zyfer, /* 42 REFCLK_ZYFER */
311: &refclock_ripencc, /* 43 REFCLK_RIPENCC */
312: &refclock_neoclock4x /* 44 REFCLK_NEOCLOCK4X */
313: };
314:
315: u_char num_refclock_conf = sizeof(refclock_conf)/sizeof(struct refclock *);
316:
317: #else
318: int refclock_conf_bs;
319: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>