/contrib/ntp/ntpd/refclock_conf.c

https://bitbucket.org/freebsd/freebsd-head/ · C · 319 lines · 263 code · 47 blank · 9 comment · 6 complexity · 0995e45c71c4d9baa3e70ecdd4c93bf6 MD5 · raw file

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