summaryrefslogtreecommitdiffstats
path: root/usr.sbin/xntpd/parse/clk_schmid.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/xntpd/parse/clk_schmid.c')
-rw-r--r--usr.sbin/xntpd/parse/clk_schmid.c217
1 files changed, 0 insertions, 217 deletions
diff --git a/usr.sbin/xntpd/parse/clk_schmid.c b/usr.sbin/xntpd/parse/clk_schmid.c
deleted file mode 100644
index 457a659..0000000
--- a/usr.sbin/xntpd/parse/clk_schmid.c
+++ /dev/null
@@ -1,217 +0,0 @@
-#if defined(REFCLOCK) && (defined(PARSE) || defined(PARSEPPS)) && defined(CLOCK_SCHMID)
-/*
- * /src/NTP/REPOSITORY/v3/parse/clk_schmid.c,v 3.16 1994/05/30 10:20:03 kardel Exp
- *
- * clk_schmid.c,v 3.16 1994/05/30 10:20:03 kardel Exp
- *
- * Schmid clock support
- *
- * Copyright (c) 1992,1993,1994
- * Frank Kardel Friedrich-Alexander Universitaet Erlangen-Nuernberg
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- */
-
-#include "sys/types.h"
-#include "sys/time.h"
-#include "sys/errno.h"
-#include "ntp_fp.h"
-#include "ntp_unixtime.h"
-#include "ntp_calendar.h"
-
-#include "parse.h"
-
-/*
- * Description courtesy of Adam W. Feigin et. al (Swisstime iis.ethz.ch)
- *
- * The command to Schmid's DCF77 clock is a single byte; each bit
- * allows the user to select some part of the time string, as follows (the
- * output for the lsb is sent first).
- *
- * Bit 0: time in MEZ, 4 bytes *binary, not BCD*; hh.mm.ss.tenths
- * Bit 1: date 3 bytes *binary, not BCD: dd.mm.yy
- * Bit 2: week day, 1 byte (unused here)
- * Bit 3: time zone, 1 byte, 0=MET, 1=MEST. (unused here)
- * Bit 4: clock status, 1 byte, 0=time invalid,
- * 1=time from crystal backup,
- * 3=time from DCF77
- * Bit 5: transmitter status, 1 byte,
- * bit 0: backup antenna
- * bit 1: time zone change within 1h
- * bit 3,2: TZ 01=MEST, 10=MET
- * bit 4: leap second will be
- * added within one hour
- * bits 5-7: Zero
- * Bit 6: time in backup mode, units of 5 minutes (unused here)
- *
- */
-#define WS_TIME 0x01
-#define WS_SIGNAL 0x02
-
-#define WS_ALTERNATE 0x01
-#define WS_ANNOUNCE 0x02
-#define WS_TZ 0x0c
-#define WS_MET 0x08
-#define WS_MEST 0x04
-#define WS_LEAP 0x10
-
-static u_long cvt_schmid();
-
-clockformat_t clock_schmid =
-{
- (unsigned LONG (*)())0, /* no input handling */
- cvt_schmid, /* Schmid conversion */
- syn_simple, /* easy time stamps */
- (u_long (*)())0, /* not direct PPS monitoring */
- (u_long (*)())0, /* no time code synthesizer monitoring */
- (void *)0, /* conversion configuration */
- "Schmid", /* Schmid receiver */
- 12, /* binary data buffer */
- F_END|SYNC_START, /* END packet delimiter / synchronisation */
- 0, /* no private data (complete messages) */
- { 0, 0},
- '\0',
- (unsigned char)'\375',
- '\0'
-};
-
-
-static u_long
-cvt_schmid(buffer, size, format, clock)
- register unsigned char *buffer;
- register int size;
- register struct format *format;
- register clocktime_t *clock;
-{
- if ((size != 11) || (buffer[10] != (unsigned char)'\375'))
- {
- return CVT_NONE;
- }
- else
- {
- if (buffer[0] > 23 || buffer[1] > 59 || buffer[2] > 59 || buffer[3] > 9) /* Time */
- {
- return CVT_FAIL|CVT_BADTIME;
- }
- else
- if (buffer[4] < 1 || buffer[4] > 31 || buffer[5] < 1 || buffer[5] > 12
- || buffer[6] > 99)
- {
- return CVT_FAIL|CVT_BADDATE;
- }
- else
- {
- clock->hour = buffer[0];
- clock->minute = buffer[1];
- clock->second = buffer[2];
- clock->usecond = buffer[3] * 100000;
- clock->day = buffer[4];
- clock->month = buffer[5];
- clock->year = buffer[6];
-
- clock->flags = 0;
-
- switch (buffer[8] & WS_TZ)
- {
- case WS_MET:
- clock->utcoffset = -1*60*60;
- break;
-
- case WS_MEST:
- clock->utcoffset = -2*60*60;
- clock->flags |= PARSEB_DST;
- break;
-
- default:
- return CVT_FAIL|CVT_BADFMT;
- }
-
- if (!(buffer[7] & WS_TIME))
- {
- clock->flags |= PARSEB_POWERUP;
- }
-
- if (!(buffer[7] & WS_SIGNAL))
- {
- clock->flags |= PARSEB_NOSYNC;
- }
-
- if (buffer[7] & WS_SIGNAL)
- {
- if (buffer[8] & WS_ALTERNATE)
- {
- clock->flags |= PARSEB_ALTERNATE;
- }
-
- if (buffer[8] & WS_ANNOUNCE)
- {
- clock->flags |= PARSEB_ANNOUNCE;
- }
-
- if (buffer[8] & WS_LEAP)
- {
- clock->flags |= PARSEB_LEAPADD; /* default: DCF77 data format deficiency */
- }
- }
-
- clock->flags |= PARSEB_S_LEAP|PARSEB_S_ANTENNA;
-
- return CVT_OK;
- }
- }
-}
-#endif /* defined(PARSE) && defined(CLOCK_SCHMID) */
-
-/*
- * History:
- *
- * clk_schmid.c,v
- * Revision 3.16 1994/05/30 10:20:03 kardel
- * LONG cleanup
- *
- * Revision 3.15 1994/05/12 12:34:48 kardel
- * data type cleanup
- *
- * Revision 3.14 1994/04/12 14:56:31 kardel
- * fix declaration
- *
- * Revision 3.13 1994/02/20 13:04:41 kardel
- * parse add/delete second support
- *
- * Revision 3.12 1994/02/02 17:45:25 kardel
- * rcs ids fixed
- *
- * Revision 3.10 1994/01/25 19:05:15 kardel
- * 94/01/23 reconcilation
- *
- * Revision 3.9 1994/01/23 17:21:56 kardel
- * 1994 reconcilation
- *
- * Revision 3.8 1993/11/01 20:00:18 kardel
- * parse Solaris support (initial version)
- *
- * Revision 3.7 1993/10/30 09:44:43 kardel
- * conditional compilation flag cleanup
- *
- * Revision 3.6 1993/10/09 15:01:32 kardel
- * file structure unified
- *
- * Revision 3.5 1993/10/03 19:10:47 kardel
- * restructured I/O handling
- *
- * Revision 3.4 1993/09/27 21:08:09 kardel
- * utcoffset now in seconds
- *
- * Revision 3.3 1993/09/26 23:40:27 kardel
- * new parse driver logic
- *
- * Revision 3.2 1993/07/09 11:37:19 kardel
- * Initial restructured version + GPS support
- *
- * Revision 3.1 1993/07/06 10:00:22 kardel
- * DCF77 driver goes generic...
- *
- */
OpenPOWER on IntegriCloud