refclock_conf.c revision 106163
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 17static struct refclock refclock_none = { 18 noentry, noentry, noentry, noentry, noentry, noentry, NOFLAGS 19}; 20 21#ifdef CLOCK_LOCAL 22extern struct refclock refclock_local; 23#else 24#define refclock_local refclock_none 25#endif 26 27#if defined(CLOCK_TRAK) && defined(PPS) 28extern struct refclock refclock_trak; 29#else 30#define refclock_trak refclock_none 31#endif 32 33#ifdef CLOCK_PST 34extern struct refclock refclock_pst; 35#else 36#define refclock_pst refclock_none 37#endif 38 39#ifdef CLOCK_CHU 40extern struct refclock refclock_chu; 41#else 42#define refclock_chu refclock_none 43#endif 44 45#ifdef CLOCK_WWV 46extern struct refclock refclock_wwv; 47#else 48#define refclock_wwv refclock_none 49#endif 50 51#ifdef CLOCK_SPECTRACOM 52extern struct refclock refclock_wwvb; 53#else 54#define refclock_wwvb refclock_none 55#endif 56 57#ifdef CLOCK_PARSE 58extern struct refclock refclock_parse; 59#else 60#define refclock_parse refclock_none 61#endif 62 63#if defined(CLOCK_MX4200) && defined(HAVE_PPSAPI) 64extern struct refclock refclock_mx4200; 65#else 66#define refclock_mx4200 refclock_none 67#endif 68 69#ifdef CLOCK_AS2201 70extern struct refclock refclock_as2201; 71#else 72#define refclock_as2201 refclock_none 73#endif 74 75#ifdef CLOCK_ARBITER 76extern struct refclock refclock_arbiter; 77#else 78#define refclock_arbiter refclock_none 79#endif 80 81#ifdef CLOCK_TPRO 82extern struct refclock refclock_tpro; 83#else 84#define refclock_tpro refclock_none 85#endif 86 87#ifdef CLOCK_LEITCH 88extern struct refclock refclock_leitch; 89#else 90#define refclock_leitch refclock_none 91#endif 92 93#ifdef CLOCK_IRIG 94extern struct refclock refclock_irig; 95#else 96#define refclock_irig refclock_none 97#endif 98 99#if defined(CLOCK_MSFEES) && defined(PPS) 100extern struct refclock refclock_msfees; 101#else 102#define refclock_msfees refclock_none 103#endif 104 105#ifdef CLOCK_BANC 106extern struct refclock refclock_bancomm; 107#else 108#define refclock_bancomm refclock_none 109#endif 110 111#ifdef CLOCK_TRUETIME 112extern struct refclock refclock_true; 113#else 114#define refclock_true refclock_none 115#endif 116 117#ifdef CLOCK_DATUM 118extern struct refclock refclock_datum; 119#else 120#define refclock_datum refclock_none 121#endif 122 123#ifdef CLOCK_ACTS 124extern struct refclock refclock_acts; 125#else 126#define refclock_acts refclock_none 127#endif 128 129#ifdef CLOCK_HEATH 130extern struct refclock refclock_heath; 131#else 132#define refclock_heath refclock_none 133#endif 134 135#ifdef CLOCK_NMEA 136extern struct refclock refclock_nmea; 137#else 138#define refclock_nmea refclock_none 139#endif 140 141#ifdef CLOCK_ATOM 142extern struct refclock refclock_atom; 143#else 144#define refclock_atom refclock_none 145#endif 146 147#ifdef CLOCK_PTBACTS 148extern struct refclock refclock_ptb; 149#else 150#define refclock_ptb refclock_none 151#endif 152 153#ifdef CLOCK_USNO 154extern struct refclock refclock_usno; 155#else 156#define refclock_usno refclock_none 157#endif 158 159#ifdef CLOCK_HPGPS 160extern struct refclock refclock_hpgps; 161#else 162#define refclock_hpgps refclock_none 163#endif 164 165#ifdef CLOCK_GPSVME 166extern struct refclock refclock_gpsvme; 167#else 168#define refclock_gpsvme refclock_none 169#endif 170 171#ifdef CLOCK_ARCRON_MSF 172extern struct refclock refclock_arc; 173#else 174#define refclock_arc refclock_none 175#endif 176 177#ifdef CLOCK_SHM 178extern struct refclock refclock_shm; 179#else 180#define refclock_shm refclock_none 181#endif 182 183#ifdef CLOCK_PALISADE 184extern struct refclock refclock_palisade; 185#else 186#define refclock_palisade refclock_none 187#endif 188 189#if defined(CLOCK_ONCORE) && defined(HAVE_PPSAPI) 190extern struct refclock refclock_oncore; 191#else 192#define refclock_oncore refclock_none 193#endif 194 195#if defined(CLOCK_JUPITER) && defined(PPS) 196extern struct refclock refclock_jupiter; 197#else 198#define refclock_jupiter refclock_none 199#endif 200 201#if defined(CLOCK_CHRONOLOG) 202extern struct refclock refclock_chronolog; 203#else 204#define refclock_chronolog refclock_none 205#endif 206 207#if defined(CLOCK_DUMBCLOCK) 208extern struct refclock refclock_dumbclock; 209#else 210#define refclock_dumbclock refclock_none 211#endif 212 213#ifdef CLOCK_ULINK 214extern struct refclock refclock_ulink; 215#else 216#define refclock_ulink refclock_none 217#endif 218 219#ifdef CLOCK_PCF 220extern struct refclock refclock_pcf; 221#else 222#define refclock_pcf refclock_none 223#endif 224 225#ifdef CLOCK_FG 226extern struct refclock refclock_fg; 227#else 228#define refclock_fg refclock_none 229#endif 230 231#ifdef CLOCK_HOPF_SERIAL 232extern struct refclock refclock_hopfser; 233#else 234#define refclock_hopfser refclock_none 235#endif 236 237#ifdef CLOCK_HOPF_PCI 238extern struct refclock refclock_hopfpci; 239#else 240#define refclock_hopfpci refclock_none 241#endif 242 243#ifdef CLOCK_JJY 244extern struct refclock refclock_jjy; 245#else 246#define refclock_jjy refclock_none 247#endif 248 249#ifdef CLOCK_TT560 250extern struct refclock refclock_tt560; 251#else 252#define refclock_tt560 refclock_none 253#endif 254 255#ifdef CLOCK_ZYFER 256extern struct refclock refclock_zyfer; 257#else 258#define refclock_zyfer 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 */ 267struct refclock *refclock_conf[] = { 268 &refclock_none, /* 0 REFCLK_NONE */ 269 &refclock_local, /* 1 REFCLK_LOCAL */ 270 &refclock_trak, /* 2 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_msfees, /* 14 REFCLK_MSF_EES */ 283 &refclock_true, /* 15 alias for REFCLK_TRUETIME */ 284 &refclock_bancomm, /* 16 REFCLK_IRIG_BANCOMM */ 285 &refclock_datum, /* 17 REFCLK_GPS_DATUM */ 286 &refclock_acts, /* 18 REFCLK_NIST_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_ptb, /* 23 REFCLK_PTB_ACTS */ 292 &refclock_usno, /* 24 REFCLK_USNO */ 293 &refclock_true, /* 25 alias for REFCLK_TRUETIME */ 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}; 312 313u_char num_refclock_conf = sizeof(refclock_conf)/sizeof(struct refclock *); 314 315#else 316int refclock_conf_bs; 317#endif 318