Initial import from FreeBSD RELENG_4:
[games.git] / contrib / ntp / ntpd / refclock_conf.c
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 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 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 #ifdef CLOCK_ATOM
142 extern  struct refclock refclock_atom;
143 #else
144 #define refclock_atom   refclock_none
145 #endif
146
147 #ifdef CLOCK_PTBACTS
148 extern  struct refclock refclock_ptb;
149 #else
150 #define refclock_ptb    refclock_none
151 #endif
152
153 #ifdef CLOCK_USNO
154 extern  struct refclock refclock_usno;
155 #else
156 #define refclock_usno   refclock_none
157 #endif
158
159 #ifdef CLOCK_HPGPS
160 extern  struct refclock refclock_hpgps;
161 #else
162 #define refclock_hpgps  refclock_none
163 #endif
164
165 #ifdef CLOCK_GPSVME
166 extern  struct refclock refclock_gpsvme;
167 #else
168 #define refclock_gpsvme refclock_none
169 #endif
170
171 #ifdef CLOCK_ARCRON_MSF
172 extern  struct refclock refclock_arc;
173 #else
174 #define refclock_arc refclock_none
175 #endif
176
177 #ifdef CLOCK_SHM
178 extern  struct refclock refclock_shm;
179 #else
180 #define refclock_shm refclock_none
181 #endif
182
183 #ifdef CLOCK_PALISADE
184 extern  struct refclock refclock_palisade;
185 #else
186 #define refclock_palisade refclock_none
187 #endif
188
189 #if defined(CLOCK_ONCORE) && defined(HAVE_PPSAPI)
190 extern  struct refclock refclock_oncore;
191 #else
192 #define refclock_oncore refclock_none
193 #endif
194
195 #if defined(CLOCK_JUPITER) && defined(PPS)
196 extern  struct refclock refclock_jupiter;
197 #else
198 #define refclock_jupiter refclock_none
199 #endif
200
201 #if defined(CLOCK_CHRONOLOG)
202 extern struct refclock refclock_chronolog;
203 #else
204 #define refclock_chronolog refclock_none
205 #endif
206
207 #if defined(CLOCK_DUMBCLOCK)
208 extern struct refclock refclock_dumbclock;
209 #else
210 #define refclock_dumbclock refclock_none
211 #endif
212
213 #ifdef CLOCK_ULINK
214 extern  struct refclock refclock_ulink;
215 #else
216 #define refclock_ulink  refclock_none
217 #endif
218
219 #ifdef CLOCK_PCF
220 extern  struct refclock refclock_pcf;
221 #else
222 #define refclock_pcf    refclock_none
223 #endif
224
225 #ifdef CLOCK_FG
226 extern  struct refclock refclock_fg;
227 #else
228 #define refclock_fg     refclock_none
229 #endif
230
231 #ifdef CLOCK_HOPF_SERIAL
232 extern  struct refclock refclock_hopfser;
233 #else
234 #define refclock_hopfser refclock_none
235 #endif
236
237 #ifdef CLOCK_HOPF_PCI
238 extern  struct refclock refclock_hopfpci;
239 #else
240 #define refclock_hopfpci refclock_none
241 #endif
242
243 /*
244  * Order is clock_start(), clock_shutdown(), clock_poll(),
245  * clock_control(), clock_init(), clock_buginfo, clock_flags;
246  *
247  * Types are defined in ntp.h.  The index must match this.
248  */
249 struct refclock *refclock_conf[] = {
250         &refclock_none,         /* 0 REFCLK_NONE */
251         &refclock_local,        /* 1 REFCLK_LOCAL */
252         &refclock_trak,         /* 2 REFCLK_GPS_TRAK */
253         &refclock_pst,          /* 3 REFCLK_WWV_PST */
254         &refclock_wwvb,         /* 4 REFCLK_SPECTRACOM */
255         &refclock_true,         /* 5 REFCLK_TRUETIME */
256         &refclock_irig,         /* 6 REFCLK_IRIG_AUDIO */
257         &refclock_chu,          /* 7 REFCLK_CHU_AUDIO */
258         &refclock_parse,        /* 8 REFCLK_PARSE */
259         &refclock_mx4200,       /* 9 REFCLK_GPS_MX4200 */
260         &refclock_as2201,       /* 10 REFCLK_GPS_AS2201 */
261         &refclock_arbiter,      /* 11 REFCLK_GPS_ARBITER */
262         &refclock_tpro,         /* 12 REFCLK_IRIG_TPRO */
263         &refclock_leitch,       /* 13 REFCLK_ATOM_LEITCH */
264         &refclock_msfees,       /* 14 REFCLK_MSF_EES */
265         &refclock_true,         /* 15 alias for REFCLK_TRUETIME */
266         &refclock_bancomm,      /* 16 REFCLK_IRIG_BANCOMM */
267         &refclock_datum,        /* 17 REFCLK_GPS_DATUM */
268         &refclock_acts,         /* 18 REFCLK_NIST_ACTS */
269         &refclock_heath,        /* 19 REFCLK_WWV_HEATH */
270         &refclock_nmea,         /* 20 REFCLK_GPS_NMEA */
271         &refclock_gpsvme,       /* 21 REFCLK_GPS_VME */
272         &refclock_atom,         /* 22 REFCLK_ATOM_PPS */
273         &refclock_ptb,          /* 23 REFCLK_PTB_ACTS */
274         &refclock_usno,         /* 24 REFCLK_USNO */
275         &refclock_true,         /* 25 alias for REFCLK_TRUETIME */
276         &refclock_hpgps,        /* 26 REFCLK_GPS_HP */
277         &refclock_arc,          /* 27 REFCLK_ARCRON_MSF */
278         &refclock_shm,          /* 28 REFCLK_SHM */
279         &refclock_palisade,     /* 29 REFCLK_PALISADE */
280         &refclock_oncore,       /* 30 REFCLK_ONCORE */
281         &refclock_jupiter,      /* 31 REFCLK_GPS_JUPITER */
282         &refclock_chronolog,    /* 32 REFCLK_CHRONOLOG */
283         &refclock_dumbclock,    /* 33 REFCLK_DUMBCLOCK */
284         &refclock_ulink,        /* 34 REFCLOCK_ULINK */
285         &refclock_pcf,          /* 35 REFCLOCK_PCF */
286         &refclock_wwv,          /* 36 REFCLOCK_WWV_AUDIO */
287         &refclock_fg,           /* 37 REFCLOCK_FG */
288         &refclock_hopfser,      /* 38 REFCLK_HOPF_SERIAL */
289         &refclock_hopfpci       /* 39 REFCLK_HOPF_PCI */
290 };
291
292 u_char num_refclock_conf = sizeof(refclock_conf)/sizeof(struct refclock *);
293
294 #else
295 int refclock_conf_bs;
296 #endif