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