1 /*        $NetBSD: clocktypes.c,v 1.6 2024/08/18 20:47:13 christos Exp $        */
2 
3 /*
4  * Data for pretty printing clock types
5  */
6 #include <config.h>
7 #include <stdio.h>
8 
9 #include "ntp_fp.h"
10 #include "ntp.h"
11 #include "ntp_refclock.h"
12 #include "ntp_stdlib.h"
13 
14 struct clktype clktypes[] = {
15           { REFCLK_NONE,                "unspecified type (0)",
16             "UNKNOWN" },
17           { REFCLK_LOCALCLOCK,          "Undisciplined local clock (1)",
18             "LOCAL" },
19           { REFCLK_GPS_TRAK,  "TRAK 8810 GPS Receiver (2)",
20             "GPS_TRAK" },
21           { REFCLK_WWV_PST,   "PSTI/Traconex WWV/WWVH Receiver (3)",
22             "WWV_PST" },
23           { REFCLK_SPECTRACOM,          "Spectracom (generic) Receivers (4)",
24             "SPECTRACOM" },
25           { REFCLK_TRUETIME,  "TrueTime (generic) Receivers (5)",
26             "TRUETIME" },
27           { REFCLK_IRIG_AUDIO,          "IRIG Audio Decoder (6)",
28             "IRIG_AUDIO" },
29           { REFCLK_CHU_AUDIO, "CHU Audio Demodulator/Decoder (7)",
30             "CHU_AUDIO" },
31           { REFCLK_PARSE,               "Generic reference clock driver (8)",
32             "GENERIC" },
33           { REFCLK_GPS_MX4200,          "Magnavox MX4200 GPS Receiver (9)",
34             "GPS_MX4200" },
35           { REFCLK_GPS_AS2201,          "Austron 2201A GPS Receiver (10)",
36             "GPS_AS2201" },
37           { REFCLK_GPS_ARBITER,         "Arbiter 1088A/B GPS Receiver (11)",
38             "GPS_ARBITER" },
39           { REFCLK_IRIG_TPRO, "KSI/Odetics TPRO/S IRIG Interface (12)",
40             "IRIG_TPRO" },
41           { REFCLK_ATOM_LEITCH,         "Leitch CSD 5300 Master Clock Controller (13)",
42             "ATOM_LEITCH" },
43           { REFCLK_MSF_EES,   "EES M201 MSF Receiver (14)",
44             "MSF_EES" },
45           { REFCLK_NONE,                "not used (15)",
46             "NOT_USED" },
47           { REFCLK_IRIG_BANCOMM,        "Bancomm GPS/IRIG Receiver (16)",
48             "GPS_BANC" },
49           { REFCLK_GPS_DATUM, "Datum Precision Time System (17)",
50             "GPS_DATUM" },
51           { REFCLK_ACTS,                "Automated Computer Time Service (18)",
52             "ACTS_MODEM" },
53           { REFCLK_WWV_HEATH, "Heath WWV/WWVH Receiver (19)",
54             "WWV_HEATH" },
55           { REFCLK_GPS_NMEA,  "Generic NMEA GPS Receiver (20)",
56             "GPS_NMEA" },
57           { REFCLK_GPS_VME,   "TrueTime GPS-VME Interface (21)",
58             "GPS_VME" },
59           { REFCLK_ATOM_PPS,  "PPS Clock Discipline (22)",
60             "PPS" },
61           { REFCLK_NONE,                "not used (23)",
62             "NOT_USED" },
63           { REFCLK_NONE,                "not used (24)",
64             "NOT_USED" },
65           { REFCLK_NONE,                "not used (25)",
66             "NOT_USED" },
67           { REFCLK_GPS_HP,    "HP 58503A GPS Time & Frequency Receiver (26)",
68             "GPS_HP" },
69           { REFCLK_ARCRON_MSF,          "ARCRON MSF (and DCF77) Receiver (27)",
70             "MSF_ARCRON" },
71           { REFCLK_SHM,                 "Clock attached thru shared Memory (28)",
72             "SHM" },
73           { REFCLK_PALISADE,  "Trimble Navigation Palisade GPS (29)",
74             "GPS_PALISADE" },
75           { REFCLK_ONCORE,    "Motorola UT Oncore GPS (30)",
76             "GPS_ONCORE" },
77           { REFCLK_GPS_JUPITER,         "Rockwell Jupiter GPS (31)",
78             "GPS_JUPITER" },
79           { REFCLK_CHRONOLOG, "Chrono-log K (32)",
80             "CHRONOLOG" },
81           { REFCLK_DUMBCLOCK, "Dumb generic hh:mm:ss local clock (33)",
82             "DUMBCLOCK" },
83           { REFCLK_ULINK,               "Ultralink M320 WWVB receiver (34)",
84             "ULINK_M320"},
85           { REFCLK_PCF,                 "Conrad parallel port radio clock (35)",
86             "PCF"},
87           { REFCLK_WWV_AUDIO, "WWV/H Audio Demodulator/Decoder (36)",
88             "WWV_AUDIO"},
89           { REFCLK_FG,                  "Forum Graphic GPS Dating Station (37)",
90             "GPS_FG"},
91           { REFCLK_HOPF_SERIAL,         "hopf Elektronic serial line receiver (38)",
92             "HOPF_S"},
93           { REFCLK_HOPF_PCI,  "hopf Elektronic PCI receiver (39)",
94             "HOPF_P"},
95           { REFCLK_JJY,                 "JJY receiver (40)",
96             "JJY"},
97           { REFCLK_TT560,               "TrueTime 560 IRIG-B decoder (41)",
98             "TT_IRIG"},
99           { REFCLK_ZYFER,               "Zyfer GPStarplus receiver (42)",
100             "GPS_ZYFER" },
101           { REFCLK_RIPENCC,   "RIPE NCC Trimble driver (43)",
102             "GPS_RIPENCC" },
103           { REFCLK_NEOCLOCK4X,          "NeoClock4X DCF77 / TDF receiver (44)",
104             "NEOCLK4X"},
105         { REFCLK_TSYNCPCI,    "Spectracom TSYNC PCI timing board (45)",
106           "PCI_TSYNC"},
107           { REFCLK_GPSDJSON,  "GPSD JSON socket (46)",
108             "GPSD_JSON"},
109           { -1,                         "", "" }
110 };
111 
112 const char *
clockname(int num)113 clockname(
114           int num
115           )
116 {
117           register struct clktype *clk;
118 
119           for (clk = clktypes; clk->code != -1; clk++) {
120                     if (num == clk->code)
121                               return (clk->abbrev);
122           }
123           return (NULL);
124 }
125