scotth@corp.sgi.com (Scott Henry) (06/27/91)
Distribution: FCC: |/usr/local/lib/mh/rcvstore +Article Since a lot of people requested this patch file, I though that I'd post them in addition to mailing to the requestors. These patches have evolved over several months of trying to make xntp work well internally to SGI. I suppose I gotta say some of this legal guf: this software is not supported or officially sanctioned by SGI. There is no known intent to support xntp as a product, and if you try to call the hotline for support your going to get "Huh??" as a reply. If you have problems installing this, email me and I'll try to help as time permits. This file consists of context diffs from the xntp ditribution at louie.udel.edu (as far as I know, it's the latest version there). If you don't have the patch utility, I'd get it and install it first (there's a lot of difs with possibility for error if done manually). I believe patch is available in the comp.sources.unix archive. After you build xntp, look in the file README-SGI for hints on installing it (also the install/ directory). diff -cr ../louie/Config ./Config *** ../louie/Config Tue Nov 14 10:45:14 1989 --- ./Config Sun Apr 7 22:29:26 1991 *************** *** 55,61 **** # To change the location of the configuration file, use a # -DCONFIG_FILE=\\"/local/etc/ntp.conf\\" or something similar. # ! DEFS= # -DNO_SIGNED_CHAR_DECL # # Clock support definitions (these only make sense if -DREFCLOCK used): --- 55,63 ---- # To change the location of the configuration file, use a # -DCONFIG_FILE=\\"/local/etc/ntp.conf\\" or something similar. # ! # DEFS= # -DNO_SIGNED_CHAR_DECL ! # DEFS= -DREFCLOCK -DDEBUG ! DEFS= -DCONFIG_FILE=\\"/usr/etc/ntp.conf\\" -DKEYFILE=\\"/usr/etc/ntp.keys\\" -DADJTIME_IS_ACCURATE # # Clock support definitions (these only make sense if -DREFCLOCK used): *************** *** 71,82 **** # previously have installed the CHU serial line discipline in # the kernel of the machine you are doing the compile on. # ! CLOCKDEFS= # # For MIPS 4.3BSD or RISCos 4.0, include a -lmld to get the nlist() routine # ! DAEMONLIBS= # -lmld # # Name resolver library. Included when loading xntpres, which calls --- 73,87 ---- # previously have installed the CHU serial line discipline in # the kernel of the machine you are doing the compile on. # ! # Define -DTRUETIME to include support for the Kinemetrics TrueTime ! # receiver(s). ! # ! CLOCKDEFS= -DLOCAL_CLOCK # # For MIPS 4.3BSD or RISCos 4.0, include a -lmld to get the nlist() routine # ! DAEMONLIBS= -lmld # # Name resolver library. Included when loading xntpres, which calls *************** *** 83,94 **** # gethostbyname(). Define this if you would rather use a different # version of the routine than the one in libc.a # ! RESLIB= # # Option flags for the C compiler. A -g if you are uncomfortable # ! COPTS= -O # # C compiler to use. gcc will work, but avoid the -fstrength-reduce option --- 88,100 ---- # gethostbyname(). Define this if you would rather use a different # version of the routine than the one in libc.a # ! RESLIB= -lsun # # Option flags for the C compiler. A -g if you are uncomfortable # ! COPTS= -O2 -g3 -D_BSD_SIGNALS ! #COPTS= -g -DDEBUG -D_BSD_COMPAT # # C compiler to use. gcc will work, but avoid the -fstrength-reduce option *************** *** 101,104 **** # # Directory into which binaries should be installed # ! BINDIR= /local/etc --- 107,112 ---- # # Directory into which binaries should be installed # ! BINDIR= /usr/etc ! CONFIGDIR = /usr/etc ! CONFIG_FN= ntp.conf diff -cr ../louie/Makefile ./Makefile *** ../louie/Makefile Tue Nov 14 09:09:18 1989 --- ./Makefile Wed Oct 10 11:06:13 1990 *************** *** 30,36 **** cd lib ; $(MAKE) $(MFLAGS) neat: ! rm -f $(CONF).sed eddep makedep Makefile.bak make.log make.out *.tar clean: neat cd xntpd ; $(MAKE) $(MFLAGS) clean --- 30,36 ---- cd lib ; $(MAKE) $(MFLAGS) neat: ! - rm -f $(CONF).sed eddep makedep Makefile.bak make.log make.out *.tar clean: neat cd xntpd ; $(MAKE) $(MFLAGS) clean Only in .: README-SGI *** /dev/null Wed Jun 26 05:02:40 1991 --- README-SGI Wed Jun 26 10:11:59 1991 *************** *** 0 **** --- 1,32 ---- + The files in the install/ directory are an aid in making xntpd run + automatically, and get started on a boot. My Makefile and Config put all + config files and binaries in /usr/etc (the normal place for networking + config files). Startup scripts are placed in /etc/init.d with symlinks + from /etc/rc[02].d/. I have included sample config files in this + directory. + + To make this work, edit the file install/init.d_ntp and replace the line + + NTPSERVS="ntp0 ntp1 ntp2 ntp3 ntp4 ntp5 ntp6 ntp7 ntp8 ntp9" + + with a list of your own ntp servers. Similarly edit the file + install/ntp.conf.x. You will need to be running xntpres to use names + rather than addresses, and xntpres needs the file ntp.keys, so put in your + own passwords there. + + To install xntp and get it running on an IRIS (3.3 and later are all I've + tested), basically execute the following script: + + su + cp xntpd/xntpd /usr/etc + cp xntpres/xntpres /usr/etc + cp xntpdc/xntpdc /usr/etc + cp ntpdate/ntpdate /usr/etc + cp install/ntp.conf.x /usr/etc/ntp.conf + cp install/ntp.keys.x /usr/etc/ntp.keys + cp install/init.d_ntp /etc/init.d/ntp + chmod a+x /etc/init.d/ntp + ln -s /etc/init.d/ntp /etc/rc2.d/S35ntp + ln -s /etc/init.d/ntp /etc/rc0.d/K35ntp + chkconfig ntp on + /etc/init.d/ntp start Common subdirectories: ../louie/authstuff and ./authstuff Common subdirectories: ../louie/clockstuff and ./clockstuff Common subdirectories: ../louie/conf and ./conf Common subdirectories: ../louie/doc and ./doc Common subdirectories: ../louie/gizmo and ./gizmo Common subdirectories: ../louie/include and ./include Only in .: install *** /dev/null Wed Jun 26 05:02:40 1991 --- install/init.d_ntp Wed Jun 26 10:02:00 1991 *************** *** 0 **** --- 1,51 ---- + #! /bin/sh + # + # Start or stop the NTP daemon + # + + IS_ON=/etc/chkconfig + NTPD=xntpd + NTPDPATH=/usr/etc + CONF=/etc/config + NTPSERVS="ntp0 ntp1 ntp2 ntp3 ntp4 ntp5 ntp6 ntp7 ntp8 ntp9" + + if $IS_ON verbose ; then + ECHO=echo + VERBOSE=-v + else # For a quiet startup and shutdown + ECHO=: + VERBOSE= + fi + + case "$1" in + 'start') + /etc/killall $NTPD + if $IS_ON ntp && test -x $NTPDPATH/$NTPD; then + if $IS_ON verbose ; then + $NTPDPATH/ntpdate $NTPSERVS 2>/dev/null + else + $NTPDPATH/ntpdate $NTPSERVS >/dev/null 2>&1 + fi + if test -f $CONF/ntp.options; then + $NTPDPATH/$NTPD `cat $CONF/ntp.options` > /dev/null 2>&1 + elif test -f $NTPDPATH/ntp.conf; then + $NTPDPATH/$NTPD > /dev/null 2>&1 + else + $NTPDPATH/$NTPD -b -f $NTPDPATH/ntp.drift + fi + if test -f $NTPDPATH/ntp.conf; then + $ECHO "Network time: $NTPD (configured)" + else + $ECHO "Network time: $NTPD (broadcast)" + fi + fi + ;; + + 'stop') + /etc/killall $NTPD + ;; + + *) + echo "usage: $0 {start|stop}" + ;; + esac *** /dev/null Wed Jun 26 05:02:40 1991 --- install/ntp.conf.x Wed Jun 26 10:02:41 1991 *************** *** 0 **** --- 1,26 ---- + # distribution configuration file for xntp leaf nodes at SGI + # scotth 90.11.30 + + # these are aliases to server machines in the local domain + server ntp0 + server ntp1 + server ntp2 + server ntp3 + server ntp4 + server ntp5 + server ntp6 + server ntp7 + server ntp8 + server ntp9 + + driftfile /usr/etc/ntp.drift + + monitor no + + requestkey 1234 + controlkey 2468 + keys /usr/etc/ntp.keys + + resolver /usr/etc/xntpres + + broadcastclient yes *** /dev/null Wed Jun 26 05:02:40 1991 --- install/ntp.keys.x Wed Jun 26 10:11:03 1991 *************** *** 0 **** --- 1,2 ---- + 1234 A trythis + 2468 A orthat Common subdirectories: ../louie/kernel and ./kernel Common subdirectories: ../louie/lib and ./lib Common subdirectories: ../louie/ntpdate and ./ntpdate Common subdirectories: ../louie/ntpq and ./ntpq Common subdirectories: ../louie/util and ./util Common subdirectories: ../louie/xntpd and ./xntpd Common subdirectories: ../louie/xntpdc and ./xntpdc Common subdirectories: ../louie/xntpres and ./xntpres diff -cr ../louie/authstuff/Makefile ./authstuff/Makefile *** ../louie/authstuff/Makefile Tue Nov 14 10:45:23 1989 --- ./authstuff/Makefile Sun Apr 7 22:29:30 1991 *************** *** 3,11 **** # authcert, authspeed - authentication utilities # COMPILER= cc ! COPTS= -O ! BINDIR= /local/etc ! DEFS= # -DNO_SIGNED_CHAR_DECL # INCL= -I../include CFLAGS= $(COPTS) $(DEFS) $(INCL) --- 3,11 ---- # authcert, authspeed - authentication utilities # COMPILER= cc ! COPTS= -O2 -g3 -D_BSD_SIGNALS ! BINDIR= /usr/etc ! DEFS= -DCONFIG_FILE=\"/usr/etc/ntp.conf\" -DKEYFILE=\"/usr/etc/ntp.keys\" -DADJTIME_IS_ACCURATE # INCL= -I../include CFLAGS= $(COPTS) $(DEFS) $(INCL) diff -cr ../louie/clockstuff/Makefile ./clockstuff/Makefile *** ../louie/clockstuff/Makefile Tue Nov 14 10:45:25 1989 --- ./clockstuff/Makefile Sun Apr 7 22:29:31 1991 *************** *** 3,11 **** # Makefile for clock miscellany # COMPILER= cc ! COPTS= -O ! BINDIR= /local/etc ! DEFS= # -DNO_SIGNED_CHAR_DECL # INCL= -I../include CFLAGS= $(COPTS) $(DEFS) $(INCL) --- 3,11 ---- # Makefile for clock miscellany # COMPILER= cc ! COPTS= -O2 -g3 -D_BSD_SIGNALS ! BINDIR= /usr/etc ! DEFS= -DCONFIG_FILE=\"/usr/etc/ntp.conf\" -DKEYFILE=\"/usr/etc/ntp.keys\" -DADJTIME_IS_ACCURATE # INCL= -I../include CFLAGS= $(COPTS) $(DEFS) $(INCL) *************** *** 31,37 **** $(CC) $(COPTS) -o $@ $(CLKOBJS) $(LIB) install: $(PROGRAM) ! # install -c -m 0755 $(PROGRAM) $(BINDIR) tags: ctags *.c *.h --- 31,37 ---- $(CC) $(COPTS) -o $@ $(CLKOBJS) $(LIB) install: $(PROGRAM) ! # install -m 0755 -F $(BINDIR) $(PROGRAM) tags: ctags *.c *.h diff -cr ../louie/include/ntp.h ./include/ntp.h *** ../louie/include/ntp.h Thu Oct 26 14:17:36 1989 --- ./include/ntp.h Mon Mar 11 08:45:42 1991 *************** *** 56,62 **** --- 56,68 ---- #define CLOCK_COMP 4 /* compliance maximum: 2**4 */ #define CLOCK_FACTOR 18 /* compliance factor: 2**18 */ + #ifndef CLOCK_MAX_F + #if defined(convex) + #define CLOCK_MAX_F 0x5999999a /* 350 ms, in time stamp format */ + #else #define CLOCK_MAX_F 0x20c49ba6 /* 128 ms, in time stamp format */ + #endif + #endif #define CLOCK_MAX_I 0x0 /* both fractional and integral parts */ #define CLOCK_WAYTOOBIG 1000 /* if clock 1000 sec off, forget it */ diff -cr ../louie/lib/Makefile ./lib/Makefile *** ../louie/lib/Makefile Tue Nov 14 10:45:20 1989 --- ./lib/Makefile Sun Apr 7 22:29:28 1991 *************** *** 3,9 **** # xntp routines which are used a lot of places # COMPILER= cc ! COPTS= -O LIBDEFS= -DBIG_ENDIAN RANLIB= ranlib # : ar does the work of ranlib under System V # --- 3,9 ---- # xntp routines which are used a lot of places # COMPILER= cc ! COPTS= -O2 -g3 -D_BSD_SIGNALS LIBDEFS= -DBIG_ENDIAN RANLIB= ranlib # : ar does the work of ranlib under System V # *************** *** 36,42 **** $(LIBNAME).a: $(OBJS) ar rv $@ $? rm -f $? ! ranlib $@ lintlib: llib-l$(LIBNAME).ln --- 36,42 ---- $(LIBNAME).a: $(OBJS) ar rv $@ $? rm -f $? ! -ranlib $@ lintlib: llib-l$(LIBNAME).ln diff -cr ../louie/lib/emalloc.c ./lib/emalloc.c *** ../louie/lib/emalloc.c Tue Jul 18 14:34:44 1989 --- ./lib/emalloc.c Mon Mar 4 13:17:18 1991 *************** *** 11,17 **** char *mem; extern char *malloc(); ! if ((mem = malloc(size)) == 0) { syslog(LOG_ERR, "No more memory!"); exit(1); } --- 11,17 ---- char *mem; extern char *malloc(); ! if ((mem = malloc(size+1)) == 0) { syslog(LOG_ERR, "No more memory!"); exit(1); } diff -cr ../louie/ntpdate/Makefile ./ntpdate/Makefile *** ../louie/ntpdate/Makefile Tue Nov 14 10:45:22 1989 --- ./ntpdate/Makefile Tue Apr 16 15:42:30 1991 *************** *** 3,11 **** # ntpdate - private mode query program for ntpdate # COMPILER= cc ! COPTS= -O ! BINDIR= /local/etc ! DEFS= # -DNO_SIGNED_CHAR_DECL # INCL= -I../include CFLAGS= $(COPTS) $(DEFS) $(INCL) --- 3,11 ---- # ntpdate - private mode query program for ntpdate # COMPILER= cc ! COPTS= -O2 -g3 -D_BSD_SIGNALS ! BINDIR= /usr/etc ! DEFS= -DCONFIG_FILE=\"/usr/etc/ntp.conf\" -DKEYFILE=\"/usr/etc/ntp.keys\" -DADJTIME_IS_ACCURATE # INCL= -I../include CFLAGS= $(COPTS) $(DEFS) $(INCL) *************** *** 23,29 **** $(CC) $(COPTS) -o $@ $(OBJS) version.o $(LIB) install: $(PROGRAM) ! install -c -m 0755 $(PROGRAM) $(BINDIR) tags: ctags *.c *.h --- 23,29 ---- $(CC) $(COPTS) -o $@ $(OBJS) version.o $(LIB) install: $(PROGRAM) ! $(INSTALL) -m 0755 -F $(BINDIR) $(PROGRAM) tags: ctags *.c *.h diff -cr ../louie/ntpq/Makefile ./ntpq/Makefile *** ../louie/ntpq/Makefile Tue Nov 14 10:45:24 1989 --- ./ntpq/Makefile Tue Apr 16 15:42:45 1991 *************** *** 3,11 **** # ntpq - control mode query program # COMPILER= cc ! COPTS= -O ! BINDIR= /local/etc ! DEFS= # -DNO_SIGNED_CHAR_DECL # INCL= -I../include CFLAGS= $(COPTS) $(DEFS) $(INCL) --- 3,11 ---- # ntpq - control mode query program # COMPILER= cc ! COPTS= -O2 -g3 -D_BSD_SIGNALS ! BINDIR= /usr/etc ! DEFS= -DCONFIG_FILE=\"/usr/etc/ntp.conf\" -DKEYFILE=\"/usr/etc/ntp.keys\" -DADJTIME_IS_ACCURATE # INCL= -I../include CFLAGS= $(COPTS) $(DEFS) $(INCL) *************** *** 23,29 **** $(CC) $(COPTS) -o $@ $(OBJS) version.o $(LIB) install: $(PROGRAM) ! install -c -m 0755 $(PROGRAM) $(BINDIR) tags: ctags *.c *.h --- 23,29 ---- $(CC) $(COPTS) -o $@ $(OBJS) version.o $(LIB) install: $(PROGRAM) ! $(INSTALL) -m 0755 -F $(BINDIR) $(PROGRAM) tags: ctags *.c *.h diff -cr ../louie/util/Makefile ./util/Makefile *** ../louie/util/Makefile Tue Nov 14 10:45:26 1989 --- ./util/Makefile Tue Apr 23 10:48:59 1991 *************** *** 1,12 **** ! PROGRAM= tickadj # # Makefile for utilities # COMPILER= cc ! COPTS= -O ! BINDIR= /local/etc ! DEFS= # -DNO_SIGNED_CHAR_DECL ! DAEMONLIBS= # -lmld # INCL= -I../include CFLAGS= $(COPTS) $(DEFS) $(INCL) --- 1,12 ---- ! PROGRAM= # # Makefile for utilities # COMPILER= cc ! COPTS= -O2 -g3 -D_BSD_SIGNALS ! BINDIR= /usr/etc ! DEFS= -DCONFIG_FILE=\"/usr/etc/ntp.conf\" -DKEYFILE=\"/usr/etc/ntp.keys\" -DADJTIME_IS_ACCURATE ! DAEMONLIBS= -lmld # INCL= -I../include CFLAGS= $(COPTS) $(DEFS) $(INCL) *************** *** 20,30 **** all: $(PROGRAM) ! $(PROGRAM): $(OBJS) ! $(CC) $(COPTS) -o $@ $(OBJS) $(DAEMONLIBS) install: $(PROGRAM) ! install -c -m 0755 $(PROGRAM) $(BINDIR) tags: ctags *.c *.h --- 20,48 ---- all: $(PROGRAM) ! tickadj: tickadj.c ! $(CC) $(COPTS) -o tickadj tickadj.c $(DAEMONLIBS) + fromlfp: fromlfp.c ../include/ntp_fp.h ../include/ntp_unixtime.h + $(CC) $(CFLAGS) -o fromlfp fromlfp.c -L../lib -lm -lntp + + tolfp: tolfp.c ../include/ntp_fp.h ../include/ntp_unixtime.h + $(CC) $(CFLAGS) -o tolfp tolfp.c -L../lib -lm -lntp + + totrim: totrim.c ../xntpd/ntp_sgi.h ../xntpd/ntp_sgi.o ../include/ntp_fp.h ../include/ntp_unixtime.h + $(CC) $(CFLAGS) -o totrim totrim.c ../xntpd/ntp_sgi.o -L../lib -lm -lntp + + fromtrim: fromtrim.c ../include/ntp_fp.h ../include/ntp_unixtime.h + $(CC) $(CFLAGS) -o fromtrim fromtrim.c -L../lib -lm -lntp + + tous: tous.c ../include/ntp_fp.h ../include/ntp_unixtime.h + $(CC) $(CFLAGS) -o tous tous.c -L../lib -lm -lntp + + fromus: fromus.c ../include/ntp_fp.h ../include/ntp_unixtime.h + $(CC) $(CFLAGS) -o fromus fromus.c -L../lib -lm -lntp + install: $(PROGRAM) ! install -m 0755 -F $(BINDIR) $(PROGRAM) tags: ctags *.c *.h Only in ./util: dst-test.c Only in ./util: fromlfp.c Only in ./util: fromtrim.c Only in ./util: fromus.c Only in ./util: tolfp.c Only in ./util: totrim.c Only in ./util: tous.c diff -cr ../louie/xntpd/Makefile ./xntpd/Makefile *** ../louie/xntpd/Makefile Tue Nov 14 10:45:21 1989 --- ./xntpd/Makefile Tue Apr 16 15:41:26 1991 *************** *** 3,13 **** # xntpd - NTP daemon # COMPILER= cc ! COPTS= -O ! BINDIR= /local/etc ! DEFS= # -DNO_SIGNED_CHAR_DECL ! CLOCKDEFS= ! DAEMONLIBS= # -lmld # INCL= -I../include CFLAGS= $(COPTS) $(DEFS) $(INCL) --- 3,14 ---- # xntpd - NTP daemon # COMPILER= cc ! COPTS= -O2 -g3 -D_BSD_SIGNALS ! BINDIR= /usr/etc ! CONFIGDIR= /usr/etc ! DEFS= -DCONFIG_FILE=\"/usr/etc/ntp.conf\" -DKEYFILE=\"/usr/etc/ntp.keys\" -DADJTIME_IS_ACCURATE ! CLOCKDEFS= -DLOCAL_CLOCK ! DAEMONLIBS= -lmld # INCL= -I../include CFLAGS= $(COPTS) $(DEFS) $(INCL) *************** *** 21,27 **** ntp_refclock.c ntp_request.c ntp_restrict.c ntp_timer.c \ ntp_unixclock.c ntp_util.c ntpd.c refclock_chu.c \ refclock_conf.c refclock_local.c refclock_pst.c \ ! refclock_wwvb.c OBJS= ntp_config.o ntp_control.o ntp_io.o ntp_leap.o \ ntp_loopfilter.o ntp_monitor.o ntp_peer.o ntp_proto.o \ --- 22,29 ---- ntp_refclock.c ntp_request.c ntp_restrict.c ntp_timer.c \ ntp_unixclock.c ntp_util.c ntpd.c refclock_chu.c \ refclock_conf.c refclock_local.c refclock_pst.c \ ! refclock_wwvb.c \ ! ntp_sgi.c OBJS= ntp_config.o ntp_control.o ntp_io.o ntp_leap.o \ ntp_loopfilter.o ntp_monitor.o ntp_peer.o ntp_proto.o \ *************** *** 28,34 **** ntp_refclock.o ntp_request.o ntp_restrict.o ntp_timer.o \ ntp_unixclock.o ntp_util.o ntpd.o refclock_chu.o \ refclock_conf.o refclock_local.o refclock_pst.o \ ! refclock_wwvb.o all: $(PROGRAM) --- 30,37 ---- ntp_refclock.o ntp_request.o ntp_restrict.o ntp_timer.o \ ntp_unixclock.o ntp_util.o ntpd.o refclock_chu.o \ refclock_conf.o refclock_local.o refclock_pst.o \ ! refclock_wwvb.o \ ! ntp_sgi.o all: $(PROGRAM) *************** *** 36,42 **** $(CC) $(COPTS) -o $@ $(OBJS) version.o $(LIB) $(DAEMONLIBS) install: $(PROGRAM) ! install -c -m 0755 $(PROGRAM) $(BINDIR) tags: ctags *.c *.h --- 39,45 ---- $(CC) $(COPTS) -o $@ $(OBJS) version.o $(LIB) $(DAEMONLIBS) install: $(PROGRAM) ! $(INSTALL) -m 0755 -F $(BINDIR) $(PROGRAM) tags: ctags *.c *.h *************** *** 74,76 **** --- 77,81 ---- refclock_wwvb.o: refclock_wwvb.c $(CC) $(COPTS) $(DEFS) $(CLOCKDEFS) $(INCL) -c $*.c + refclock_truetime.o: refclock_truetime.c + $(CC) $(COPTS) $(DEFS) $(CLOCKDEFS) $(INCL) -c $*.c diff -cr ../louie/xntpd/ntp_config.c ./xntpd/ntp_config.c *** ../louie/xntpd/ntp_config.c Tue Nov 14 10:16:16 1989 --- ./xntpd/ntp_config.c Fri Mar 29 10:22:00 1991 *************** *** 221,227 **** --- 221,232 ---- extern int debug; #endif char *progname; + #ifdef sgi + char *sgi_timetrim_file; + char *xntp_options = "abc:de:f:k:r:t:P:"; + #else char *xntp_options = "abc:de:f:k:r:t:"; + #endif /* *************** *** 426,431 **** --- 431,441 ---- } while (0); break; + #ifdef sgi + case 'P': + sgi_timetrim_file = optarg; + break; + #endif /* sgi */ default: errflg++; diff -cr ../louie/xntpd/ntp_io.c ./xntpd/ntp_io.c *** ../louie/xntpd/ntp_io.c Sun Nov 5 16:24:43 1989 --- ./xntpd/ntp_io.c Wed Mar 6 08:35:02 1991 *************** *** 18,23 **** --- 18,26 ---- #endif #include <net/if.h> #include <netinet/in.h> + #ifdef SIGPOLL + #include <sys/stropts.h> + #endif #include "ntp_syslog.h" #include "ntp_fp.h" *************** *** 58,64 **** --- 61,71 ---- /* * Block the interrupt, for critical sections. */ + #ifdef SIGPOLL + #define BLOCKIO(osig) (osig = sigblock((sigmask(SIGIO)|sigmask(SIGPOLL)))) + #else #define BLOCKIO(osig) (osig = sigblock(sigmask(SIGIO))) + #endif #define UNBLOCKIO(osig) ((void) sigsetmask(osig)) /* *************** *** 165,170 **** --- 172,180 ---- * Point SIGIO at service routine */ (void) signal(SIGIO, input_handler); + #ifdef SIGPOLL + (void) signal(SIGPOLL, input_handler); + #endif /* * Create the sockets *************** *** 646,651 **** --- 656,662 ---- l_fp ts; fd_set fds; extern void receive(); + int osig; handler_calls++; *************** *** 680,685 **** --- 691,701 ---- for (rp = refio; rp != 0 && n > 0; rp = rp->next) { fd = rp->fd; if (FD_ISSET(fd, &fds)) { + #ifdef DEBUG + if (debug > 3) { + printf("input_handler: fd = %d\n", fd); + } + #endif n--; if (free_recvbufs == 0) { char buf[RX_BUFF_SIZE]; *************** *** 689,713 **** continue; } rb = freelist; freelist = rb->next; free_recvbufs--; i = (rp->datalen == 0 || rp->datalen > sizeof(rb->recv_space)) ? sizeof(rb->recv_space) : rp->datalen; ! rb->recv_length = read(fd, (char *)&rb->recv_space, i); if (rb->recv_length == -1) { syslog(LOG_ERR, "clock read: %m"); rb->next = freelist; freelist = rb; free_recvbufs++; continue; } ! /* * Got one. Mark how and when it got here, * put it on the full list and do bookkeeping. --- 705,733 ---- continue; } + BLOCKIO(osig); rb = freelist; freelist = rb->next; free_recvbufs--; + UNBLOCKIO(osig); i = (rp->datalen == 0 || rp->datalen > sizeof(rb->recv_space)) ? sizeof(rb->recv_space) : rp->datalen; ! rb->recv_length = read(fd, (char *)&rb->recv_space, i); if (rb->recv_length == -1) { syslog(LOG_ERR, "clock read: %m"); + BLOCKIO(osig); rb->next = freelist; freelist = rb; free_recvbufs++; + UNBLOCKIO(osig); continue; } ! /* * Got one. Mark how and when it got here, * put it on the full list and do bookkeeping. *************** *** 742,747 **** --- 762,772 ---- } if (FD_ISSET(fd, &fds)) { n--; + #ifdef DEBUG + if (debug > 3) { + printf("input_handler: fd = %d\n", fd); + } + #endif /* * Get a buffer and read the frame. If we * haven't got a buffer, or this is received *************** *** 757,767 **** packets_dropped++; continue; } ! rb = freelist; freelist = rb->next; free_recvbufs--; ! fromlen = sizeof(struct sockaddr_in); rb->recv_length = recvfrom(fd, (char *)&rb->recv_space, --- 782,794 ---- packets_dropped++; continue; } ! ! BLOCKIO(osig); rb = freelist; freelist = rb->next; free_recvbufs--; ! UNBLOCKIO(osig); ! fromlen = sizeof(struct sockaddr_in); rb->recv_length = recvfrom(fd, (char *)&rb->recv_space, *************** *** 768,781 **** sizeof(rb->recv_space), 0, (struct sockaddr *)&rb->recv_srcadr, &fromlen); ! if (rb->recv_length == -1) { syslog(LOG_ERR, "recvfrom: %m"); rb->next = freelist; freelist = rb; free_recvbufs++; continue; } ! /* * Got one. Mark how and when it got here, * put it on the full list and do bookkeeping. --- 795,814 ---- sizeof(rb->recv_space), 0, (struct sockaddr *)&rb->recv_srcadr, &fromlen); ! if (rb->recv_length == -1 ! #ifdef EWOULDBLOCK ! && errno != EWOULDBLOCK ! #endif ! ) { syslog(LOG_ERR, "recvfrom: %m"); + BLOCKIO(osig); rb->next = freelist; freelist = rb; free_recvbufs++; + UNBLOCKIO(osig); continue; } ! /* * Got one. Mark how and when it got here, * put it on the full list and do bookkeeping. *************** *** 783,793 **** rb->dstadr = &inter_list[i]; rb->recv_time = ts; rb->receiver = receive; ! rb->next = fulllist; fulllist = rb; full_recvbufs++; ! inter_list[i].received++; packets_received++; } --- 816,826 ---- rb->dstadr = &inter_list[i]; rb->recv_time = ts; rb->receiver = receive; ! rb->next = fulllist; fulllist = rb; full_recvbufs++; ! inter_list[i].received++; packets_received++; } *************** *** 857,866 **** --- 890,901 ---- * less set up. Make it non-blocking and arrange for the * delivery of SIGIO interrupts to us. */ + #ifndef sgi if (fcntl(rio->fd, F_SETOWN, getpid()) == -1) { syslog(LOG_ERR, "fcntl(F_SETOWN) fails for clock I/O: %m"); return 0; } + #endif BLOCKIO(osig); /* *************** *** 872,878 **** --- 907,925 ---- return 0; } + #ifdef SIGPOLL /* + * set non-blocking streams I/O and indicate a desire to + * receive SIPOLL events on the descriptor + */ + if (ioctl(rio->fd, I_SETSIG, S_INPUT) < 0) { + syslog(LOG_ERR, + "ioctl(I_SETSIG, S_INPUT) fails for clock I/O: %m"); + return 0; + } + #endif + + /* * Stuff the I/O structure in the list and mark the descriptor * in use. There is a harmless (I hope) race condition here. */ *************** *** 918,923 **** --- 965,980 ---- return; } } + + #ifdef SIGPOLL + /* + * unregister interest in streams interrupts + */ + if (ioctl(rio->fd, I_SETSIG, 0) < 0) { + syslog(LOG_ERR, + "ioctl(I_SETSIG, 0) error for refclock: %m"); + } + #endif /* * Close the descriptor. close_socket does the right thing despite diff -cr ../louie/xntpd/ntp_loopfilter.c ./xntpd/ntp_loopfilter.c *** ../louie/xntpd/ntp_loopfilter.c Sun Nov 5 14:24:38 1989 --- ./xntpd/ntp_loopfilter.c Tue Apr 23 10:58:28 1991 *************** *** 9,14 **** --- 9,17 ---- #include "ntp_syslog.h" #include "ntp_fp.h" #include "ntp.h" + #ifdef sgi + #include "ntp_sgi.h" + #endif /* * The loop filter is implemented in slavish adherence to the *************** *** 116,122 **** */ if (tmp_ui > CLOCK_MAX_I || (tmp_ui == CLOCK_MAX_I && (u_long)tmp_uf >= (u_long)CLOCK_MAX_F)) { ! syslog(LOG_DEBUG, "adjust: STEP %s offset %s\n", ntoa(from), lfptoa(fp_offset)); step_systime(fp_offset); --- 119,125 ---- */ if (tmp_ui > CLOCK_MAX_I || (tmp_ui == CLOCK_MAX_I && (u_long)tmp_uf >= (u_long)CLOCK_MAX_F)) { ! syslog(LOG_INFO, "adjust: STEP %s offset %s\n", ntoa(from), lfptoa(fp_offset)); step_systime(fp_offset); *************** *** 267,273 **** --- 270,297 ---- { switch (item) { case LOOP_DRIFTCOMP: + #ifdef sgi + /* + * convert the ntp.drift compensation into a timetrim value. + * if timetrim is not zero when we start, then we assume that + * who/whatever set it has a better idea of a starting value + * than I do, so don't override it. + */ + { + long old_trim, new_trim; + + if (0 != syssgi(SGI_GETTIMETRIM, &old_trim)) { + syslog(LOG_ERR, "Can't get timetrim value: %m"); + } + if (old_trim == 0) { + new_trim = lfptotrim( value); + syssgi(SGI_SETTIMETRIM, new_trim); + } + L_CLR(&drift_comp); + } + #else drift_comp = *value; + #endif /* * Assume that drift_comp >> CLOCK_FREQ is small enough * to fit in a fraction. Do the shifts all at once. Only in ./xntpd: ntp_sgi.c *** /dev/null Wed Jun 26 05:02:40 1991 --- xntpd/ntp_sgi.c Tue Apr 23 10:55:31 1991 *************** *** 0 **** --- 1,120 ---- + /* + * support functions for the xntpd port to Silicon Graphics workstations + * + * author: scott henry 91.01.08 <scotth@sgi.com> + */ + + #ifdef sgi + + #include <sys/types.h> + #include <netinet/in.h> + + #include "ntp_fp.h" + #include "ntp.h" + #include "ntp_unixtime.h" + #include "ntp_sgi.h" + + /* + * convert from a timestamp (suitable for ntp.drift value) + * to the kernel clock trimming variable timetrim + */ + + extern long tstouslo[]; + extern long tstousmid[]; + extern long tstoushi[]; + + /* + * modified version of TSFTOTVU to convert into nsec instead of usec + */ + #define TV_SHIFT 3 + #define TSFTOTVN(tsf, tvn) \ + (tvn) = (tstoushi[((tsf) >> 24) & 0xff] \ + + tstousmid[((tsf) >> 16) & 0xff] \ + + tstouslo[((tsf) >> 9) & 0x7f]) * (1000 >> (TV_SHIFT+CLOCK_ADJ)) + + long + lfptotrim( l_fp *lfp) + { + long drift; + long timetrim; + int isneg; + + drift = (long)((lfp->l_ui << (FRACTION_PREC-CLOCK_FREQ)) + | (lfp->l_uf >> CLOCK_FREQ)); + if (drift < 0) + { + isneg = 1; + drift = -drift; + } + else + { + isneg = 0; + } + + /* + * Round the adjustment value. + */ + if (lfp->l_uf & (1<<(CLOCK_FREQ-1))) + drift++; + + TSFTOTVN(drift,timetrim); + + if (isneg) + timetrim = -timetrim; + + return timetrim; + } + + + /* + * convert the kernal clock adjustment variable timetrim + * to a timestamp equivalent to the ntp.drift file value + */ + + extern u_long ustotslo[]; + extern u_long ustotsmid[]; + extern u_long ustotshi[]; + + void + trimtolfp( long timetrim, l_fp *lfp) + { + u_long drift; + int isneg; + + /* + * since TVUTOTSF loses the nanosecond portion anyway, + * convert timetrim to drift fraction, with some fudges + * to try to account for the precision loss + */ + if (timetrim < 0) + { + isneg = 1; + timetrim = -timetrim; + } + else + { + isneg = 0; + } + + #define OVERFLOW (1000000000 >> (CLOCK_FREQ)) + if (timetrim > OVERFLOW) + { + lfp->l_ui = timetrim / OVERFLOW; + timetrim % OVERFLOW; + } + + drift = ((timetrim << (CLOCK_FREQ-3)) / (1000>>3)); + if (timetrim & (0xff)) + { + drift++; /* round the drift value */ + } + + + TVUTOTSF(drift,lfp->l_uf); + if (isneg) + { + L_NEG(lfp); + } + } + + #endif /* sgi */ Only in ./xntpd: ntp_sgi.h *** /dev/null Wed Jun 26 05:02:40 1991 --- xntpd/ntp_sgi.h Tue Jan 8 14:53:18 1991 *************** *** 0 **** --- 1,19 ---- + /* + * declare the timetrim <-> timestamp functions + * ANSI style declarations + */ + + #ifdef sgi + + #include <sys/syssgi.h> + + /* make sure that the declaration for l_fp is loaded */ + /* this is the first #define in the file */ + #ifndef FRACTION_PREC + #include "ntp_fp.h" + #endif + + long lfptotrim(l_fp*); + void trimtolfp( long, l_fp*); + + #endif diff -cr ../louie/xntpd/ntp_unixclock.c ./xntpd/ntp_unixclock.c *** ../louie/xntpd/ntp_unixclock.c Wed Oct 25 19:53:06 1989 --- ./xntpd/ntp_unixclock.c Mon Apr 22 15:01:53 1991 *************** *** 10,15 **** --- 10,20 ---- #include <sys/file.h> #include <sys/stat.h> + #ifdef sgi + #include <sys/param.h> + #include <sys/syssgi.h> + #endif + #include "ntp_syslog.h" #include "ntp_fp.h" #include "ntp_unixtime.h" *************** *** 236,241 **** --- 241,297 ---- #endif sys_offset.l_ui = sys_offset.l_uf = 0; + #ifdef sgi + /* + * Some machines need a large timetrim in order to sync. + * Sometimes the initial guess is poor. The step gives us a + * good idea of the error during startup. + * + * This is being called at most once every 512 (2^9) seconds, + * so if the drift is small (we're not adjusting for a big + * initial time error) assume the drift was constant over that + * interval, and adjust the kernel's timetrim. + * + * If we are in sync, don't adjust the timetrim + */ + { + extern struct peer *sys_peer; + long timetrim; + long old_trim; + + if (sys_peer == 0 && adjtv.tv_sec < 5 && adjtv.tv_sec > -5) { + + if (0 != syssgi(SGI_GETTIMETRIM, &old_trim)) { + syslog(LOG_ERR, "Can't get timetrim value: %m"); + } + timetrim = adjtv.tv_usec + 1000000*adjtv.tv_sec; + /* + * theoretically, we should adjust the value in timetrim like: + * timetrim = (timetrim * 1000) >> 9; + * but in practice this over corrects (sometimes a lot), + * so we'll use a smaller value. If I knew of an existing + * variable that contains the elapsed time since the last + * clock adjustment I'd use it instead of guessing like this. + * In fact, it's even worse: a step doesn't always imply + * a bad drift. A smaller timetrim adjustment is less bad + * in worst-case than a bigger one. + */ + /* + * I really hate putting in hacks like this + */ + timetrim >>= 1; /* this is just a guess, anyway */ + if (isneg) { + timetrim = -timetrim + old_trim; + } else { + timetrim += old_trim; + } + if (0 != syssgi(SGI_SETTIMETRIM, timetrim)) { + syslog(LOG_ERR, "Can't do step timetrim adjustment (%ld): %m", timetrim); + } + } + } + #endif /* sgi */ + #else /* * Just add adjustment into the current offset. The update *************** *** 350,355 **** --- 406,412 ---- if (adjtv.tv_usec == 0) return; + if (adjtime(&adjtv, &oadjtv) != 0) syslog(LOG_ERR, "Can't do time adjustment: %m"); if (oadjtv.tv_sec != 0 || oadjtv.tv_usec != 0) { *************** *** 377,382 **** --- 434,444 ---- u_long *tickadj; u_long *tick; { + #ifdef sgi + /* these shouldn't change ... */ + *tickadj = 1; + *tick = 1000000/HZ; + #else /* not sgi */ register int i; int kmem; static struct nlist nl[] = *************** *** 451,455 **** --- 513,518 ---- #undef K_TICKADJ #undef K_TICK + #endif /* sgi */ } #endif /* !NOKMEM */ diff -cr ../louie/xntpd/ntp_util.c ./xntpd/ntp_util.c *** ../louie/xntpd/ntp_util.c Sun Nov 5 16:06:46 1989 --- ./xntpd/ntp_util.c Thu Mar 28 11:04:23 1991 *************** *** 20,29 **** #include "ntp_syslog.h" #include "ntp_fp.h" #include "ntp.h" - /* ! * This contains odds and ends. Right now the only thing you'll find * in here is the hourly stats printer and some code to support rereading * the keys file, but I may eventually put other things in here such as * code to do something with the leap bits. --- 20,34 ---- #include "ntp_syslog.h" #include "ntp_fp.h" #include "ntp.h" + #ifdef sgi + #include "ntp_sgi.h" + /* the name of the file to hold the timetrim info. */ + extern char *sgi_timetrim_file; + static char sgi_timetrim_format[] = "long timetrim = %d;\n"; + #endif /* ! * This contains odds and ends. Right now the only thing you'll find * in here is the hourly stats printer and some code to support rereading * the keys file, but I may eventually put other things in here such as * code to do something with the leap bits. *************** *** 76,84 **** --- 81,132 ---- extern char *lfptoa(); extern char *mfptoa(); + #ifdef sgi + /* + * convert drift_comp into an adjustment to timetrim. + * write the stats_drift_file to be the drift equivalent + * to the adjusted timetrim value. + */ + long old_trim, timetrim; + l_fp temp_fp; + + if (0 != syssgi(SGI_GETTIMETRIM, &old_trim)) { + syslog(LOG_ERR, "Can't get timetrim value: %m"); + } + timetrim = lfptotrim( &drift_comp); + timetrim += old_trim; + if (0 != syssgi(SGI_SETTIMETRIM, timetrim)) { + syslog(LOG_ERR, "Can't do time-trim adjustment: %m"); + } + /* + * If requested, write timetrim into a timed-compatible file + */ + if (sgi_timetrim_file != 0) { + int fd; + char str[64]; + fd = open(sgi_timetrim_file, O_WRONLY|O_TRUNC|O_CREAT, 0644); + if (fd == -1) { + syslog(LOG_ERR, "can't open %s: %m", sgi_timetrim_file); + } else { + sprintf(str, sgi_timetrim_format, timetrim); + write(fd, str, strlen(str)); + close(fd); + } + } + + syslog(LOG_INFO, "hourly check: drift %s compliance %s timetrim %ld", + lfptoa(&drift_comp, 8), + mfptoa((compliance<0)?(-1):0, compliance, 8), + old_trim); + + L_CLR(&temp_fp); + trimtolfp(timetrim, &temp_fp); + L_CLR(&drift_comp); + #else syslog(LOG_INFO, "hourly check: drift %s compliance %s", lfptoa(&drift_comp, 8), mfptoa((compliance<0)?(-1):0, compliance, 8)); + #endif /* sgi */ if (stats_drift_file != 0) { fd = open(stats_temp_file, O_WRONLY|O_TRUNC|O_CREAT, 0666); *************** *** 87,101 **** return; } val = lfptoa(&drift_comp, 9); vallen = strlen(val); /* ! * Hack here. Turn the trailing \0 into a \n and write it. */ val[vallen] = '\n'; if (write(fd, val, vallen+1) == -1) { syslog(LOG_ERR, "write to %s failed: %m", ! stats_temp_file); (void) close(fd); (void) unlink(stats_temp_file); } else { --- 135,153 ---- return; } + #ifdef sgi + val = lfptoa(&temp_fp, 9); + #else val = lfptoa(&drift_comp, 9); + #endif /* sgi */ vallen = strlen(val); /* ! * Hack here. Turn the trailing \0 into a \n and write it. */ val[vallen] = '\n'; if (write(fd, val, vallen+1) == -1) { syslog(LOG_ERR, "write to %s failed: %m", ! stats_temp_file); (void) close(fd); (void) unlink(stats_temp_file); } else { *************** *** 151,163 **** if ((fp = fopen(stats_drift_file, "r")) == NULL) { if (errno != ENOENT) syslog(LOG_ERR, "can't open %s: %m", ! stats_drift_file); break; } if (fgets(buf, sizeof buf, fp) == NULL) { syslog(LOG_ERR, "can't read %s: %m", ! stats_drift_file); (void) fclose(fp); break; } --- 203,215 ---- if ((fp = fopen(stats_drift_file, "r")) == NULL) { if (errno != ENOENT) syslog(LOG_ERR, "can't open %s: %m", ! stats_drift_file); break; } if (fgets(buf, sizeof buf, fp) == NULL) { syslog(LOG_ERR, "can't read %s: %m", ! stats_drift_file); (void) fclose(fp); break; } *************** *** 165,171 **** (void) fclose(fp); /* ! * We allow leading spaces, then the number. Terminate * at any trailing space or string terminator. */ cp = buf; --- 217,223 ---- (void) fclose(fp); /* ! * We allow leading spaces, then the number. Terminate * at any trailing space or string terminator. */ cp = buf; *************** *** 181,192 **** } /* ! * Finally! Give value to the loop filter. */ #ifdef DEBUG if (debug > 1) { printf("loop_config finds old drift of %s\n", ! lfptoa(&old_drift, 9)); } #endif loop_config(LOOP_DRIFTCOMP, &old_drift); --- 233,244 ---- } /* ! * Finally! Give value to the loop filter. */ #ifdef DEBUG if (debug > 1) { printf("loop_config finds old drift of %s\n", ! lfptoa(&old_drift, 9)); } #endif loop_config(LOOP_DRIFTCOMP, &old_drift); diff -cr ../louie/xntpd/ntpd.c ./xntpd/ntpd.c *** ../louie/xntpd/ntpd.c Sat Sep 23 14:22:46 1989 --- ./xntpd/ntpd.c Wed Mar 6 08:42:32 1991 *************** *** 21,32 **** #define sigmask(m) (1<<(m)) #endif #endif /* * Mask for blocking SIGIO and SIGALRM */ #define BLOCKSIGMASK (sigmask(SIGIO)|sigmask(SIGALRM)) ! /* * Signals we catch for debugging. If not debugging we ignore them. */ --- 21,38 ---- #define sigmask(m) (1<<(m)) #endif #endif + #ifdef sgi + #include <sys/lock.h> + #endif /* * Mask for blocking SIGIO and SIGALRM */ + #ifdef SIGPOLL + #define BLOCKSIGMASK (sigmask(SIGIO)|sigmask(SIGALRM)|sigmask(SIGPOLL)) + #else #define BLOCKSIGMASK (sigmask(SIGIO)|sigmask(SIGALRM)) ! #endif /* * Signals we catch for debugging. If not debugging we ignore them. */ *************** *** 226,232 **** --- 232,251 ---- */ report_event(EVNT_SYSRESTART, (struct peer *)0); + #ifdef sgi /* + * lets lock ourself in memory to avoid (or at least minimize) + * paging-related problems. Note that because of limitations of + * the system call, that anything malloc-ed after the call may + * not be locked. + */ + if (plock(PROCLOCK)) + { + syslog(LOG_WARNING, "unable to lock process: %m"); + } + #endif + + /* * Done all the preparation stuff, now the real thing. We block * SIGIO and SIGALRM and check to see if either has occured. * If not, we pause until one or the other does. We then call *************** *** 274,279 **** --- 293,304 ---- while (rbuflist != (struct recvbuf *)0) { rbuf = rbuflist; rbuflist = rbuf->next; + #ifdef DEBUG + if (debug > 3) { + printf("main: rbuf->recv_srcclock = 0X%x\n", + rbuf->recv_srcclock); + } + #endif (rbuf->receiver)(rbuf); freerecvbuf(rbuf); } diff -cr ../louie/xntpd/refclock_conf.c ./xntpd/refclock_conf.c *** ../louie/xntpd/refclock_conf.c Wed Oct 25 18:22:13 1989 --- ./xntpd/refclock_conf.c Tue Feb 19 08:31:31 1991 *************** *** 33,43 **** #ifdef WWVB extern int wwvb_start(); ! extern void wwvb_shutdown(), wwvb_poll(), wwvb_leap(), wwvb_control(); extern void wwvb_init(), wwvb_buginfo(); #endif /* * Order is clock_start(), clock_shutdown(), clock_poll(), clock_leap(), * clock_control(), clock_init(), clock_xmitinterval, clock_flags; --- 33,49 ---- #ifdef WWVB extern int wwvb_start(); ! extern void wwvb_shutdown(), /* wwvb_poll(), */ wwvb_leap(), wwvb_control(); extern void wwvb_init(), wwvb_buginfo(); #endif + #ifdef TRUETIME + extern int truetime_start(); + extern void truetime_shutdown(), truetime_leap(), truetime_control(); + extern void truetime_init(), truetime_buginfo(); + #endif + /* * Order is clock_start(), clock_shutdown(), clock_poll(), clock_leap(), * clock_control(), clock_init(), clock_xmitinterval, clock_flags; *************** *** 68,74 **** #endif #ifdef WWVB ! { wwvb_start, wwvb_shutdown, wwvb_poll, wwvb_leap, wwvb_control, wwvb_init, wwvb_buginfo, STDPOLL, NOFLAGS }, #else { noentry, noentry, noentry, noentry, /* 4 REFCLOCK_WWVB_SPECTRACOM */ --- 74,80 ---- #endif #ifdef WWVB ! { wwvb_start, wwvb_shutdown, noentry, wwvb_leap, wwvb_control, wwvb_init, wwvb_buginfo, STDPOLL, NOFLAGS }, #else { noentry, noentry, noentry, noentry, /* 4 REFCLOCK_WWVB_SPECTRACOM */ *************** *** 75,82 **** --- 81,93 ---- noentry, noentry, noentry, NOPOLL, NOFLAGS }, #endif + #ifdef TRUETIME + { truetime_start, truetime_shutdown, noentry, truetime_leap, + truetime_control, truetime_init, truetime_buginfo, NOPOLL, NOFLAGS }, + #else { noentry, noentry, noentry, noentry, /* 5 REFCLOCK_GOES_TRUETIME */ noentry, noentry, noentry, NOPOLL, NOFLAGS }, + #endif { noentry, noentry, noentry, noentry, /* 6 REFCLOCK_GOES_TRAK */ noentry, noentry, noentry, NOPOLL, NOFLAGS }, Only in ./xntpd: refclock_truetime.c diff -cr ../louie/xntpdc/Makefile ./xntpdc/Makefile *** ../louie/xntpdc/Makefile Tue Nov 14 10:45:22 1989 --- ./xntpdc/Makefile Tue Apr 16 15:41:49 1991 *************** *** 3,11 **** # xntpdc - private mode query program for xntp # COMPILER= cc ! COPTS= -O ! BINDIR= /local/etc ! DEFS= # -DNO_SIGNED_CHAR_DECL # INCL= -I../include CFLAGS= $(COPTS) $(DEFS) $(INCL) --- 3,12 ---- # xntpdc - private mode query program for xntp # COMPILER= cc ! COPTS= -O2 -g3 -D_BSD_SIGNALS ! BINDIR= /usr/etc ! DEFS= -DCONFIG_FILE=\"/usr/etc/ntp.conf\" -DKEYFILE=\"/usr/etc/ntp.keys\" -DADJTIME_IS_ACCURATE ! SYSLIBS= -lsun # INCL= -I../include CFLAGS= $(COPTS) $(DEFS) $(INCL) *************** *** 20,29 **** all: $(PROGRAM) $(PROGRAM): $(OBJS) version.o $(LIB) ! $(CC) $(COPTS) -o $@ $(OBJS) version.o $(LIB) install: $(PROGRAM) ! install -c -m 0755 $(PROGRAM) $(BINDIR) tags: ctags *.c *.h --- 21,30 ---- all: $(PROGRAM) $(PROGRAM): $(OBJS) version.o $(LIB) ! $(CC) $(COPTS) -o $@ $(OBJS) version.o $(LIB) $(SYSLIBS) install: $(PROGRAM) ! $(INSTALL) -m 0755 -F $(BINDIR) $(PROGRAM) tags: ctags *.c *.h diff -cr ../louie/xntpres/Makefile ./xntpres/Makefile *** ../louie/xntpres/Makefile Tue Nov 14 10:45:25 1989 --- ./xntpres/Makefile Tue Apr 16 15:42:04 1991 *************** *** 3,12 **** # xntpres - name resolver support for xntpd # COMPILER= cc ! COPTS= -O ! BINDIR= /local/etc ! DEFS= # -DNO_SIGNED_CHAR_DECL ! RESLIB= # INCL= -I../include CFLAGS= $(COPTS) $(DEFS) $(INCL) --- 3,12 ---- # xntpres - name resolver support for xntpd # COMPILER= cc ! COPTS= -O2 -g3 -D_BSD_SIGNALS ! BINDIR= /usr/etc ! DEFS= -DCONFIG_FILE=\"/usr/etc/ntp.conf\" -DKEYFILE=\"/usr/etc/ntp.keys\" -DADJTIME_IS_ACCURATE ! RESLIB= -lsun # INCL= -I../include CFLAGS= $(COPTS) $(DEFS) $(INCL) *************** *** 24,30 **** $(CC) $(COPTS) -o $@ $(OBJS) version.o $(LIB) $(RESLIB) install: $(PROGRAM) ! install -c -m 0755 $(PROGRAM) $(BINDIR) tags: ctags *.c *.h --- 24,30 ---- $(CC) $(COPTS) -o $@ $(OBJS) version.o $(LIB) $(RESLIB) install: $(PROGRAM) ! $(INSTALL) -m 0755 -F $(BINDIR) $(PROGRAM) tags: ctags *.c *.h == -- Scott Henry <scotth@sgi.com> / Traveller on Dragon Wings Information Services, / Help! My disclaimer is missing! Silicon Graphics, Inc / Politicians no baka!