1c0b746e5SOllivier Robert /* 2a151a66cSOllivier Robert * /src/NTP/ntp-4/libparse/parse_conf.c,v 4.5 1999/11/28 09:13:53 kardel RELEASE_19991128_A 3c0b746e5SOllivier Robert * 4a151a66cSOllivier Robert * parse_conf.c,v 4.5 1999/11/28 09:13:53 kardel RELEASE_19991128_A 5c0b746e5SOllivier Robert * 6c0b746e5SOllivier Robert * Parser configuration module for reference clocks 7c0b746e5SOllivier Robert * 8c0b746e5SOllivier Robert * STREAM define switches between two personalities of the module 9c0b746e5SOllivier Robert * if STREAM is defined this module can be used with dcf77sync.c as 10c0b746e5SOllivier Robert * a STREAMS kernel module. In this case the time stamps will be 11c0b746e5SOllivier Robert * a struct timeval. 12c0b746e5SOllivier Robert * when STREAM is not defined NTP time stamps will be used. 13c0b746e5SOllivier Robert * 14c0b746e5SOllivier Robert * Copyright (C) 1995-1998 by Frank Kardel 15c0b746e5SOllivier Robert * Copyright (C) 1992-1994 by Frank Kardel, Friedrich-Alexander Universit�t Erlangen-N�rnberg, Germany 16c0b746e5SOllivier Robert * 17c0b746e5SOllivier Robert * This program is distributed in the hope that it will be useful, 18c0b746e5SOllivier Robert * but WITHOUT ANY WARRANTY; without even the implied warranty of 19c0b746e5SOllivier Robert * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 20c0b746e5SOllivier Robert * 21c0b746e5SOllivier Robert */ 22c0b746e5SOllivier Robert 23c0b746e5SOllivier Robert #ifdef HAVE_CONFIG_H 24c0b746e5SOllivier Robert # include <config.h> 25c0b746e5SOllivier Robert #endif 26c0b746e5SOllivier Robert 27c0b746e5SOllivier Robert #if defined(REFCLOCK) && defined(CLOCK_PARSE) 28c0b746e5SOllivier Robert 29c0b746e5SOllivier Robert #include <sys/types.h> 30c0b746e5SOllivier Robert #include <sys/time.h> 31c0b746e5SOllivier Robert 32c0b746e5SOllivier Robert #include "ntp_fp.h" 33c0b746e5SOllivier Robert #include "ntp_unixtime.h" 34c0b746e5SOllivier Robert #include "ntp_calendar.h" 35c0b746e5SOllivier Robert 36c0b746e5SOllivier Robert #include "parse.h" 37c0b746e5SOllivier Robert 38c0b746e5SOllivier Robert #ifdef CLOCK_SCHMID 39c0b746e5SOllivier Robert extern clockformat_t clock_schmid; 40c0b746e5SOllivier Robert #endif 41c0b746e5SOllivier Robert 42c0b746e5SOllivier Robert #ifdef CLOCK_DCF7000 43c0b746e5SOllivier Robert extern clockformat_t clock_dcf7000; 44c0b746e5SOllivier Robert #endif 45c0b746e5SOllivier Robert 46c0b746e5SOllivier Robert #ifdef CLOCK_MEINBERG 47c0b746e5SOllivier Robert extern clockformat_t clock_meinberg[]; 48c0b746e5SOllivier Robert #endif 49c0b746e5SOllivier Robert 50c0b746e5SOllivier Robert #ifdef CLOCK_RAWDCF 51c0b746e5SOllivier Robert extern clockformat_t clock_rawdcf; 52c0b746e5SOllivier Robert #endif 53c0b746e5SOllivier Robert 54c0b746e5SOllivier Robert #ifdef CLOCK_TRIMTAIP 55c0b746e5SOllivier Robert extern clockformat_t clock_trimtaip; 56c0b746e5SOllivier Robert #endif 57c0b746e5SOllivier Robert 58c0b746e5SOllivier Robert #ifdef CLOCK_TRIMTSIP 59c0b746e5SOllivier Robert extern clockformat_t clock_trimtsip; 60c0b746e5SOllivier Robert #endif 61c0b746e5SOllivier Robert 62c0b746e5SOllivier Robert #ifdef CLOCK_RCC8000 63c0b746e5SOllivier Robert extern clockformat_t clock_rcc8000; 64c0b746e5SOllivier Robert #endif 65c0b746e5SOllivier Robert 66c0b746e5SOllivier Robert #ifdef CLOCK_HOPF6021 67c0b746e5SOllivier Robert extern clockformat_t clock_hopf6021; 68c0b746e5SOllivier Robert #endif 69c0b746e5SOllivier Robert 70c0b746e5SOllivier Robert #ifdef CLOCK_COMPUTIME 71c0b746e5SOllivier Robert extern clockformat_t clock_computime; 72c0b746e5SOllivier Robert #endif 73c0b746e5SOllivier Robert 74c0b746e5SOllivier Robert #ifdef CLOCK_WHARTON_400A 75c0b746e5SOllivier Robert extern clockformat_t clock_wharton_400a; 76c0b746e5SOllivier Robert #endif 77c0b746e5SOllivier Robert 78c0b746e5SOllivier Robert #ifdef CLOCK_VARITEXT 79c0b746e5SOllivier Robert extern clockformat_t clock_varitext; 80c0b746e5SOllivier Robert #endif 81c0b746e5SOllivier Robert 82c0b746e5SOllivier Robert /* 83c0b746e5SOllivier Robert * format definitions 84c0b746e5SOllivier Robert */ 85c0b746e5SOllivier Robert clockformat_t *clockformats[] = 86c0b746e5SOllivier Robert { 87c0b746e5SOllivier Robert #ifdef CLOCK_MEINBERG 88c0b746e5SOllivier Robert &clock_meinberg[0], 89c0b746e5SOllivier Robert &clock_meinberg[1], 90c0b746e5SOllivier Robert &clock_meinberg[2], 91c0b746e5SOllivier Robert #endif 92c0b746e5SOllivier Robert #ifdef CLOCK_DCF7000 93c0b746e5SOllivier Robert &clock_dcf7000, 94c0b746e5SOllivier Robert #endif 95c0b746e5SOllivier Robert #ifdef CLOCK_SCHMID 96c0b746e5SOllivier Robert &clock_schmid, 97c0b746e5SOllivier Robert #endif 98c0b746e5SOllivier Robert #ifdef CLOCK_RAWDCF 99c0b746e5SOllivier Robert &clock_rawdcf, 100c0b746e5SOllivier Robert #endif 101c0b746e5SOllivier Robert #ifdef CLOCK_TRIMTAIP 102c0b746e5SOllivier Robert &clock_trimtaip, 103c0b746e5SOllivier Robert #endif 104c0b746e5SOllivier Robert #ifdef CLOCK_TRIMTSIP 105c0b746e5SOllivier Robert &clock_trimtsip, 106c0b746e5SOllivier Robert #endif 107c0b746e5SOllivier Robert #ifdef CLOCK_RCC8000 108c0b746e5SOllivier Robert &clock_rcc8000, 109c0b746e5SOllivier Robert #endif 110c0b746e5SOllivier Robert #ifdef CLOCK_HOPF6021 111c0b746e5SOllivier Robert &clock_hopf6021, 112c0b746e5SOllivier Robert #endif 113c0b746e5SOllivier Robert #ifdef CLOCK_COMPUTIME 114c0b746e5SOllivier Robert &clock_computime, 115c0b746e5SOllivier Robert #endif 116c0b746e5SOllivier Robert #ifdef CLOCK_WHARTON_400A 117c0b746e5SOllivier Robert &clock_wharton_400a, 118c0b746e5SOllivier Robert #endif 119c0b746e5SOllivier Robert #ifdef CLOCK_VARITEXT 120c0b746e5SOllivier Robert &clock_varitext, 121c0b746e5SOllivier Robert #endif 122c0b746e5SOllivier Robert 0}; 123c0b746e5SOllivier Robert 124c0b746e5SOllivier Robert unsigned short nformats = sizeof(clockformats) / sizeof(clockformats[0]) - 1; 125c0b746e5SOllivier Robert 126c0b746e5SOllivier Robert #else /* not (REFCLOCK && CLOCK_PARSE) */ 127c0b746e5SOllivier Robert int parse_conf_bs; 128c0b746e5SOllivier Robert #endif /* not (REFCLOCK && CLOCK_PARSE) */ 129c0b746e5SOllivier Robert 130c0b746e5SOllivier Robert /* 131c0b746e5SOllivier Robert * History: 132c0b746e5SOllivier Robert * 133c0b746e5SOllivier Robert * parse_conf.c,v 134a151a66cSOllivier Robert * Revision 4.5 1999/11/28 09:13:53 kardel 135a151a66cSOllivier Robert * RECON_4_0_98F 136a151a66cSOllivier Robert * 137c0b746e5SOllivier Robert * Revision 4.4 1999/02/28 15:27:25 kardel 138c0b746e5SOllivier Robert * wharton clock integration 139c0b746e5SOllivier Robert * 140c0b746e5SOllivier Robert * Revision 4.3 1998/08/16 18:52:15 kardel 141c0b746e5SOllivier Robert * (clockformats): Trimble TSIP driver now also 142c0b746e5SOllivier Robert * available for kernel operation 143c0b746e5SOllivier Robert * 144c0b746e5SOllivier Robert * Revision 4.2 1998/06/12 09:13:48 kardel 145c0b746e5SOllivier Robert * conditional compile macros fixed 146c0b746e5SOllivier Robert * 147c0b746e5SOllivier Robert * Revision 4.1 1998/05/24 09:40:49 kardel 148c0b746e5SOllivier Robert * adjustments of log messages 149c0b746e5SOllivier Robert * 150c0b746e5SOllivier Robert * 151c0b746e5SOllivier Robert * from V3 3.24 log info deleted 1998/04/11 kardel 152c0b746e5SOllivier Robert */ 153