From d9768fd9dbb9ffb082896c373f5e78f968079f68 Mon Sep 17 00:00:00 2001 From: wollman Date: Sun, 3 Apr 1994 19:50:51 +0000 Subject: xntp 3.3p from Delaware --- usr.sbin/xntpd/include/ntp.h | 15 ++++- usr.sbin/xntpd/include/ntp_machine.h | 40 +++++++++---- usr.sbin/xntpd/include/ntp_request.h | 31 ++++++++++ usr.sbin/xntpd/include/ntp_stdlib.h | 1 + usr.sbin/xntpd/include/ntp_timex.h | 110 +++++++++++++++++------------------ usr.sbin/xntpd/include/ntpd.h | 4 +- usr.sbin/xntpd/include/parse.h | 82 +++++++++++++++++--------- 7 files changed, 181 insertions(+), 102 deletions(-) (limited to 'usr.sbin/xntpd/include') diff --git a/usr.sbin/xntpd/include/ntp.h b/usr.sbin/xntpd/include/ntp.h index 310353f..b3fd0ce 100644 --- a/usr.sbin/xntpd/include/ntp.h +++ b/usr.sbin/xntpd/include/ntp.h @@ -346,7 +346,7 @@ struct peer { */ #define REFCLK_NONE 0 /* unknown or missing */ #define REFCLK_LOCALCLOCK 1 /* external (e.g., ACTS) */ -#define REFCLK_WWV_HEATH 2 /* Heath GC-1000 WWV/H */ +#define REFCLK_GPS_TRAK 2 /* TRAK 8810 GPS Receiver */ #define REFCLK_WWV_PST 3 /* PST/Traconex 1020 WWV/H */ #define REFCLK_WWVB_SPECTRACOM 4 /* Spectracom 8170/Netclock WWVB */ #define REFCLK_GOES_TRUETIME 5 /* TrueTime 468-DC GOES */ @@ -612,6 +612,9 @@ struct mon_data { struct mon_data *hash_prev; /* previous structure in hash list */ struct mon_data *mru_next; /* next structure in MRU list */ struct mon_data *mru_prev; /* previous structure in MRU list */ + struct mon_data *fifo_next; /* next structure in FIFO list */ + struct mon_data *fifo_prev; /* previous structure in FIFO list */ + U_LONG lastdrop; /* last time dropped due to RES_LIMIT*/ U_LONG lasttime; /* last time data updated */ U_LONG firsttime; /* time structure initialized */ U_LONG count; /* count we have seen */ @@ -621,7 +624,12 @@ struct mon_data { u_char version; /* version of incoming packet */ }; - +/* + * Values used with mon_enabled to indicate reason for enabling monitoring + */ +#define MON_OFF 0x00 /* no monitoring */ +#define MON_ON 0x01 /* monitoring explicitly enabled */ +#define MON_RES 0x02 /* implicit monitoring for RES_LIMITED */ /* * Structure used for restrictlist entries */ @@ -645,10 +653,11 @@ struct restrictlist { #define RES_NOPEER 0x20 /* don't allocate memory resources */ #define RES_NOTRAP 0x40 /* don't allow him to set traps */ #define RES_LPTRAP 0x80 /* traps set by him are low priority */ +#define RES_LIMITED 0x100 /* limit per net number of clients */ #define RES_ALLFLAGS \ (RES_IGNORE|RES_DONTSERVE|RES_DONTTRUST|RES_NOQUERY\ - |RES_NOMODIFY|RES_NOPEER|RES_NOTRAP|RES_LPTRAP) + |RES_NOMODIFY|RES_NOPEER|RES_NOTRAP|RES_LPTRAP|RES_LIMITED) /* * Match flags diff --git a/usr.sbin/xntpd/include/ntp_machine.h b/usr.sbin/xntpd/include/ntp_machine.h index 1c3983e..4c7c3ea 100644 --- a/usr.sbin/xntpd/include/ntp_machine.h +++ b/usr.sbin/xntpd/include/ntp_machine.h @@ -44,11 +44,16 @@ Signaled IO - Signled IO defines. WHICH TERMINAL MODEL TO USE - I would assume HAVE_TERMIOS if NTP_POSIX_SOURCE was set but can't. The posix tty driver is too restrictive on most systems. - It defined if you define STREAMS. + It is defined if you define STREAMS. + We do not put these defines in the ntp_machine.h as some systems + offer multiple interfaces and refclock configuration likes to + peek into the configuration defines for tty model restrictions. + Thus all tty definitions should be in the files in the machines directory. + + HAVE_TERMIOS - Use POSIX termios.h HAVE_SYSV_TTYS - Use SYSV termio.h HAVE_BSD_TTYS - Use BSD stty.h - HAVE_TERMIOS - Use POSIX termios.h THIS MAKES PORTS TO NEW SYSTEMS EASY - You only have to wory about kernel mucking. @@ -274,7 +279,6 @@ in this file. #ifndef STR_SYSTEM #define STR_SYSTEM "UNIX/Ultrix" #endif -#define HAVE_TERMIOS #endif /* @@ -297,9 +301,9 @@ in this file. #define FORCE_NTPDATE_STEP #define RETSIGTYPE void #define HAVE_ATT_SETPGRP -#define HAVE_BSD_TTYS #define LOG_NTP LOG_LOCAL1 #define HAVE_SIGNALED_IO +#define NTP_NEED_BOPS #ifndef STR_SYSTEM #define STR_SYSTEM "UNIX/AUX" #endif @@ -309,6 +313,7 @@ in this file. * Next */ #if defined(SYS_NEXT) +#define RETSIGTYPE void #define DOSYNCTODR #define HAVE_READKMEM #define HAVE_BSD_NICE @@ -329,8 +334,12 @@ in this file. #define setlinebuf(f) setvbuf(f, NULL, _IOLBF, 0) #define NO_SIGNED_CHAR_DECL #define LOCK_PROCESS -#define HAVE_NO_NICE /* HPUX uses rtprio instead */ #define RETSIGTYPE void +#if (SYS_HPUX < 9) +#define HAVE_NO_NICE /* HPUX uses rtprio instead */ +#else +#define HAVE_BSD_NICE /* new at 9.X */ +#endif #if (SYS_HPUX < 10) #define NOKMEM #else @@ -352,8 +361,6 @@ in this file. #ifndef STR_SYSTEM #define STR_SYSTEM "UNIX/BSDI" #endif -#define HAVE_BSD_TTYS -#define HAVE_TERMIOS #endif /* @@ -441,9 +448,6 @@ in this file. */ #if defined(SYS_PTX) #define NO_SIGNED_CHAR_DECL -#ifndef HAVE_SYSV_TTYS -#define HAVE_SYSV_TTYS -#endif #define STREAMS_TLI #define HAVE_ATT_SETPGRP #define HAVE_SIGNALED_IO @@ -458,6 +462,7 @@ in this file. #define HAVE_READKMEM #define UDP_WILDCARD_DELIVERY #define NTP_POSIX_SOURCE +#define memmove(x, y, z) memcpy(x, y, z) struct timezone { int __0; }; /* unused placebo */ /* * no comment !@! @@ -527,7 +532,6 @@ typedef unsigned long u_long; #define HAVE_BSD_NICE #define NOKMEM #define HAVE_SIGNALED_IO -#define HAVE_BSD_TTYS #define NTP_SYSCALLS_STD #define USE_PROTOTYPES #define UDP_WILDCARD_DELIVERY @@ -565,6 +569,20 @@ typedef unsigned long u_long; ERROR You_must_define_one_of_the_HAVE_xx_NICE_defines #endif +/* + * use only one tty model - no use in initialising + * a tty in three ways + * HAVE_TERMIOS is preferred over HAVE_SYSV_TTYS over HAVE_BSD_TTYS + */ +#ifdef HAVE_TERMIOS +#undef HAVE_BSD_TTYS +#undef HAVE_SYSV_TTYS +#endif + +#ifdef HAVE_SYSV_TTYS +#undef HAVE_BSD_TTYS +#endif + #if !defined(HAVE_SYSV_TTYS) \ && !defined(HAVE_BSD_TTYS) \ && !defined(HAVE_TERMIOS) diff --git a/usr.sbin/xntpd/include/ntp_request.h b/usr.sbin/xntpd/include/ntp_request.h index e94cb45..b791c18 100644 --- a/usr.sbin/xntpd/include/ntp_request.h +++ b/usr.sbin/xntpd/include/ntp_request.h @@ -429,6 +429,24 @@ struct info_sys_stats { U_LONG processed; /* packets processed */ U_LONG badauth; /* packets dropped because of authorization */ U_LONG wanderhold; + U_LONG limitrejected; /* rejected because of client limitation */ +}; + + +/* + * System stats - old version + */ +struct old_info_sys_stats { + U_LONG timeup; /* time we have been up and running */ + U_LONG timereset; /* time since these were last cleared */ + U_LONG badstratum; /* packets claiming an invalid stratum */ + U_LONG oldversionpkt; /* old version packets received */ + U_LONG newversionpkt; /* new version packets received */ + U_LONG unknownversion; /* don't know version packets */ + U_LONG badlength; /* packets with bad length */ + U_LONG processed; /* packets processed */ + U_LONG badauth; /* packets dropped because of authorization */ + U_LONG wanderhold; }; @@ -546,6 +564,7 @@ struct conf_restrict { struct info_monitor { U_LONG lasttime; /* last packet from this host */ U_LONG firsttime; /* first time we received a packet */ + U_LONG lastdrop; /* last time we rejected a packet due to client limitation policy */ U_LONG count; /* count of packets received */ U_LONG addr; /* host address */ u_short port; /* port number of last reception */ @@ -553,6 +572,18 @@ struct info_monitor { u_char version; /* version number of last packet */ }; +/* + * Structure used for returning monitor data (old format + */ +struct old_info_monitor { + U_LONG lasttime; /* last packet from this host */ + U_LONG firsttime; /* first time we received a packet */ + U_LONG count; /* count of packets received */ + U_LONG addr; /* host address */ + u_short port; /* port number of last reception */ + u_char mode; /* mode of last packet */ + u_char version; /* version number of last packet */ +}; /* * Structure used for passing indication of flags to clear diff --git a/usr.sbin/xntpd/include/ntp_stdlib.h b/usr.sbin/xntpd/include/ntp_stdlib.h index 0ec0625..f68c768 100644 --- a/usr.sbin/xntpd/include/ntp_stdlib.h +++ b/usr.sbin/xntpd/include/ntp_stdlib.h @@ -79,6 +79,7 @@ extern char * inttoa P((LONG)); extern char * mfptoa P((U_LONG, U_LONG, int)); extern char * mfptoms P((U_LONG, U_LONG, int)); extern char * modetoa P((int)); +extern U_LONG netof P((U_LONG)); extern char * numtoa P((U_LONG)); extern char * numtohost P((U_LONG)); extern int octtoint P((const char *, U_LONG *)); diff --git a/usr.sbin/xntpd/include/ntp_timex.h b/usr.sbin/xntpd/include/ntp_timex.h index 1756e2e..43b6ae7 100644 --- a/usr.sbin/xntpd/include/ntp_timex.h +++ b/usr.sbin/xntpd/include/ntp_timex.h @@ -1,6 +1,6 @@ /****************************************************************************** * * - * Copyright (c) David L. Mills 1993 * + * Copyright (c) David L. Mills 1993, 1994 * * * * Permission to use, copy, modify, and distribute this software and its * * documentation for any purpose and without fee is hereby granted, provided * @@ -17,11 +17,13 @@ /* * Modification history timex.h * - * 28 Nov 93 David L. Mills - * Adjusted parameters to improve stability and increase poll interval + * 20 Feb 94 David L. Mills + * Revised status codes and structures for external clock and PPS + * signal discipline. * - * 10 Oct 93 Torsten Duwe - * Changed to ntp_timex.h (#ifdef'd HAVE_SYS_TIMEX_H) + * 28 Nov 93 David L. Mills + * Adjusted parameters to improve stability and increase poll + * interval. * * 17 Sep 93 David L. Mills * Created file @@ -41,7 +43,7 @@ * int syscall(SYS_ntp_gettime, tptr) * * int SYS_ntp_gettime defined in syscall.h header file - * struct ntptimeval *tptr pointer to ntptimeval structure + * struct ntptimeval *tptr pointer to ntptimeval structure * * NAME * ntp_adjtime - NTP daemon application interface @@ -55,55 +57,43 @@ * struct timex *tptr pointer to timex structure * */ -#ifndef _NTP_TIMEX_H -#define _NTP_TIMEX_H - -/* - * Include system timex.h (if appropriate) - */ -#ifdef HAVE_SYS_TIMEX_H -#include -#else /* provide definitions */ #include -extern int syscall P((int, void *, ...)); - -#define ntp_gettime(t) syscall(SYS_ntp_gettime, (t)) -#define ntp_adjtime(t) syscall(SYS_ntp_adjtime, (t)) - /* * The following defines establish the engineering parameters of the PLL - * model. The HZ variable establishes the timer interrupt frequency, 100 Hz - * for the SunOS kernel, 256 Hz for the Ultrix kernel and 1024 Hz for the - * OSF/1 kernel. The SHIFT_HZ define expresses the same value as the - * nearest power of two in order to avoid hardware multiply operations. + * model. The hz variable is defined in the kernel build environment. It + * establishes the timer interrupt frequency, 100 Hz for the SunOS + * kernel, 256 Hz for the Ultrix kernel and 1024 Hz for the OSF/1 + * kernel. The SHIFT_HZ define expresses the same value as the nearest + * power of two in order to avoid hardware multiply operations. */ -#define SHIFT_HZ 7 /* log2(HZ) */ +#define SHIFT_HZ 7 /* log2(hz) */ /* * The SHIFT_KG and SHIFT_KF defines establish the damping of the PLL * and are chosen by analysis for a slightly underdamped convergence - * characteristic. The MAXTC define establishes the maximum time constant - * of the PLL. With the parameters given and the default time constant of - * zero, the PLL will converge in about 15 minutes. + * characteristic. The MAXTC define establishes the maximum time + * constant of the PLL. With the parameters given and the minimum time + * constant of zero, the PLL will converge in about 15 minutes. */ -#define SHIFT_KG 6 /* shift for phase increment */ -#define SHIFT_KF 16 /* shift for frequency increment */ +#define SHIFT_KG 6 /* phase factor (shift) */ +#define SHIFT_KF 16 /* frequency factor (shift) */ #define MAXTC 6 /* maximum time constant (shift) */ /* - * The SHIFT_SCALE define establishes the decimal point of the time_phase - * variable which serves as a an extension to the low-order bits of the - * system clock variable. The SHIFT_UPDATE define establishes the decimal - * point of the time_offset variable which represents the current offset - * with respect to standard time. The SHIFT_USEC define represents 1 us in - * external units (shift), while the FINEUSEC define represents 1 us in - * internal units. + * SHIFT_SCALE defines the scaling (shift) of the time_phase variable, + * which serves as a an extension to the low-order bits of the system + * clock variable time.tv_usec. SHIFT_UPDATE defines the scaling (shift) + * of the time_offset variable, which represents the current time offset + * with respect to standard time. SHIFT_USEC defines the scaling (shift) + * of the time_freq and time_tolerance variables, which represent the + * current frequency offset and frequency tolerance. FINEUSEC is 1 us in + * SHIFT_UPDATE units of the time_phase variable. */ -#define SHIFT_SCALE 23 /* shift for phase scale factor */ -#define SHIFT_UPDATE (SHIFT_KG + MAXTC) /* shift for offset scale factor */ -#define SHIFT_USEC 16 /* shift for 1 us in external units */ -#define FINEUSEC (1 << SHIFT_SCALE) /* 1 us in internal units */ +#define SHIFT_SCALE 23 /* phase scale (shift) */ +#define SHIFT_UPDATE (SHIFT_KG + MAXTC) /* time offset scale (shift) */ +#define SHIFT_USEC 16 /* frequency offset scale (shift) */ +#define FINEUSEC (1 << SHIFT_SCALE) /* 1 us in phase units */ /* * Mode codes (timex.mode) @@ -122,8 +112,8 @@ extern int syscall P((int, void *, ...)); #define TIME_INS 1 /* insert leap second */ #define TIME_DEL 2 /* delete leap second */ #define TIME_OOP 3 /* leap second in progress */ -#define TIME_BAD 4 /* clock not synchronized */ - +#define TIME_BAD 4 /* kernel clock not synchronized */ +#define TIME_ERR 5 /* external clock not synchronized */ /* * NTP user interface - used to read kernel clock values * Note: maximum error = NTP synch distance = dispersion + delay / 2; @@ -131,8 +121,8 @@ extern int syscall P((int, void *, ...)); */ struct ntptimeval { struct timeval time; /* current time */ - long maxerror; /* maximum error (usec) */ - long esterror; /* estimated error (usec) */ + long maxerror; /* maximum error (us) */ + long esterror; /* estimated error (us) */ }; /* @@ -140,19 +130,25 @@ struct ntptimeval { */ struct timex { int mode; /* mode selector */ - long offset; /* time offset (usec) */ + long offset; /* time offset (us) */ long frequency; /* frequency offset (scaled ppm) */ - long maxerror; /* maximum error (usec) */ - long esterror; /* estimated error (usec) */ + long maxerror; /* maximum error (us) */ + long esterror; /* estimated error (us) */ int status; /* clock command/status */ long time_constant; /* pll time constant */ - long precision; /* clock precision (usec) (read only) */ - long tolerance; /* clock frequency tolerance (ppm) - * (read only) - */ -}; - -#endif /* HAVE_SYS_TIMEX_H */ - -#endif /* _NTP_TIMEX_H */ + long precision; /* clock precision (us) (read only) */ + long tolerance; /* clock frequency tolerance (scaled + * ppm) (read only) */ + /* + * The following read-only structure members are implemented + * only if the PPS signal discipline is configured in the + * kernel. + */ + long ybar; /* frequency estimate (scaled ppm) */ + long disp; /* dispersion estimate (scaled ppm) */ + int shift; /* interval duration (s) (shift) */ + long calcnt; /* calibration intervals */ + long jitcnt; /* jitter limit exceeded */ + long discnt; /* dispersion limit exceeded */ +}; diff --git a/usr.sbin/xntpd/include/ntpd.h b/usr.sbin/xntpd/include/ntpd.h index f2c56af..590aaae 100644 --- a/usr.sbin/xntpd/include/ntpd.h +++ b/usr.sbin/xntpd/include/ntpd.h @@ -93,8 +93,8 @@ extern int pps_sample P((l_fp *)); /* ntp_monitor.c */ extern void init_mon P((void)); -extern void mon_start P((void)); -extern void mon_stop P((void)); +extern void mon_start P((int)); +extern void mon_stop P((int)); extern void monitor P((struct recvbuf *)); /* ntp_peer.c */ diff --git a/usr.sbin/xntpd/include/parse.h b/usr.sbin/xntpd/include/parse.h index 31041af..6ce3f19 100644 --- a/usr.sbin/xntpd/include/parse.h +++ b/usr.sbin/xntpd/include/parse.h @@ -1,7 +1,7 @@ /* - * /src/NTP/REPOSITORY/v3/include/parse.h,v 3.13 1994/01/25 19:04:21 kardel Exp + * /src/NTP/REPOSITORY/v3/include/parse.h,v 3.17 1994/03/03 09:27:20 kardel Exp * - * parse.h,v 3.13 1994/01/25 19:04:21 kardel Exp + * parse.h,v 3.17 1994/03/03 09:27:20 kardel Exp * * Copyright (c) 1989,1990,1991,1992,1993,1994 * Frank Kardel Friedrich-Alexander Universitaet Erlangen-Nuernberg @@ -15,7 +15,7 @@ #ifndef __PARSE_H__ #define __PARSE_H__ #if !(defined(lint) || defined(__GNUC__)) - static char parsehrcsid[]="parse.h,v 3.13 1994/01/25 19:04:21 kardel Exp FAU"; + static char parsehrcsid[]="parse.h,v 3.17 1994/03/03 09:27:20 kardel Exp"; #endif #include "ntp_types.h" @@ -81,35 +81,55 @@ extern int debug; /* * state flags */ -#define PARSEB_ANNOUNCE 0x0001 /* switch time zone warning (DST switch) */ -#define PARSEB_POWERUP 0x0002 /* no synchronisation */ -#define PARSEB_NOSYNC 0x0004 /* timecode currently not confirmed */ -#define PARSEB_DST 0x0008 /* DST in effect */ -#define PARSEB_UTC 0x0010 /* UTC time */ -#define PARSEB_LEAP 0x0020 /* LEAP warning (1 hour prior to occurence) */ -#define PARSEB_ALTERNATE 0x0040 /* alternate antenna used */ -#define PARSEB_POSITION 0x0080 /* position available */ -#define PARSEB_LEAPSECOND 0x0100 /* actual leap second */ - -#define PARSEB_S_LEAP 0x0200 /* supports LEAP */ -#define PARSEB_S_ANTENNA 0x0400 /* supports antenna information */ -#define PARSEB_S_PPS 0x0800 /* supports PPS time stamping */ -#define PARSEB_S_POSITION 0x1000 /* supports position information (GPS) */ - -#define PARSEB_TIMECODE 0x2000 /* valid time code sample */ -#define PARSEB_PPS 0x4000 /* valid PPS sample */ +#define PARSEB_POWERUP 0x00000001 /* no synchronisation */ +#define PARSEB_NOSYNC 0x00000002 /* timecode currently not confirmed */ + +/* + * time zone information + */ +#define PARSEB_ANNOUNCE 0x00000010 /* switch time zone warning (DST switch) */ +#define PARSEB_DST 0x00000020 /* DST in effect */ +#define PARSEB_UTC 0x00000040 /* UTC time */ + +/* + * leap information + */ +#define PARSEB_LEAPDEL 0x00000100 /* LEAP deletion warning */ +#define PARSEB_LEAPADD 0x00000200 /* LEAP addition warning */ +#define PARSEB_LEAPS 0x00000300 /* LEAP warnings */ +#define PARSEB_LEAPSECOND 0x00000400 /* actual leap second */ +/* + * optional status information + */ +#define PARSEB_ALTERNATE 0x00001000 /* alternate antenna used */ +#define PARSEB_POSITION 0x00002000 /* position available */ + +/* + * feature information + */ +#define PARSEB_S_LEAP 0x00010000 /* supports LEAP */ +#define PARSEB_S_ANTENNA 0x00020000 /* supports antenna information */ +#define PARSEB_S_PPS 0x00040000 /* supports PPS time stamping */ +#define PARSEB_S_POSITION 0x00080000 /* supports position information (GPS) */ + +/* + * time stamp availality + */ +#define PARSEB_TIMECODE 0x10000000 /* valid time code sample */ +#define PARSEB_PPS 0x20000000 /* valid PPS sample */ #define PARSE_TCINFO (PARSEB_ANNOUNCE|PARSEB_POWERUP|PARSEB_NOSYNC|PARSEB_DST|\ - PARSEB_UTC|PARSEB_LEAP|PARSEB_ALTERNATE|PARSEB_S_LEAP|\ + PARSEB_UTC|PARSEB_LEAPS|PARSEB_ALTERNATE|PARSEB_S_LEAP|\ PARSEB_S_LOCATION|PARSEB_TIMECODE) -#define PARSE_POWERUP(x) ((x) & PARSEB_POWERUP) -#define PARSE_NOSYNC(x) (((x) & (PARSEB_POWERUP|PARSEB_NOSYNC)) == PARSEB_NOSYNC) -#define PARSE_SYNC(x) (((x) & (PARSEB_POWERUP|PARSEB_NOSYNC)) == 0) -#define PARSE_ANNOUNCE(x) ((x) & PARSEB_ANNOUNCE) -#define PARSE_DST(x) ((x) & PARSEB_DST) +#define PARSE_POWERUP(x) ((x) & PARSEB_POWERUP) +#define PARSE_NOSYNC(x) (((x) & (PARSEB_POWERUP|PARSEB_NOSYNC)) == PARSEB_NOSYNC) +#define PARSE_SYNC(x) (((x) & (PARSEB_POWERUP|PARSEB_NOSYNC)) == 0) +#define PARSE_ANNOUNCE(x) ((x) & PARSEB_ANNOUNCE) +#define PARSE_DST(x) ((x) & PARSEB_DST) #define PARSE_UTC(x) ((x) & PARSEB_UTC) -#define PARSE_LEAP(x) (PARSE_SYNC(x) && ((x) & PARSEB_LEAP)) +#define PARSE_LEAPADD(x) (PARSE_SYNC(x) && (((x) & PARSEB_LEAPS) == PARSEB_LEAPADD)) +#define PARSE_LEAPDEL(x) (PARSE_SYNC(x) && (((x) & PARSEB_LEAPS) == PARSEB_LEAPDEL)) #define PARSE_ALTERNATE(x) ((x) & PARSEB_ALTERNATE) #define PARSE_LEAPSECOND(x) (PARSE_SYNC(x) && ((x) & PARSEB_LEAP_SECOND)) @@ -118,9 +138,9 @@ extern int debug; #define PARSE_S_PPS(x) ((x) & PARSEB_S_PPS) #define PARSE_S_POSITION(x) ((x) & PARSEB_S_POSITION) -#define PARSE_TIMECODE(x) ((x) & PARSEB_TIMECODE) +#define PARSE_TIMECODE(x) ((x) & PARSEB_TIMECODE) #define PARSE_PPS(x) ((x) & PARSEB_PPS) -#define PARSE_POSITION(x) ((x) & PARSEB_POSITION) +#define PARSE_POSITION(x) ((x) & PARSEB_POSITION) /* * operation flags - some are also fudge flags @@ -281,6 +301,7 @@ struct clocktime /* clock time broken up from time code */ LONG second; LONG usecond; LONG utcoffset; /* in seconds */ + time_t utctime; /* the actual time - alternative to date/time */ LONG flags; /* current clock status */ }; @@ -365,6 +386,9 @@ extern unsigned LONG pps_simple P((parse_t *, int status, timestamp_t *)); * History: * * parse.h,v + * Revision 3.17 1994/03/03 09:27:20 kardel + * rcs ids fixed + * * Revision 3.13 1994/01/25 19:04:21 kardel * 94/01/23 reconcilation * -- cgit v1.1