]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
ntp_io.c:
authorHarlan Stenn <stenn@ntp.org>
Wed, 4 Aug 1999 07:52:11 +0000 (07:52 -0000)
committerHarlan Stenn <stenn@ntp.org>
Wed, 4 Aug 1999 07:52:11 +0000 (07:52 -0000)
  * ntpd/ntp_io.c (create_sockets): Typo.
  From: Doug Wells <dmw@contek.com>
ChangeLog, NEWS, config.h.in, configure, configure.in:
  * configure.in (ac_cv_struct_ntptimeval): Explicitly look for struct ntptimeval.
  (ac_cv_var_kernel_pll): Require struct ntptimeval.
  Linux.  Grrr.
  Reported by: Ronald Kuetemeier <ronaldk@smginc.com>
Many files:
  NT and html/driver (Palisade and ???)  documentation cleanup.
  From Sven  Dietrich.  There is some other html cleanup from Dave Mills
  in there, too.

bk: 37a7f12bT1zHqcl_MDxbCviw1dihLw

12 files changed:
COPYRIGHT
ChangeLog
NEWS
config.h.in
configure
configure.in
html/copyright.htm
html/driver29.htm
html/hints/winnt
html/ntpd.htm
html/refclock.htm
ntpd/ntp_io.c

index 04f15c41a23205ec273290f3057d833995511119..0298597fd90d5f42f0e34cd1c31479865e89f296 100644 (file)
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -89,13 +89,18 @@ This file is automatically generated from html/copyright.htm
        TrueTime clock driver
    38. [41]Ulrich Windl <Ulrich.Windl@rz.uni-regensburg.de> corrected and
        validated HTML documents according to the HTML DTD
+   39. [42]Greg Brackley <greg.brackley@bigfoot.com> Major rework of
+       WINNT port. Clean up recvbuf and iosignal code into separate
+       modules.
+   40. [43]Sven Dietrich <sven_dietrich@trimble.com> Palisade reference
+       clock driver, NT adj. residuals, integrated Greg's Winnt port.
        
      _________________________________________________________________
                                       
-   [42][LINK]
+   [44][LINK]
    
    
-    [43]David L. Mills <mills@udel.edu>
+    [45]David L. Mills <mills@udel.edu>
 
 References
 
@@ -140,5 +145,7 @@ References
   39. mailto: tsuruoka@nc.fukuoka-u.ac.jp
   40. mailto: vixie@vix.com
   41. mailto: Ulrich.Windl@rz.uni-regensburg.de
-  42. file://localhost/backroom/ntp4-rsaref/html/index.htm
-  43. mailto:mills@udel.edu
+  42. mailto: greg.brackley@bigfoot.com
+  43. mailto: Sven_Dietrich@trimble.COM
+  44. file://localhost/backroom/ntp4/html/index.htm
+  45. mailto:mills@udel.edu
index 2104300576a7c2831ba8f23526685f2cf0c0b100..bdf9529473c2f5b8edec293e42f060a9ed2e80c6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,23 @@
+1999-07-31  Harlan Stenn  <stenn@whimsy.udel.edu>
+
+       * ntpd/ntp_io.c (create_sockets): Typo.
+       From: Doug Wells <dmw@contek.com>
+
+1999-07-29  Harlan Stenn  <stenn@whimsy.udel.edu>
+
+       * configure.in (ac_cv_struct_ntptimeval): Explicitly look for
+       struct ntptimeval.
+       (ac_cv_var_kernel_pll): Require struct ntptimeval.
+       Linux.  Grrr.
+       Reported by: Ronald Kuetemeier <ronaldk@smginc.com>
+
+1999-07-27  Harlan Stenn  <stenn@whimsy.udel.edu>
+
+       * configure.in: 4.0.95
+       
+       * ports/winnt: New release
+       From: Sven Dietrich <Sven_Dietrich@trimble.com> 
+
 1999-07-26  Harlan Stenn  <stenn@whimsy.udel.edu>
 
        * libntp/machines.c (ntp_set_tod): Bugfix
diff --git a/NEWS b/NEWS
index b73e6c74778af7ed0480c33d6ea76540d613f156..df73dede77bc3c01e8fe7760141e53bd8f19cff8 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
-* NT port cleanup
+(4.0.95)
+* NT port cleanup/replacement
+* a few portability fixes
 * VARITEXT Parse clock added
 (4.0.94)
 * PPS updates (including ntp.config options)
index 6db4f5564a5c09b3497c4d1ef761e7694c864b7f..ec282b6d7338cd10a36908aabd32a63e9f5beee3 100644 (file)
 /* Define if compiler has function prototypes */
 #undef PROTOTYPES
 
+/* Do we have struct ntptimeval? */
+#undef HAVE_STRUCT_NTPTIMEVAL
+
 /* Does ntptimeval use struct timespec? */
 #undef TIMESPEC_IN_NTPTIMEVAL
 
index fc09576c6af576741d3d83800252c272492c2351..46b84cd2cf858159295ca72b0a099d2773753b5a 100755 (executable)
--- a/configure
+++ b/configure
@@ -966,7 +966,7 @@ fi
 
 PACKAGE=ntp
 
-VERSION=4.0.94b
+VERSION=4.0.95
 
 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
   { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
@@ -4145,13 +4145,48 @@ EOF
 
 fi
 
+echo $ac_n "checking for struct ntptimeval""... $ac_c" 1>&6
+echo "configure:4150: checking for struct ntptimeval" >&5
+if eval "test \"\${ac_cv_struct_ntptimeval+set}\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4155 "configure"
+#include "confdefs.h"
+
+#include <sys/time.h>
+#include <sys/timex.h>
+int main() {
+struct ntptimeval n;
+; return 0; }
+EOF
+if { (eval echo configure:4164: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_struct_ntptimeval=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_struct_ntptimeval=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_struct_ntptimeval" 1>&6
+if test $ac_cv_struct_ntptimeval = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_STRUCT_NTPTIMEVAL 1
+EOF
+
+fi
+
 echo $ac_n "checking struct ntptimeval for time.tv_nsec""... $ac_c" 1>&6
-echo "configure:4150: checking struct ntptimeval for time.tv_nsec" >&5
+echo "configure:4185: checking struct ntptimeval for time.tv_nsec" >&5
 if eval "test \"\${ac_cv_struct_ntptimeval_tv_nsec+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4155 "configure"
+#line 4190 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_SYS_TIME_H
@@ -4174,7 +4209,7 @@ extern struct ntptimeval *ntv;
 return ntv->time.tv_nsec;
 ; return 0; }
 EOF
-if { (eval echo configure:4178: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4213: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_struct_ntptimeval_tv_nsec=yes
 else
@@ -4195,22 +4230,56 @@ EOF
 
 fi
 
+echo $ac_n "checking for struct timespec in struct ntptimeval""... $ac_c" 1>&6
+echo "configure:4235: checking for struct timespec in struct ntptimeval" >&5
+if eval "test \"\${ac_cv_struct_ntptimeval_timespec+set}\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4240 "configure"
+#include "confdefs.h"
+#include <sys/time.h>
+#include <sys/timex.h>
+int main() {
+struct ntptimeval n; n.time.tv_nsec = 0;
+; return 0; }
+EOF
+if { (eval echo configure:4248: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_struct_ntptimeval_timespec=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_struct_ntptimeval_timespec=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_struct_ntptimeval_timespec" 1>&6
+if test $ac_cv_struct_ntptimeval_timespec = yes; then
+  cat >> confdefs.h <<\EOF
+#define TIMESPEC_IN_NTPTIMEVAL 1
+EOF
+
+fi
+
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:4200: checking for inline" >&5
+echo "configure:4269: checking for inline" >&5
 if eval "test \"\${ac_cv_c_inline+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 4207 "configure"
+#line 4276 "configure"
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:4214: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4283: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -4236,14 +4305,14 @@ EOF
 esac
 
 echo $ac_n "checking whether char is unsigned""... $ac_c" 1>&6
-echo "configure:4240: checking whether char is unsigned" >&5
+echo "configure:4309: checking whether char is unsigned" >&5
 if eval "test \"\${ac_cv_c_char_unsigned+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test "$GCC" = yes; then
   # GCC predefines this symbol on systems where it applies.
 cat > conftest.$ac_ext <<EOF
-#line 4247 "configure"
+#line 4316 "configure"
 #include "confdefs.h"
 #ifdef __CHAR_UNSIGNED__
   yes
@@ -4265,7 +4334,7 @@ if test "$cross_compiling" = yes; then
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4269 "configure"
+#line 4338 "configure"
 #include "confdefs.h"
 /* volatile prevents gcc2 from optimizing the test away on sparcs.  */
 #if !defined(__STDC__) || __STDC__ != 1
@@ -4275,7 +4344,7 @@ main() {
   volatile char c = 255; exit(c < 0);
 }
 EOF
-if { (eval echo configure:4279: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4348: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_char_unsigned=yes
 else
@@ -4300,7 +4369,7 @@ fi
                case "$host" in
  $target)
     echo $ac_n "checking size of signed char""... $ac_c" 1>&6
-echo "configure:4304: checking size of signed char" >&5
+echo "configure:4373: checking size of signed char" >&5
 if eval "test \"\${ac_cv_sizeof_signed_char+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4308,7 +4377,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4312 "configure"
+#line 4381 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4319,7 +4388,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4323: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4392: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_signed_char=`cat conftestval`
 else
@@ -4342,7 +4411,7 @@ EOF
  *) case "$target" in
      *-*-vxworks*)
        echo $ac_n "checking size of signed char""... $ac_c" 1>&6
-echo "configure:4346: checking size of signed char" >&5
+echo "configure:4415: checking size of signed char" >&5
 if eval "test \"\${ac_cv_sizeof_signed_char+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4350,7 +4419,7 @@ else
   ac_cv_sizeof_signed_char=1
 else
   cat > conftest.$ac_ext <<EOF
-#line 4354 "configure"
+#line 4423 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4361,7 +4430,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4365: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4434: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_signed_char=`cat conftestval`
 else
@@ -4390,7 +4459,7 @@ esac
 case "$host" in
  $target)
     echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:4394: checking size of int" >&5
+echo "configure:4463: checking size of int" >&5
 if eval "test \"\${ac_cv_sizeof_int+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4398,7 +4467,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4402 "configure"
+#line 4471 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4409,7 +4478,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4482: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_int=`cat conftestval`
 else
@@ -4432,7 +4501,7 @@ EOF
  *) case "$target" in
      *-*-vxworks*)
        echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:4436: checking size of int" >&5
+echo "configure:4505: checking size of int" >&5
 if eval "test \"\${ac_cv_sizeof_int+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4440,7 +4509,7 @@ else
   ac_cv_sizeof_int=4
 else
   cat > conftest.$ac_ext <<EOF
-#line 4444 "configure"
+#line 4513 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4451,7 +4520,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4455: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4524: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_int=`cat conftestval`
 else
@@ -4480,7 +4549,7 @@ esac
 case "$host" in
  $target)
     echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:4484: checking size of long" >&5
+echo "configure:4553: checking size of long" >&5
 if eval "test \"\${ac_cv_sizeof_long+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4488,7 +4557,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4492 "configure"
+#line 4561 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4499,7 +4568,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4503: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4572: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_long=`cat conftestval`
 else
@@ -4522,7 +4591,7 @@ EOF
  *) case "$target" in
      *-*-vxworks*)
        echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:4526: checking size of long" >&5
+echo "configure:4595: checking size of long" >&5
 if eval "test \"\${ac_cv_sizeof_long+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4530,7 +4599,7 @@ else
   ac_cv_sizeof_long=4
 else
   cat > conftest.$ac_ext <<EOF
-#line 4534 "configure"
+#line 4603 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4541,7 +4610,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4545: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_long=`cat conftestval`
 else
@@ -4568,12 +4637,12 @@ EOF
 esac
 
 echo $ac_n "checking for s_char""... $ac_c" 1>&6
-echo "configure:4572: checking for s_char" >&5
+echo "configure:4641: checking for s_char" >&5
 if eval "test \"\${ac_cv_type_s_char+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4577 "configure"
+#line 4646 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -4633,12 +4702,12 @@ EOF
     ;;
 esac
 echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:4637: checking for uid_t in sys/types.h" >&5
+echo "configure:4706: checking for uid_t in sys/types.h" >&5
 if eval "test \"\${ac_cv_type_uid_t+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4642 "configure"
+#line 4711 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 EOF
@@ -4672,12 +4741,12 @@ case "$target" in
     for ac_func in __adjtimex __ntp_gettime
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4676: checking for $ac_func" >&5
+echo "configure:4745: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4681 "configure"
+#line 4750 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4701,7 +4770,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:4705: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4774: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -4738,12 +4807,12 @@ case "$target" in
  *) for ac_func in clock_settime
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4742: checking for $ac_func" >&5
+echo "configure:4811: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4747 "configure"
+#line 4816 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4767,7 +4836,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:4771: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4840: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -4796,12 +4865,12 @@ esac
 for ac_func in daemon getbootfile getdtablesize getrusage
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4800: checking for $ac_func" >&5
+echo "configure:4869: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4805 "configure"
+#line 4874 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4825,7 +4894,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:4829: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4898: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -4852,12 +4921,12 @@ done
 for ac_func in gettimeofday
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4856: checking for $ac_func" >&5
+echo "configure:4925: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4861 "configure"
+#line 4930 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4881,7 +4950,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:4885: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4954: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -4911,12 +4980,12 @@ case "$target" in
  *) for ac_func in getuid
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4915: checking for $ac_func" >&5
+echo "configure:4984: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4920 "configure"
+#line 4989 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4940,7 +5009,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:4944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -4969,12 +5038,12 @@ esac
 for ac_func in K_open kvm_open memcpy memmove memset
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4973: checking for $ac_func" >&5
+echo "configure:5042: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4978 "configure"
+#line 5047 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4998,7 +5067,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:5002: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5071: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5029,12 +5098,12 @@ case "$target" in
  *) for ac_func in mkstemp
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5033: checking for $ac_func" >&5
+echo "configure:5102: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5038 "configure"
+#line 5107 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5058,7 +5127,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:5062: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5131: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5087,12 +5156,12 @@ esac
 for ac_func in mktime
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5091: checking for $ac_func" >&5
+echo "configure:5160: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5096 "configure"
+#line 5165 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5116,7 +5185,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:5120: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5189: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5155,12 +5224,12 @@ case "$target" in
  *) for ac_func in mlockall
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5159: checking for $ac_func" >&5
+echo "configure:5228: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5164 "configure"
+#line 5233 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5184,7 +5253,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:5188: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5257: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5213,12 +5282,12 @@ esac
 for ac_func in nice nlist
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5217: checking for $ac_func" >&5
+echo "configure:5286: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5222 "configure"
+#line 5291 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5242,7 +5311,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:5246: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5273,12 +5342,12 @@ case "$target" in
  *) for ac_func in ntp_adjtime ntp_gettime
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5277: checking for $ac_func" >&5
+echo "configure:5346: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5282 "configure"
+#line 5351 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5302,7 +5371,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:5306: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5375: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5331,12 +5400,12 @@ esac
 for ac_func in plock pututline pututxline rtprio
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5335: checking for $ac_func" >&5
+echo "configure:5404: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5340 "configure"
+#line 5409 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5360,7 +5429,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:5364: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5387,12 +5456,12 @@ done
 for ac_func in random srandom mrand48 srand48
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5391: checking for $ac_func" >&5
+echo "configure:5460: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5396 "configure"
+#line 5465 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5416,7 +5485,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:5420: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5450,12 +5519,12 @@ case "$target" in
  *) for ac_func in sched_setscheduler
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5454: checking for $ac_func" >&5
+echo "configure:5523: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5459 "configure"
+#line 5528 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5479,7 +5548,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:5483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5508,12 +5577,12 @@ esac
 for ac_func in setlinebuf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5512: checking for $ac_func" >&5
+echo "configure:5581: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5517 "configure"
+#line 5586 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5537,7 +5606,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:5541: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5564,12 +5633,12 @@ done
 for ac_func in setpgid setpriority setsid settimeofday setvbuf sigaction
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5568: checking for $ac_func" >&5
+echo "configure:5637: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5573 "configure"
+#line 5642 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5593,7 +5662,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:5597: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5666: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5620,12 +5689,12 @@ done
 for ac_func in sigvec sigset sigsuspend stime strchr sysconf sysctl
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5624: checking for $ac_func" >&5
+echo "configure:5693: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5629 "configure"
+#line 5698 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5649,7 +5718,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:5653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5722: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5676,12 +5745,12 @@ done
 for ac_func in strerror
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5680: checking for $ac_func" >&5
+echo "configure:5749: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5685 "configure"
+#line 5754 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5705,7 +5774,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:5709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5744,12 +5813,12 @@ case "$target" in
  *) for ac_func in timer_create timer_settime
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5748: checking for $ac_func" >&5
+echo "configure:5817: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5753 "configure"
+#line 5822 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5773,7 +5842,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:5777: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5846: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5806,12 +5875,12 @@ case "$target" in
  *) for ac_func in umask
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5810: checking for $ac_func" >&5
+echo "configure:5879: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5815 "configure"
+#line 5884 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5835,7 +5904,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:5839: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5908: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5864,12 +5933,12 @@ esac
 for ac_func in uname updwtmp updwtmpx vsprintf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5868: checking for $ac_func" >&5
+echo "configure:5937: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5873 "configure"
+#line 5942 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5893,7 +5962,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:5897: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5966: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5919,12 +5988,12 @@ done
 
 
 echo $ac_n "checking number of arguments to gettimeofday()""... $ac_c" 1>&6
-echo "configure:5923: checking number of arguments to gettimeofday()" >&5
+echo "configure:5992: checking number of arguments to gettimeofday()" >&5
 if eval "test \"\${ac_cv_func_Xettimeofday_nargs+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5928 "configure"
+#line 5997 "configure"
 #include "confdefs.h"
 #include <sys/time.h>
 int main() {
@@ -5934,7 +6003,7 @@ settimeofday((struct timeval*)0,(struct timezone*)0);
 
 ; return 0; }
 EOF
-if { (eval echo configure:5938: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6007: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_func_Xettimeofday_nargs=2
 else
@@ -5956,12 +6025,12 @@ EOF
 fi
 
 echo $ac_n "checking number of arguments taken by setpgrp()""... $ac_c" 1>&6
-echo "configure:5960: checking number of arguments taken by setpgrp()" >&5
+echo "configure:6029: checking number of arguments taken by setpgrp()" >&5
 if eval "test \"\${ac_cv_func_setpgrp_nargs+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5965 "configure"
+#line 6034 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_SYS_TYPES_H
@@ -5975,7 +6044,7 @@ int main() {
 setpgrp(0,0);
 ; return 0; }
 EOF
-if { (eval echo configure:5979: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6048: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_func_setpgrp_nargs=2
 else
@@ -6000,12 +6069,12 @@ save_CFLAGS=$CFLAGS
 CFLAGS="$CFLAGS -I$srcdir/include"
 
 echo $ac_n "checking argument pointer type of qsort()'s compare function and base""... $ac_c" 1>&6
-echo "configure:6004: checking argument pointer type of qsort()'s compare function and base" >&5
+echo "configure:6073: checking argument pointer type of qsort()'s compare function and base" >&5
 if eval "test \"\${ac_cv_func_qsort_argtype+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6009 "configure"
+#line 6078 "configure"
 #include "confdefs.h"
 
 #include "l_stdlib.h"
@@ -6028,7 +6097,7 @@ qsort(base, 2, sizeof(char *), sortfunc);
 
 ; return 0; }
 EOF
-if { (eval echo configure:6032: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6101: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_func_qsort_argtype=void
 else
@@ -6054,12 +6123,12 @@ esac
 CFLAGS=$save_CFLAGS
 
 echo $ac_n "checking if we need to declare 'errno'""... $ac_c" 1>&6
-echo "configure:6058: checking if we need to declare 'errno'" >&5
+echo "configure:6127: checking if we need to declare 'errno'" >&5
 if eval "test \"\${ac_cv_decl_errno+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6063 "configure"
+#line 6132 "configure"
 #include "confdefs.h"
 #ifdef HAVE_ERRNO_H
 #include <errno.h>
@@ -6068,7 +6137,7 @@ int main() {
 errno = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:6072: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6141: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_decl_errno=no
 else
@@ -6089,12 +6158,12 @@ EOF
 esac
 
 echo $ac_n "checking if we may declare 'h_errno'""... $ac_c" 1>&6
-echo "configure:6093: checking if we may declare 'h_errno'" >&5
+echo "configure:6162: checking if we may declare 'h_errno'" >&5
 if eval "test \"\${ac_cv_decl_h_errno+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6098 "configure"
+#line 6167 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #ifdef HAVE_NETINET_IN_H
@@ -6110,7 +6179,7 @@ int main() {
 extern int h_errno;
 ; return 0; }
 EOF
-if { (eval echo configure:6114: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6183: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_decl_h_errno=yes
 else
@@ -6131,12 +6200,12 @@ EOF
 esac
 
 echo $ac_n "checking if declaring 'char *sys_errlist' is ok""... $ac_c" 1>&6
-echo "configure:6135: checking if declaring 'char *sys_errlist' is ok" >&5
+echo "configure:6204: checking if declaring 'char *sys_errlist' is ok" >&5
 if eval "test \"\${ac_cv_decl_sys_errlist+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6140 "configure"
+#line 6209 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #ifdef HAVE_ERRNO_H
@@ -6147,7 +6216,7 @@ int main() {
   
 ; return 0; }
 EOF
-if { (eval echo configure:6151: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6220: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_decl_sys_errlist=yes
 else
@@ -6168,12 +6237,12 @@ EOF
 esac
 
 echo $ac_n "checking if declaring 'syscall()' is ok""... $ac_c" 1>&6
-echo "configure:6172: checking if declaring 'syscall()' is ok" >&5
+echo "configure:6241: checking if declaring 'syscall()' is ok" >&5
 if eval "test \"\${ac_cv_decl_syscall+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6177 "configure"
+#line 6246 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_SYS_TYPES_H
@@ -6192,7 +6261,7 @@ int main() {
 extern int syscall P((int, ...));
 ; return 0; }
 EOF
-if { (eval echo configure:6196: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6265: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_decl_syscall=yes
 else
@@ -6459,7 +6528,7 @@ EOF
 esac
 
 echo $ac_n "checking if we should use a streams device for ifconfig""... $ac_c" 1>&6
-echo "configure:6463: checking if we should use a streams device for ifconfig" >&5
+echo "configure:6532: checking if we should use a streams device for ifconfig" >&5
 if eval "test \"\${ac_cv_var_use_streams_device_for_ifconfig+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6469,7 +6538,7 @@ fi
 echo "$ac_t""$ac_cv_var_use_streams_device_for_ifconfig" 1>&6
 
 echo $ac_n "checking if we need extra room for SO_RCVBUF""... $ac_c" 1>&6
-echo "configure:6473: checking if we need extra room for SO_RCVBUF" >&5
+echo "configure:6542: checking if we need extra room for SO_RCVBUF" >&5
 if eval "test \"\${ac_cv_var_rcvbuf_slop+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6491,7 +6560,7 @@ EOF
 esac
 
 echo $ac_n "checking if we will open the broadcast socket""... $ac_c" 1>&6
-echo "configure:6495: checking if we will open the broadcast socket" >&5
+echo "configure:6564: checking if we will open the broadcast socket" >&5
 if eval "test \"\${ac_cv_var_open_bcast_socket+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6516,7 +6585,7 @@ EOF
 esac
 
 echo $ac_n "checking if we want the HPUX version of FindConfig()""... $ac_c" 1>&6
-echo "configure:6520: checking if we want the HPUX version of FindConfig()" >&5
+echo "configure:6589: checking if we want the HPUX version of FindConfig()" >&5
 if eval "test \"\${ac_cv_var_hpux_findconfig+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6538,7 +6607,7 @@ EOF
 esac
 
 echo $ac_n "checking if process groups are set with -pid""... $ac_c" 1>&6
-echo "configure:6542: checking if process groups are set with -pid" >&5
+echo "configure:6611: checking if process groups are set with -pid" >&5
 if eval "test \"\${ac_cv_arg_setpgrp_negpid+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6574,7 +6643,7 @@ EOF
 esac
 
 echo $ac_n "checking if we need a ctty for F_SETOWN""... $ac_c" 1>&6
-echo "configure:6578: checking if we need a ctty for F_SETOWN" >&5
+echo "configure:6647: checking if we need a ctty for F_SETOWN" >&5
 if eval "test \"\${ac_cv_func_ctty_for_f_setown+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6604,7 +6673,7 @@ esac
 
 ntp_warning='GRONK'
 echo $ac_n "checking if we'll use clock_settime or settimeofday or stime""... $ac_c" 1>&6
-echo "configure:6608: checking if we'll use clock_settime or settimeofday or stime" >&5
+echo "configure:6677: checking if we'll use clock_settime or settimeofday or stime" >&5
 case "$ac_cv_func_clock_settime$ac_cv_func_settimeofday$ac_cv_func_stime" in
  yes*)
     ntp_warning=''
@@ -6633,7 +6702,7 @@ case "$ntp_warning" in
 esac
 
 echo $ac_n "checking if we have a losing syscall()""... $ac_c" 1>&6
-echo "configure:6637: checking if we have a losing syscall()" >&5
+echo "configure:6706: checking if we have a losing syscall()" >&5
 if eval "test \"\${ac_cv_var_syscall_bug+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6656,7 +6725,7 @@ EOF
 esac
 
 echo $ac_n "checking for Streams/TLI""... $ac_c" 1>&6
-echo "configure:6660: checking for Streams/TLI" >&5
+echo "configure:6729: checking for Streams/TLI" >&5
 if eval "test \"\${ac_cv_var_streams_tli+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6685,12 +6754,12 @@ EOF
 esac
 
 echo $ac_n "checking for SIGIO""... $ac_c" 1>&6
-echo "configure:6689: checking for SIGIO" >&5
+echo "configure:6758: checking for SIGIO" >&5
 if eval "test \"\${ac_cv_hdr_def_sigio+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6694 "configure"
+#line 6763 "configure"
 #include "confdefs.h"
 #include <signal.h>
 #ifdef SIGIO
@@ -6713,7 +6782,7 @@ fi
 echo "$ac_t""$ac_cv_hdr_def_sigio" 1>&6
 
 echo $ac_n "checking if we want to use signalled IO""... $ac_c" 1>&6
-echo "configure:6717: checking if we want to use signalled IO" >&5
+echo "configure:6786: checking if we want to use signalled IO" >&5
 if eval "test \"\${ac_cv_var_signalled_io+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6764,12 +6833,12 @@ EOF
 esac
 
 echo $ac_n "checking for SIGPOLL""... $ac_c" 1>&6
-echo "configure:6768: checking for SIGPOLL" >&5
+echo "configure:6837: checking for SIGPOLL" >&5
 if eval "test \"\${ac_cv_hdr_def_sigpoll+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6773 "configure"
+#line 6842 "configure"
 #include "confdefs.h"
 #include <signal.h>
 #ifdef SIGPOLL
@@ -6792,12 +6861,12 @@ fi
 echo "$ac_t""$ac_cv_hdr_def_sigpoll" 1>&6
 
 echo $ac_n "checking for SIGSYS""... $ac_c" 1>&6
-echo "configure:6796: checking for SIGSYS" >&5
+echo "configure:6865: checking for SIGSYS" >&5
 if eval "test \"\${ac_cv_hdr_def_sigsys+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6801 "configure"
+#line 6870 "configure"
 #include "confdefs.h"
 #include <signal.h>
 #ifdef SIGSYS
@@ -6820,7 +6889,7 @@ fi
 echo "$ac_t""$ac_cv_hdr_def_sigsys" 1>&6
 
 echo $ac_n "checking if we can use SIGPOLL for UDP I/O""... $ac_c" 1>&6
-echo "configure:6824: checking if we can use SIGPOLL for UDP I/O" >&5
+echo "configure:6893: checking if we can use SIGPOLL for UDP I/O" >&5
 if eval "test \"\${ac_cv_var_use_udp_sigpoll+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6875,7 +6944,7 @@ EOF
 esac
 
 echo $ac_n "checking if we can use SIGPOLL for TTY I/O""... $ac_c" 1>&6
-echo "configure:6879: checking if we can use SIGPOLL for TTY I/O" >&5
+echo "configure:6948: checking if we can use SIGPOLL for TTY I/O" >&5
 if eval "test \"\${ac_cv_var_use_tty_sigpoll+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6930,7 +6999,7 @@ EOF
 esac
 
 echo $ac_n "checking if nlist() values might require extra indirection""... $ac_c" 1>&6
-echo "configure:6934: checking if nlist() values might require extra indirection" >&5
+echo "configure:7003: checking if nlist() values might require extra indirection" >&5
 if eval "test \"\${ac_cv_var_nlist_extra_indirection+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6952,7 +7021,7 @@ EOF
 esac
 
 echo $ac_n "checking for a minimum recommended value of tickadj""... $ac_c" 1>&6
-echo "configure:6956: checking for a minimum recommended value of tickadj" >&5
+echo "configure:7025: checking for a minimum recommended value of tickadj" >&5
 if eval "test \"\${ac_cv_var_min_rec_tickadj+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6975,7 +7044,7 @@ EOF
 esac
 
 echo $ac_n "checking if the TTY code permits PARENB and IGNPAR""... $ac_c" 1>&6
-echo "configure:6979: checking if the TTY code permits PARENB and IGNPAR" >&5
+echo "configure:7048: checking if the TTY code permits PARENB and IGNPAR" >&5
 if eval "test \"\${ac_cv_var_no_parenb_ignpar+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7000,7 +7069,7 @@ EOF
 esac
 
 echo $ac_n "checking if we're including debugging code""... $ac_c" 1>&6
-echo "configure:7004: checking if we're including debugging code" >&5
+echo "configure:7073: checking if we're including debugging code" >&5
 # Check whether --enable-debugging or --disable-debugging was given.
 if test "${enable_debugging+set}" = set; then
   enableval="$enable_debugging"
@@ -7018,7 +7087,7 @@ fi
 echo "$ac_t""$ntp_ok" 1>&6
 
 echo $ac_n "checking for a the number of minutes in a DST adjustment""... $ac_c" 1>&6
-echo "configure:7022: checking for a the number of minutes in a DST adjustment" >&5
+echo "configure:7091: checking for a the number of minutes in a DST adjustment" >&5
 # Check whether --enable-dst_minutes or --disable-dst_minutes was given.
 if test "${enable_dst_minutes+set}" = set; then
   enableval="$enable_dst_minutes"
@@ -7034,7 +7103,7 @@ EOF
 echo "$ac_t""$ans" 1>&6
 
 echo $ac_n "checking if we have the tty_clk line discipline/streams module""... $ac_c" 1>&6
-echo "configure:7038: checking if we have the tty_clk line discipline/streams module" >&5
+echo "configure:7107: checking if we have the tty_clk line discipline/streams module" >&5
 if eval "test \"\${ac_cv_var_tty_clk+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7050,7 +7119,7 @@ EOF
 esac
 
 echo $ac_n "checking for the ppsclock streams module""... $ac_c" 1>&6
-echo "configure:7054: checking for the ppsclock streams module" >&5
+echo "configure:7123: checking for the ppsclock streams module" >&5
 if eval "test \"\${ac_cv_var_ppsclock+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7066,7 +7135,7 @@ EOF
 esac
 
 echo $ac_n "checking for kernel multicast support""... $ac_c" 1>&6
-echo "configure:7070: checking for kernel multicast support" >&5
+echo "configure:7139: checking for kernel multicast support" >&5
 if eval "test \"\${ac_cv_var_mcast+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7074,7 +7143,7 @@ else
   case "$target" in
    i386-sequent-sysv4) ;;
    *) cat > conftest.$ac_ext <<EOF
-#line 7078 "configure"
+#line 7147 "configure"
 #include "confdefs.h"
 #include <netinet/in.h>
 #ifdef IP_ADD_MEMBERSHIP
@@ -7101,7 +7170,7 @@ EOF
 esac
 
 echo $ac_n "checking availability of ntp_{adj,get}time()""... $ac_c" 1>&6
-echo "configure:7105: checking availability of ntp_{adj,get}time()" >&5
+echo "configure:7174: checking availability of ntp_{adj,get}time()" >&5
 if eval "test \"\${ac_cv_var_ntp_syscalls+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7115,7 +7184,7 @@ else
         ac_cv_var_ntp_syscalls=libc
         ;;
       *) cat > conftest.$ac_ext <<EOF
-#line 7119 "configure"
+#line 7188 "configure"
 #include "confdefs.h"
 #include <sys/syscall.h>
 #if defined(SYS_ntp_gettime) && defined(SYS_ntp_adjtime)
@@ -7155,12 +7224,12 @@ EOF
 esac
 
 echo $ac_n "checking if sys/timex.h has STA_FLL""... $ac_c" 1>&6
-echo "configure:7159: checking if sys/timex.h has STA_FLL" >&5
+echo "configure:7228: checking if sys/timex.h has STA_FLL" >&5
 if eval "test \"\${ac_cv_var_sta_fll+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7164 "configure"
+#line 7233 "configure"
 #include "confdefs.h"
 #include <sys/timex.h>
 #ifdef STA_FLL
@@ -7182,46 +7251,12 @@ fi
 
 echo "$ac_t""$ac_cv_var_sta_fll" 1>&6
 
-echo $ac_n "checking for struct timespec in struct ntptimeval""... $ac_c" 1>&6
-echo "configure:7187: checking for struct timespec in struct ntptimeval" >&5
-if eval "test \"\${ac_cv_struct_ntptimeval_timespec+set}\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 7192 "configure"
-#include "confdefs.h"
-#include <sys/time.h>
-#include <sys/timex.h>
-int main() {
-struct ntptimeval n; n.time.tv_nsec = 0;
-; return 0; }
-EOF
-if { (eval echo configure:7200: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  ac_cv_struct_ntptimeval_timespec=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_struct_ntptimeval_timespec=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_struct_ntptimeval_timespec" 1>&6
-if test $ac_cv_struct_ntptimeval_timespec = yes; then
-  cat >> confdefs.h <<\EOF
-#define TIMESPEC_IN_NTPTIMEVAL 1
-EOF
-
-fi
-
 echo $ac_n "checking if we have kernel PLL support""... $ac_c" 1>&6
-echo "configure:7221: checking if we have kernel PLL support" >&5
+echo "configure:7256: checking if we have kernel PLL support" >&5
 if eval "test \"\${ac_cv_var_kernel_pll+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  case "$ac_cv_header_sys_timex_h$ac_cv_var_sta_fll$ac_cv_var_ntp_syscalls" in
+  case "$ac_cv_header_sys_timex_h$ac_cv_struct_ntptimeval$ac_cv_var_sta_fll$ac_cv_var_ntp_syscalls" in
  *no*)
     ac_cv_var_kernel_pll=no
     ;;
@@ -7241,7 +7276,7 @@ EOF
 esac
 
 echo $ac_n "checking if SIOCGIFCONF returns buffer size in the buffer""... $ac_c" 1>&6
-echo "configure:7245: checking if SIOCGIFCONF returns buffer size in the buffer" >&5
+echo "configure:7280: checking if SIOCGIFCONF returns buffer size in the buffer" >&5
 if eval "test \"\${ac_cv_var_size_returned_in_buffer+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7270,7 +7305,7 @@ esac
 
 
 echo $ac_n "checking if we want to use MD5 authentication""... $ac_c" 1>&6
-echo "configure:7274: checking if we want to use MD5 authentication" >&5
+echo "configure:7309: checking if we want to use MD5 authentication" >&5
 if eval "test \"\${ac_cv_var_use_md5+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7295,10 +7330,10 @@ esac
 
 # Check for ioctls TIOCGPPSEV
 echo $ac_n "checking ioctl TIOCGPPSEV""... $ac_c" 1>&6
-echo "configure:7299: checking ioctl TIOCGPPSEV" >&5
+echo "configure:7334: checking ioctl TIOCGPPSEV" >&5
 if test "$ac_cv_header_termios_h" = "yes"; then
     cat > conftest.$ac_ext <<EOF
-#line 7302 "configure"
+#line 7337 "configure"
 #include "confdefs.h"
 #include <termios.h>
 #ifdef TIOCGPPSEV
@@ -7331,10 +7366,10 @@ echo "$ac_t""$ntp_ok" 1>&6
 
 # Check for ioctls TIOCSPPS
 echo $ac_n "checking ioctl TIOCSPPS""... $ac_c" 1>&6
-echo "configure:7335: checking ioctl TIOCSPPS" >&5
+echo "configure:7370: checking ioctl TIOCSPPS" >&5
 if test "$ac_cv_header_termios_h" = "yes"; then
     cat > conftest.$ac_ext <<EOF
-#line 7338 "configure"
+#line 7373 "configure"
 #include "confdefs.h"
 #include <termios.h>
 #ifdef TIOCSPPS
@@ -7366,10 +7401,10 @@ echo "$ac_t""$ntp_ok" 1>&6
 
 # Check for ioctls CIOGETEV
 echo $ac_n "checking ioctl CIOGETEV""... $ac_c" 1>&6
-echo "configure:7370: checking ioctl CIOGETEV" >&5
+echo "configure:7405: checking ioctl CIOGETEV" >&5
 if test "$ac_cv_header_sys_ppsclock_h" = "yes"; then
     cat > conftest.$ac_ext <<EOF
-#line 7373 "configure"
+#line 7408 "configure"
 #include "confdefs.h"
 #include <sys/ppsclock.h>
 #ifdef CIOGETEV
@@ -7426,17 +7461,17 @@ esac
 # Check for ioctls TIOCGSERIAL, TIOCSSERIAL, ASYNC_PPS_CD_POS, ASYNC_PPS_CD_NEG
 ac_safe=`echo "linux/serial.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for linux/serial.h""... $ac_c" 1>&6
-echo "configure:7430: checking for linux/serial.h" >&5
+echo "configure:7465: checking for linux/serial.h" >&5
 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7435 "configure"
+#line 7470 "configure"
 #include "confdefs.h"
 #include <linux/serial.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7440: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7475: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7458,11 +7493,11 @@ else
 fi
 
 echo $ac_n "checking ioctl TIOCGSERIAL""... $ac_c" 1>&6
-echo "configure:7462: checking ioctl TIOCGSERIAL" >&5
+echo "configure:7497: checking ioctl TIOCGSERIAL" >&5
 case "$ac_cv_header_sys_ppsclock_h$ac_cv_header_linux_serial_h" in
   yesyes)
     cat > conftest.$ac_ext <<EOF
-#line 7466 "configure"
+#line 7501 "configure"
 #include "confdefs.h"
 #include <sys/time.h>
 typedef int u_int;
@@ -7509,7 +7544,7 @@ ntp_refclock=no
 
 # HPUX only, and by explicit request
 echo $ac_n "checking Datum/Bancomm bc635/VME interface""... $ac_c" 1>&6
-echo "configure:7513: checking Datum/Bancomm bc635/VME interface" >&5
+echo "configure:7548: checking Datum/Bancomm bc635/VME interface" >&5
 # Check whether --enable-BANCOMM or --disable-BANCOMM was given.
 if test "${enable_BANCOMM+set}" = set; then
   enableval="$enable_BANCOMM"
@@ -7533,7 +7568,7 @@ esac
 
 #HPUX only, and only by explicit request
 echo $ac_n "checking TrueTime GPS receiver/VME interface""... $ac_c" 1>&6
-echo "configure:7537: checking TrueTime GPS receiver/VME interface" >&5
+echo "configure:7572: checking TrueTime GPS receiver/VME interface" >&5
 # Check whether --enable-GPSVME or --disable-GPSVME was given.
 if test "${enable_GPSVME+set}" = set; then
   enableval="$enable_GPSVME"
@@ -7556,7 +7591,7 @@ case "$ntp_ok$target" in
 esac
 
 echo $ac_n "checking for PCL720 clock support""... $ac_c" 1>&6
-echo "configure:7560: checking for PCL720 clock support" >&5
+echo "configure:7595: checking for PCL720 clock support" >&5
 case "$ac_cv_header_machine_inline_h$ac_cv_header_sys_pcl720_h$ac_cv_header_sys_i8253_h" in
  yesyesyes)
     cat >> confdefs.h <<\EOF
@@ -7572,7 +7607,7 @@ esac
 echo "$ac_t""$ans" 1>&6
 
 echo $ac_n "checking for SHM clock attached thru shared memory""... $ac_c" 1>&6
-echo "configure:7576: checking for SHM clock attached thru shared memory" >&5
+echo "configure:7611: checking for SHM clock attached thru shared memory" >&5
 # Check whether --enable-SHM or --disable-SHM was given.
 if test "${enable_SHM+set}" = set; then
   enableval="$enable_SHM"
@@ -7591,7 +7626,7 @@ fi
 echo "$ac_t""$ntp_ok" 1>&6
 
 echo $ac_n "checking for ONCORE Motorola VP/UT Oncore GPS""... $ac_c" 1>&6
-echo "configure:7595: checking for ONCORE Motorola VP/UT Oncore GPS" >&5
+echo "configure:7630: checking for ONCORE Motorola VP/UT Oncore GPS" >&5
 # Check whether --enable-ONCORE or --disable-ONCORE was given.
 if test "${enable_ONCORE+set}" = set; then
   enableval="$enable_ONCORE"
@@ -7613,7 +7648,7 @@ fi
 echo "$ac_t""$ntp_ok" 1>&6
 
 echo $ac_n "checking for default inclusion of all suitable non-PARSE clocks""... $ac_c" 1>&6
-echo "configure:7617: checking for default inclusion of all suitable non-PARSE clocks" >&5
+echo "configure:7652: checking for default inclusion of all suitable non-PARSE clocks" >&5
 # Check whether --enable-all-clocks or --disable-all-clocks was given.
 if test "${enable_all_clocks+set}" = set; then
   enableval="$enable_all_clocks"
@@ -7625,7 +7660,7 @@ fi
 echo "$ac_t""$ntp_eac" 1>&6
 
 echo $ac_n "checking if we have support for PARSE clocks""... $ac_c" 1>&6
-echo "configure:7629: checking if we have support for PARSE clocks" >&5
+echo "configure:7664: checking if we have support for PARSE clocks" >&5
 case "$ac_cv_header_termio_h$ac_cv_header_termios_h" in
  *yes*)
     ntp_canparse=yes
@@ -7637,14 +7672,14 @@ echo "$ac_t""$ntp_canparse" 1>&6
 
 # Requires modem control
 echo $ac_n "checking ACTS modem service""... $ac_c" 1>&6
-echo "configure:7641: checking ACTS modem service" >&5
+echo "configure:7676: checking ACTS modem service" >&5
 # Check whether --enable-ACTS or --disable-ACTS was given.
 if test "${enable_ACTS+set}" = set; then
   enableval="$enable_ACTS"
   ntp_ok=$enableval
 else
   cat > conftest.$ac_ext <<EOF
-#line 7648 "configure"
+#line 7683 "configure"
 #include "confdefs.h"
 #include <termios.h>
 #ifdef HAVE_SYS_IOCTL_H
@@ -7677,7 +7712,7 @@ fi
 echo "$ac_t""$ntp_ok" 1>&6
 
 echo $ac_n "checking Arbiter 1088A/B GPS receiver""... $ac_c" 1>&6
-echo "configure:7681: checking Arbiter 1088A/B GPS receiver" >&5
+echo "configure:7716: checking Arbiter 1088A/B GPS receiver" >&5
 # Check whether --enable-ARBITER or --disable-ARBITER was given.
 if test "${enable_ARBITER+set}" = set; then
   enableval="$enable_ARBITER"
@@ -7696,7 +7731,7 @@ fi
 echo "$ac_t""$ntp_ok" 1>&6
 
 echo $ac_n "checking Arcron MSF receiver""... $ac_c" 1>&6
-echo "configure:7700: checking Arcron MSF receiver" >&5
+echo "configure:7735: checking Arcron MSF receiver" >&5
 # Check whether --enable-ARCRON_MSF or --disable-ARCRON_MSF was given.
 if test "${enable_ARCRON_MSF+set}" = set; then
   enableval="$enable_ARCRON_MSF"
@@ -7715,7 +7750,7 @@ fi
 echo "$ac_t""$ntp_ok" 1>&6
 
 echo $ac_n "checking Austron 2200A/2201A GPS receiver""... $ac_c" 1>&6
-echo "configure:7719: checking Austron 2200A/2201A GPS receiver" >&5
+echo "configure:7754: checking Austron 2200A/2201A GPS receiver" >&5
 # Check whether --enable-AS2201 or --disable-AS2201 was given.
 if test "${enable_AS2201+set}" = set; then
   enableval="$enable_AS2201"
@@ -7734,7 +7769,7 @@ fi
 echo "$ac_t""$ntp_ok" 1>&6
 
 echo $ac_n "checking PPS interface""... $ac_c" 1>&6
-echo "configure:7738: checking PPS interface" >&5
+echo "configure:7773: checking PPS interface" >&5
 # Check whether --enable-ATOM or --disable-ATOM was given.
 if test "${enable_ATOM+set}" = set; then
   enableval="$enable_ATOM"
@@ -7753,7 +7788,7 @@ fi
 echo "$ac_t""$ntp_ok" 1>&6
 
 echo $ac_n "checking CHU modem/decoder""... $ac_c" 1>&6
-echo "configure:7757: checking CHU modem/decoder" >&5
+echo "configure:7792: checking CHU modem/decoder" >&5
 # Check whether --enable-CHU or --disable-CHU was given.
 if test "${enable_CHU+set}" = set; then
   enableval="$enable_CHU"
@@ -7773,7 +7808,7 @@ echo "$ac_t""$ntp_ok" 1>&6
 ac_refclock_chu=$ntp_ok
 
 echo $ac_n "checking CHU audio/decoder""... $ac_c" 1>&6
-echo "configure:7777: checking CHU audio/decoder" >&5
+echo "configure:7812: checking CHU audio/decoder" >&5
 # Check whether --enable-AUDIO-CHU or --disable-AUDIO-CHU was given.
 if test "${enable_AUDIO_CHU+set}" = set; then
   enableval="$enable_AUDIO_CHU"
@@ -7797,7 +7832,7 @@ esac
 
 # Not under HP-UX
 echo $ac_n "checking Datum Programmable Time System""... $ac_c" 1>&6
-echo "configure:7801: checking Datum Programmable Time System" >&5
+echo "configure:7836: checking Datum Programmable Time System" >&5
 # Check whether --enable-DATUM or --disable-DATUM was given.
 if test "${enable_DATUM+set}" = set; then
   enableval="$enable_DATUM"
@@ -7823,14 +7858,14 @@ echo "$ac_t""$ntp_ok" 1>&6
 
 # Requires modem control
 echo $ac_n "checking Heath GC-1000 WWV/WWVH receiver""... $ac_c" 1>&6
-echo "configure:7827: checking Heath GC-1000 WWV/WWVH receiver" >&5
+echo "configure:7862: checking Heath GC-1000 WWV/WWVH receiver" >&5
 # Check whether --enable-HEATH or --disable-HEATH was given.
 if test "${enable_HEATH+set}" = set; then
   enableval="$enable_HEATH"
   ntp_ok=$enableval
 else
   cat > conftest.$ac_ext <<EOF
-#line 7834 "configure"
+#line 7869 "configure"
 #include "confdefs.h"
 #include <termios.h>
 #ifdef HAVE_SYS_IOCTL_H
@@ -7863,7 +7898,7 @@ fi
 echo "$ac_t""$ntp_ok" 1>&6
 
 echo $ac_n "checking HP 58503A GPS receiver""... $ac_c" 1>&6
-echo "configure:7867: checking HP 58503A GPS receiver" >&5
+echo "configure:7902: checking HP 58503A GPS receiver" >&5
 # Check whether --enable-HPGPS or --disable-HPGPS was given.
 if test "${enable_HPGPS+set}" = set; then
   enableval="$enable_HPGPS"
@@ -7882,7 +7917,7 @@ fi
 echo "$ac_t""$ntp_ok" 1>&6
 
 echo $ac_n "checking Sun IRIG audio decoder""... $ac_c" 1>&6
-echo "configure:7886: checking Sun IRIG audio decoder" >&5
+echo "configure:7921: checking Sun IRIG audio decoder" >&5
 # Check whether --enable-IRIG or --disable-IRIG was given.
 if test "${enable_IRIG+set}" = set; then
   enableval="$enable_IRIG"
@@ -7910,7 +7945,7 @@ case "$ntp_ok$ac_cv_header_sun_audioio_h$ac_cv_header_sys_audioio_h" in
 esac
 
 echo $ac_n "checking Leitch CSD 5300 Master Clock System Driver""... $ac_c" 1>&6
-echo "configure:7914: checking Leitch CSD 5300 Master Clock System Driver" >&5
+echo "configure:7949: checking Leitch CSD 5300 Master Clock System Driver" >&5
 # Check whether --enable-LEITCH or --disable-LEITCH was given.
 if test "${enable_LEITCH+set}" = set; then
   enableval="$enable_LEITCH"
@@ -7929,7 +7964,7 @@ fi
 echo "$ac_t""$ntp_ok" 1>&6
 
 echo $ac_n "checking local clock reference""... $ac_c" 1>&6
-echo "configure:7933: checking local clock reference" >&5
+echo "configure:7968: checking local clock reference" >&5
 # Check whether --enable-LOCAL-CLOCK or --disable-LOCAL-CLOCK was given.
 if test "${enable_LOCAL_CLOCK+set}" = set; then
   enableval="$enable_LOCAL_CLOCK"
@@ -7948,7 +7983,7 @@ fi
 echo "$ac_t""$ntp_ok" 1>&6
 
 echo $ac_n "checking EES M201 MSF receiver""... $ac_c" 1>&6
-echo "configure:7952: checking EES M201 MSF receiver" >&5
+echo "configure:7987: checking EES M201 MSF receiver" >&5
 # Check whether --enable-MSFEES or --disable-MSFEES was given.
 if test "${enable_MSFEES+set}" = set; then
   enableval="$enable_MSFEES"
@@ -7968,7 +8003,7 @@ echo "$ac_t""$ntp_ok" 1>&6
 
 # Not Ultrix
 echo $ac_n "checking Magnavox MX4200 GPS receiver""... $ac_c" 1>&6
-echo "configure:7972: checking Magnavox MX4200 GPS receiver" >&5
+echo "configure:8007: checking Magnavox MX4200 GPS receiver" >&5
 # Check whether --enable-MX4200 or --disable-MX4200 was given.
 if test "${enable_MX4200+set}" = set; then
   enableval="$enable_MX4200"
@@ -7995,7 +8030,7 @@ case "$ntp_ok$target" in
 esac
 
 echo $ac_n "checking NMEA GPS receiver""... $ac_c" 1>&6
-echo "configure:7999: checking NMEA GPS receiver" >&5
+echo "configure:8034: checking NMEA GPS receiver" >&5
 # Check whether --enable-NMEA or --disable-NMEA was given.
 if test "${enable_NMEA+set}" = set; then
   enableval="$enable_NMEA"
@@ -8014,7 +8049,7 @@ fi
 echo "$ac_t""$ntp_ok" 1>&6
 
 echo $ac_n "checking for Palisade clock""... $ac_c" 1>&6
-echo "configure:8018: checking for Palisade clock" >&5
+echo "configure:8053: checking for Palisade clock" >&5
 # Check whether --enable-PALISADE or --disable-PALISADE was given.
 if test "${enable_PALISADE+set}" = set; then
   enableval="$enable_PALISADE"
@@ -8040,7 +8075,7 @@ fi
 echo "$ac_t""$ntp_ok" 1>&6
 
 echo $ac_n "checking PST/Traconex 1020 WWV/WWVH receiver""... $ac_c" 1>&6
-echo "configure:8044: checking PST/Traconex 1020 WWV/WWVH receiver" >&5
+echo "configure:8079: checking PST/Traconex 1020 WWV/WWVH receiver" >&5
 # Check whether --enable-PST or --disable-PST was given.
 if test "${enable_PST+set}" = set; then
   enableval="$enable_PST"
@@ -8060,7 +8095,7 @@ echo "$ac_t""$ntp_ok" 1>&6
 
 # Not Ultrix
 echo $ac_n "checking Rockwell Jupiter GPS receiver""... $ac_c" 1>&6
-echo "configure:8064: checking Rockwell Jupiter GPS receiver" >&5
+echo "configure:8099: checking Rockwell Jupiter GPS receiver" >&5
 # Check whether --enable-JUPITER or --disable-JUPITER was given.
 if test "${enable_JUPITER+set}" = set; then
   enableval="$enable_JUPITER"
@@ -8088,14 +8123,14 @@ esac
 
 # Requires modem control
 echo $ac_n "checking PTB modem service""... $ac_c" 1>&6
-echo "configure:8092: checking PTB modem service" >&5
+echo "configure:8127: checking PTB modem service" >&5
 # Check whether --enable-PTBACTS or --disable-PTBACTS was given.
 if test "${enable_PTBACTS+set}" = set; then
   enableval="$enable_PTBACTS"
   ntp_ok=$enableval
 else
   cat > conftest.$ac_ext <<EOF
-#line 8099 "configure"
+#line 8134 "configure"
 #include "confdefs.h"
 #include <termios.h>
 #ifdef HAVE_SYS_IOCTL_H
@@ -8128,7 +8163,7 @@ fi
 echo "$ac_t""$ntp_ok" 1>&6
 
 echo $ac_n "checking KSI/Odetics TPRO/S GPS receiver/IRIG interface""... $ac_c" 1>&6
-echo "configure:8132: checking KSI/Odetics TPRO/S GPS receiver/IRIG interface" >&5
+echo "configure:8167: checking KSI/Odetics TPRO/S GPS receiver/IRIG interface" >&5
 # Check whether --enable-TPRO or --disable-TPRO was given.
 if test "${enable_TPRO+set}" = set; then
   enableval="$enable_TPRO"
@@ -8156,7 +8191,7 @@ case "$ntp_ok$ac_cv_header_sys_tpro" in
 esac
 
 echo $ac_n "checking TRAK 8810 GPS receiver""... $ac_c" 1>&6
-echo "configure:8160: checking TRAK 8810 GPS receiver" >&5
+echo "configure:8195: checking TRAK 8810 GPS receiver" >&5
 # Check whether --enable-TRAK or --disable-TRAK was given.
 if test "${enable_TRAK+set}" = set; then
   enableval="$enable_TRAK"
@@ -8175,7 +8210,7 @@ fi
 echo "$ac_t""$ntp_ok" 1>&6
 
 echo $ac_n "checking Chrono-log K-series WWVB receiver""... $ac_c" 1>&6
-echo "configure:8179: checking Chrono-log K-series WWVB receiver" >&5
+echo "configure:8214: checking Chrono-log K-series WWVB receiver" >&5
 # Check whether --enable-CHRONOLOG or --disable-CHRONOLOG was given.
 if test "${enable_CHRONOLOG+set}" = set; then
   enableval="$enable_CHRONOLOG"
@@ -8194,7 +8229,7 @@ fi
 echo "$ac_t""$ntp_ok" 1>&6
 
 echo $ac_n "checking Dumb generic hh:mm:ss local clock""... $ac_c" 1>&6
-echo "configure:8198: checking Dumb generic hh:mm:ss local clock" >&5
+echo "configure:8233: checking Dumb generic hh:mm:ss local clock" >&5
 # Check whether --enable-DUMBCLOCK or --disable-DUMBCLOCK was given.
 if test "${enable_DUMBCLOCK+set}" = set; then
   enableval="$enable_DUMBCLOCK"
@@ -8214,7 +8249,7 @@ echo "$ac_t""$ntp_ok" 1>&6
 
 # Not on a vax-dec-bsd
 echo $ac_n "checking Kinemetrics/TrueTime receivers""... $ac_c" 1>&6
-echo "configure:8218: checking Kinemetrics/TrueTime receivers" >&5
+echo "configure:8253: checking Kinemetrics/TrueTime receivers" >&5
 # Check whether --enable-TRUETIME or --disable-TRUETIME was given.
 if test "${enable_TRUETIME+set}" = set; then
   enableval="$enable_TRUETIME"
@@ -8243,7 +8278,7 @@ case "$ntp_ok$target" in
 esac
 
 echo $ac_n "checking Spectracom 8170/Netclock/2 WWVB receiver""... $ac_c" 1>&6
-echo "configure:8247: checking Spectracom 8170/Netclock/2 WWVB receiver" >&5
+echo "configure:8282: checking Spectracom 8170/Netclock/2 WWVB receiver" >&5
 # Check whether --enable-WWVB or --disable-WWVB was given.
 if test "${enable_WWVB+set}" = set; then
   enableval="$enable_WWVB"
@@ -8263,14 +8298,14 @@ echo "$ac_t""$ntp_ok" 1>&6
 
 # Requires modem control
 echo $ac_n "checking USNO modem service""... $ac_c" 1>&6
-echo "configure:8267: checking USNO modem service" >&5
+echo "configure:8302: checking USNO modem service" >&5
 # Check whether --enable-USNO or --disable-USNO was given.
 if test "${enable_USNO+set}" = set; then
   enableval="$enable_USNO"
   ntp_ok=$enableval
 else
   cat > conftest.$ac_ext <<EOF
-#line 8274 "configure"
+#line 8309 "configure"
 #include "confdefs.h"
 #include <termios.h>
 #ifdef HAVE_SYS_IOCTL_H
@@ -8303,7 +8338,7 @@ fi
 echo "$ac_t""$ntp_ok" 1>&6
 
 echo $ac_n "checking for default inclusion of all suitable PARSE clocks""... $ac_c" 1>&6
-echo "configure:8307: checking for default inclusion of all suitable PARSE clocks" >&5
+echo "configure:8342: checking for default inclusion of all suitable PARSE clocks" >&5
 # Check whether --enable-parse-clocks or --disable-parse-clocks was given.
 if test "${enable_parse_clocks+set}" = set; then
   enableval="$enable_parse_clocks"
@@ -8333,7 +8368,7 @@ ntp_parseutil=no
 ntp_rawdcf=no
 
 echo $ac_n "checking Diem Computime Radio Clock""... $ac_c" 1>&6
-echo "configure:8337: checking Diem Computime Radio Clock" >&5
+echo "configure:8372: checking Diem Computime Radio Clock" >&5
 # Check whether --enable-COMPUTIME or --disable-COMPUTIME was given.
 if test "${enable_COMPUTIME+set}" = set; then
   enableval="$enable_COMPUTIME"
@@ -8358,7 +8393,7 @@ case "$ntp_ok$ntp_canparse" in
 esac
 
 echo $ac_n "checking ELV/DCF7000 clock""... $ac_c" 1>&6
-echo "configure:8362: checking ELV/DCF7000 clock" >&5
+echo "configure:8397: checking ELV/DCF7000 clock" >&5
 # Check whether --enable-DCF7000 or --disable-DCF7000 was given.
 if test "${enable_DCF7000+set}" = set; then
   enableval="$enable_DCF7000"
@@ -8383,7 +8418,7 @@ case "$ntp_ok$ntp_canparse" in
 esac
 
 echo $ac_n "checking HOPF 6021 clock""... $ac_c" 1>&6
-echo "configure:8387: checking HOPF 6021 clock" >&5
+echo "configure:8422: checking HOPF 6021 clock" >&5
 # Check whether --enable-HOPF6021 or --disable-HOPF6021 was given.
 if test "${enable_HOPF6021+set}" = set; then
   enableval="$enable_HOPF6021"
@@ -8408,7 +8443,7 @@ case "$ntp_ok$ntp_canparse" in
 esac
 
 echo $ac_n "checking Meinberg clocks""... $ac_c" 1>&6
-echo "configure:8412: checking Meinberg clocks" >&5
+echo "configure:8447: checking Meinberg clocks" >&5
 # Check whether --enable-MEINBERG or --disable-MEINBERG was given.
 if test "${enable_MEINBERG+set}" = set; then
   enableval="$enable_MEINBERG"
@@ -8433,7 +8468,7 @@ case "$ntp_ok$ntp_canparse" in
 esac
 
 echo $ac_n "checking DCF77 raw time code""... $ac_c" 1>&6
-echo "configure:8437: checking DCF77 raw time code" >&5
+echo "configure:8472: checking DCF77 raw time code" >&5
 # Check whether --enable-RAWDCF or --disable-RAWDCF was given.
 if test "${enable_RAWDCF+set}" = set; then
   enableval="$enable_RAWDCF"
@@ -8462,7 +8497,7 @@ esac
 case "$ntp_rawdcf" in
  yes)
     echo $ac_n "checking if we must enable parity for RAWDCF""... $ac_c" 1>&6
-echo "configure:8466: checking if we must enable parity for RAWDCF" >&5
+echo "configure:8501: checking if we must enable parity for RAWDCF" >&5
 if eval "test \"\${ac_cv_var_rawdcf_parity+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8490,7 +8525,7 @@ EOF
 esac
 
 echo $ac_n "checking RCC 8000 clock""... $ac_c" 1>&6
-echo "configure:8494: checking RCC 8000 clock" >&5
+echo "configure:8529: checking RCC 8000 clock" >&5
 # Check whether --enable-RCC8000 or --disable-RCC8000 was given.
 if test "${enable_RCC8000+set}" = set; then
   enableval="$enable_RCC8000"
@@ -8515,7 +8550,7 @@ case "$ntp_ok$ntp_canparse" in
 esac
 
 echo $ac_n "checking Schmid DCF77 clock""... $ac_c" 1>&6
-echo "configure:8519: checking Schmid DCF77 clock" >&5
+echo "configure:8554: checking Schmid DCF77 clock" >&5
 # Check whether --enable-SCHMID or --disable-SCHMID was given.
 if test "${enable_SCHMID+set}" = set; then
   enableval="$enable_SCHMID"
@@ -8540,7 +8575,7 @@ case "$ntp_ok$ntp_canparse" in
 esac
 
 echo $ac_n "checking Trimble GPS receiver/TAIP protocol""... $ac_c" 1>&6
-echo "configure:8544: checking Trimble GPS receiver/TAIP protocol" >&5
+echo "configure:8579: checking Trimble GPS receiver/TAIP protocol" >&5
 # Check whether --enable-TRIMTAIP or --disable-TRIMTAIP was given.
 if test "${enable_TRIMTAIP+set}" = set; then
   enableval="$enable_TRIMTAIP"
@@ -8565,7 +8600,7 @@ case "$ntp_ok$ntp_canparse" in
 esac
 
 echo $ac_n "checking Trimble GPS receiver/TSIP protocol""... $ac_c" 1>&6
-echo "configure:8569: checking Trimble GPS receiver/TSIP protocol" >&5
+echo "configure:8604: checking Trimble GPS receiver/TSIP protocol" >&5
 # Check whether --enable-TRIMTSIP or --disable-TRIMTSIP was given.
 if test "${enable_TRIMTSIP+set}" = set; then
   enableval="$enable_TRIMTSIP"
@@ -8590,7 +8625,7 @@ case "$ntp_ok$ntp_canparse" in
 esac
 
 echo $ac_n "checking WHARTON 400A Series clock""... $ac_c" 1>&6
-echo "configure:8594: checking WHARTON 400A Series clock" >&5
+echo "configure:8629: checking WHARTON 400A Series clock" >&5
 # Check whether --enable-WHARTON or --disable-WHARTON was given.
 if test "${enable_WHARTON+set}" = set; then
   enableval="$enable_WHARTON"
@@ -8615,7 +8650,7 @@ case "$ntp_ok$ntp_canparse" in
 esac
 
 echo $ac_n "checking VARITEXT clock""... $ac_c" 1>&6
-echo "configure:8619: checking VARITEXT clock" >&5
+echo "configure:8654: checking VARITEXT clock" >&5
 # Check whether --enable-VARITEXT or --disable-VARITEXT was given.
 if test "${enable_VARITEXT+set}" = set; then
   enableval="$enable_VARITEXT"
@@ -8642,7 +8677,7 @@ esac
 
 
 echo $ac_n "checking if we need to make and use the parse libraries""... $ac_c" 1>&6
-echo "configure:8646: checking if we need to make and use the parse libraries" >&5
+echo "configure:8681: checking if we need to make and use the parse libraries" >&5
 ans=no
 case "$ntp_libparse" in
  yes)
@@ -8669,7 +8704,7 @@ echo "$ac_t""$ans" 1>&6
 
 
 echo $ac_n "checking if we need to make and use the RSAREF library""... $ac_c" 1>&6
-echo "configure:8673: checking if we need to make and use the RSAREF library" >&5
+echo "configure:8708: checking if we need to make and use the RSAREF library" >&5
 ans=no
 if test -f $srcdir/rsaref2/source/rsa.c
 then
@@ -8687,7 +8722,7 @@ echo "$ac_t""$ans" 1>&6
 
 
 echo $ac_n "checking if we can make dcf parse utilities""... $ac_c" 1>&6
-echo "configure:8691: checking if we can make dcf parse utilities" >&5
+echo "configure:8726: checking if we can make dcf parse utilities" >&5
 ans=no
 if test "$ntp_parseutil" = "yes"; then
     case "$target" in
@@ -8702,7 +8737,7 @@ echo "$ac_t""$ans" 1>&6
 
 
 echo $ac_n "checking if we can build kernel streams modules for parse""... $ac_c" 1>&6
-echo "configure:8706: checking if we can build kernel streams modules for parse" >&5
+echo "configure:8741: checking if we can build kernel streams modules for parse" >&5
 ans=no
 if test "$ntp_parseutil$ac_cv_header_sys_stropts_h" = "yesyes"; then
     case "$target" in
@@ -8727,7 +8762,7 @@ fi
 echo "$ac_t""$ans" 1>&6
 
 echo $ac_n "checking if we need basic refclock support""... $ac_c" 1>&6
-echo "configure:8731: checking if we need basic refclock support" >&5
+echo "configure:8766: checking if we need basic refclock support" >&5
 if test "$ntp_refclock" = "yes"; then
     cat >> confdefs.h <<\EOF
 #define REFCLOCK 1
@@ -8739,7 +8774,7 @@ echo "$ac_t""$ntp_refclock" 1>&6
                        
 
 echo $ac_n "checking if we want HP-UX adjtimed support""... $ac_c" 1>&6
-echo "configure:8743: checking if we want HP-UX adjtimed support" >&5
+echo "configure:8778: checking if we want HP-UX adjtimed support" >&5
 case "$target" in
  *-*-hpux[56789]*)
     ans=yes
@@ -8757,7 +8792,7 @@ fi
 echo "$ac_t""$ans" 1>&6
 
 echo $ac_n "checking if we can read kmem""... $ac_c" 1>&6
-echo "configure:8761: checking if we can read kmem" >&5
+echo "configure:8796: checking if we can read kmem" >&5
 if eval "test \"\${ac_cv_var_can_kmem+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8810,7 +8845,7 @@ EOF
 esac
 
 echo $ac_n "checking if adjtime is accurate""... $ac_c" 1>&6
-echo "configure:8814: checking if adjtime is accurate" >&5
+echo "configure:8849: checking if adjtime is accurate" >&5
 if eval "test \"\${ac_cv_var_adjtime_is_accurate+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8862,7 +8897,7 @@ EOF
 esac
 
 echo $ac_n "checking the name of 'tick' in the kernel""... $ac_c" 1>&6
-echo "configure:8866: checking the name of 'tick' in the kernel" >&5
+echo "configure:8901: checking the name of 'tick' in the kernel" >&5
 if eval "test \"\${ac_cv_var_nlist_tick+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8906,7 +8941,7 @@ EOF
 esac
 #
 echo $ac_n "checking for the units of 'tick'""... $ac_c" 1>&6
-echo "configure:8910: checking for the units of 'tick'" >&5
+echo "configure:8945: checking for the units of 'tick'" >&5
 if eval "test \"\${ac_cv_var_tick_nano+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8930,7 +8965,7 @@ EOF
 esac
 #
 echo $ac_n "checking the name of 'tickadj' in the kernel""... $ac_c" 1>&6
-echo "configure:8934: checking the name of 'tickadj' in the kernel" >&5
+echo "configure:8969: checking the name of 'tickadj' in the kernel" >&5
 if eval "test \"\${ac_cv_var_nlist_tickadj+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8983,7 +9018,7 @@ EOF
 esac
 #
 echo $ac_n "checking for the units of 'tickadj'""... $ac_c" 1>&6
-echo "configure:8987: checking for the units of 'tickadj'" >&5
+echo "configure:9022: checking for the units of 'tickadj'" >&5
 if eval "test \"\${ac_cv_var_tickadj_nano+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9007,7 +9042,7 @@ EOF
 esac
 #
 echo $ac_n "checking half-heartedly for 'dosynctodr' in the kernel""... $ac_c" 1>&6
-echo "configure:9011: checking half-heartedly for 'dosynctodr' in the kernel" >&5
+echo "configure:9046: checking half-heartedly for 'dosynctodr' in the kernel" >&5
 if eval "test \"\${ac_cv_var_nlist_dosynctodr+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9060,7 +9095,7 @@ EOF
 esac
 #
 echo $ac_n "checking half-heartedly for 'noprintf' in the kernel""... $ac_c" 1>&6
-echo "configure:9064: checking half-heartedly for 'noprintf' in the kernel" >&5
+echo "configure:9099: checking half-heartedly for 'noprintf' in the kernel" >&5
 if eval "test \"\${ac_cv_var_nlist_noprintf+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9110,7 +9145,7 @@ esac
 
 
 echo $ac_n "checking for a default value for 'tick'""... $ac_c" 1>&6
-echo "configure:9114: checking for a default value for 'tick'" >&5
+echo "configure:9149: checking for a default value for 'tick'" >&5
 if eval "test \"\${ac_cv_var_tick+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9154,7 +9189,7 @@ EOF
 esac
 
 echo $ac_n "checking for a default value for 'tickadj'""... $ac_c" 1>&6
-echo "configure:9158: checking for a default value for 'tickadj'" >&5
+echo "configure:9193: checking for a default value for 'tickadj'" >&5
 if eval "test \"\${ac_cv_var_tickadj+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9261,7 +9296,7 @@ esac
 
 
 echo $ac_n "checking if we want and can make the tickadj utility""... $ac_c" 1>&6
-echo "configure:9265: checking if we want and can make the tickadj utility" >&5
+echo "configure:9300: checking if we want and can make the tickadj utility" >&5
 if eval "test \"\${ac_cv_make_tickadj+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9277,7 +9312,7 @@ esac
 
 
 echo $ac_n "checking if we want and can make the ntptime utility""... $ac_c" 1>&6
-echo "configure:9281: checking if we want and can make the ntptime utility" >&5
+echo "configure:9316: checking if we want and can make the ntptime utility" >&5
 if eval "test \"\${ac_cv_make_ntptime+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9306,7 +9341,7 @@ case "$ac_cv_make_ntptime" in
 esac
 
 echo $ac_n "checking if we want UDP wildcard delivery""... $ac_c" 1>&6
-echo "configure:9310: checking if we want UDP wildcard delivery" >&5
+echo "configure:9345: checking if we want UDP wildcard delivery" >&5
 if eval "test \"\${ac_cv_var_udp_wildcard_delivery+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9385,7 +9420,7 @@ case "$host" in
 esac
 
 echo $ac_n "checking if we should always slew the time""... $ac_c" 1>&6
-echo "configure:9389: checking if we should always slew the time" >&5
+echo "configure:9424: checking if we should always slew the time" >&5
 if eval "test \"\${ac_cv_var_slew_always+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9425,7 +9460,7 @@ EOF
 esac
 
 echo $ac_n "checking if we should step and slew the time""... $ac_c" 1>&6
-echo "configure:9429: checking if we should step and slew the time" >&5
+echo "configure:9464: checking if we should step and slew the time" >&5
 if eval "test \"\${ac_cv_var_step_slew+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9468,7 +9503,7 @@ EOF
 esac
 
 echo $ac_n "checking if ntpdate should step the time""... $ac_c" 1>&6
-echo "configure:9472: checking if ntpdate should step the time" >&5
+echo "configure:9507: checking if ntpdate should step the time" >&5
 if eval "test \"\${ac_cv_var_ntpdate_step+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9499,7 +9534,7 @@ EOF
 esac
 
 echo $ac_n "checking if we should sync TODR clock every hour""... $ac_c" 1>&6
-echo "configure:9503: checking if we should sync TODR clock every hour" >&5
+echo "configure:9538: checking if we should sync TODR clock every hour" >&5
 if eval "test \"\${ac_cv_var_sync_todr+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9532,7 +9567,7 @@ EOF
 esac
 
 echo $ac_n "checking if we should avoid kernel FLL bug""... $ac_c" 1>&6
-echo "configure:9536: checking if we should avoid kernel FLL bug" >&5
+echo "configure:9571: checking if we should avoid kernel FLL bug" >&5
 if eval "test \"\${ac_cv_var_kernel_fll_bug+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
index c28cca6afc2e8b30e1bc5f16f7de78795f251e4e..506ab3b83a9ab927a97be761e48acdc0f7668d83 100644 (file)
@@ -5,7 +5,7 @@ AC_CANONICAL_SYSTEM
 AC_DEFINE_UNQUOTED(STR_SYSTEM, "$target")
 AM_CONFIG_HEADER(config.h)
 AC_ARG_PROGRAM
-AM_INIT_AUTOMAKE(ntp, 4.0.94b)
+AM_INIT_AUTOMAKE(ntp, 4.0.95)
 AC_PREREQ(2.13)
 
 ac_cv_var_oncore_ok=no
@@ -418,6 +418,16 @@ if test $ac_cv_struct_clockinfo_has_tickadj = yes; then
     AC_DEFINE(HAVE_TICKADJ_IN_STRUCT_CLOCKINFO)
 fi
 
+AC_CACHE_CHECK([for struct ntptimeval], ac_cv_struct_ntptimeval,
+[AC_TRY_COMPILE([
+#include <sys/time.h>
+#include <sys/timex.h>],
+[struct ntptimeval n;],
+ac_cv_struct_ntptimeval=yes, ac_cv_struct_ntptimeval=no)])
+if test $ac_cv_struct_ntptimeval = yes; then
+  AC_DEFINE(HAVE_STRUCT_NTPTIMEVAL, 1, [Do we have struct ntptimeval?])
+fi
+
 AC_CACHE_CHECK(struct ntptimeval for time.tv_nsec, ac_cv_struct_ntptimeval_tv_nsec,
 [AC_TRY_COMPILE([
 #ifdef HAVE_SYS_TIME_H
@@ -443,6 +453,15 @@ if test "$ac_cv_struct_ntptimeval_tv_nsec" = "yes"; then
        AC_DEFINE(HAVE_TV_NSEC_IN_NTPTIMEVAL)
 fi
 
+AC_CACHE_CHECK([for struct timespec in struct ntptimeval], ac_cv_struct_ntptimeval_timespec,
+[AC_TRY_COMPILE([#include <sys/time.h>
+#include <sys/timex.h>],
+[struct ntptimeval n; n.time.tv_nsec = 0;],
+ac_cv_struct_ntptimeval_timespec=yes, ac_cv_struct_ntptimeval_timespec=no)])
+if test $ac_cv_struct_ntptimeval_timespec = yes; then
+  AC_DEFINE(TIMESPEC_IN_NTPTIMEVAL, 1, [Does ntptimeval use struct timespec?])
+fi
+
 AC_C_INLINE
 AC_C_CHAR_UNSIGNED             dnl CROSS_COMPILE?
 case "$host" in
@@ -1248,18 +1267,9 @@ AC_CACHE_CHECK(if sys/timex.h has STA_FLL, ac_cv_var_sta_fll,
 #endif
     ], ac_cv_var_sta_fll=yes, ac_cv_var_sta_fll=no)])
 
-AC_CACHE_CHECK([for struct timespec in struct ntptimeval], ac_cv_struct_ntptimeval_timespec,
-[AC_TRY_COMPILE([#include <sys/time.h>
-#include <sys/timex.h>],
-[struct ntptimeval n; n.time.tv_nsec = 0;],
-ac_cv_struct_ntptimeval_timespec=yes, ac_cv_struct_ntptimeval_timespec=no)])
-if test $ac_cv_struct_ntptimeval_timespec = yes; then
-  AC_DEFINE(TIMESPEC_IN_NTPTIMEVAL, 1, [Does ntptimeval use struct timespec?])
-fi
-
 AC_CACHE_CHECK(if we have kernel PLL support, ac_cv_var_kernel_pll,
 [dnl ac_cv_var_ntp_syscalls is {no,libc,kernel}
-case "$ac_cv_header_sys_timex_h$ac_cv_var_sta_fll$ac_cv_var_ntp_syscalls" in
+case "$ac_cv_header_sys_timex_h$ac_cv_struct_ntptimeval$ac_cv_var_sta_fll$ac_cv_var_ntp_syscalls" in
  *no*)
     ac_cv_var_kernel_pll=no
     ;;
index c5863c8873e2a19b7cb2c34ed9093eba5f4cc4bb..125b187f787dea9762c6e565399a35f9c63fbaa3 100644 (file)
@@ -188,6 +188,14 @@ GPS driver, generic TrueTime clock driver</LI>
 <LI>
 <A HREF="mailto: Ulrich.Windl@rz.uni-regensburg.de">Ulrich Windl &lt;Ulrich.Windl@rz.uni-regensburg.de></A>
 corrected and validated HTML documents according to the HTML DTD</LI>
+
+<LI>
+<A HREF="mailto: greg.brackley@bigfoot.com">Greg Brackley &lt;greg.brackley@bigfoot.com></A>
+Major rework of WINNT port. Clean up recvbuf and iosignal code into separate modules.</LI>
+
+<LI>
+<A HREF="mailto: Sven_Dietrich@trimble.COM">Sven Dietrich &lt;sven_dietrich@trimble.com></A>
+Palisade reference clock driver, NT adj. residuals, integrated Greg's Winnt port.</LI>
 </OL>
 
 <hr><a href=index.htm><img align=left src=pic/home.gif></a><address><a
index b7cc90e9405fc1842819181aee996cb6361d8425..3cddfc2a355c237f96551925315e0353755eb02b 100644 (file)
 <html>
 <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Generator" content="Microsoft Word 97">
-   <meta name="Template" content="C:\Program Files\Microsoft Office\Office\html.dot">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (WinNT; I) [Netscape]">
    <title>Trimble Palisade Receiver</title>
 </head>
 <body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#800080" alink="#FF0000">
 
-<h3>
-Trimble Palisade Receiver</h3>
+<h1>
+<font size=+2>Trimble Palisade Receiver</font>
+<hr></h1>
 
-<hr>
-<h4>
-<font size=+1>Synopsis</font></h4>
-Address: <b><font face="Courier">127.127.29.<i>u</i></font></b>
-<br>Reference ID: <b><font face="Courier">GPS</font></b>
-<br>Driver ID: <b><font face="Courier">GPS_PALISADE</font></b>
-<br>Serial Port: <tt>/dev/palisade<b><i>u</i></b></tt>
-<br><font size=+1>Serial I/O: 9600 baud, 8-bits, 1-stop, odd parity</font>
-<h4>
-<font size=+1>Description</font></h4>
-<font size=+1>The <b>refclock_palisade</b> driver interfaces NTP with Trimble
-Navigation's Palisade Smart Antenna GPS receiver. The driver reports its
-ID as "GPS_PALISADE'' to indicate the Trimble Palisade GPS as precision
-time source.</font>
-<p><font size=+1>This documentation describes version V2.43 (May 11, 1999)
-of the source.</font>
-<p><font size=+1>Driver code for the Palisade receiver is being maintained
-by:</font>
-<br><font size=+1><a href="mailto:sven_dietrich@trimble.com">Sven Dietrich</a></font>
-<br><font size=+1><a href="http://www.trimble.com/">Trimble Navigation
-Ltd.</a></font>
-<br><font size=+1>645 North Mary Ave.</font>
-<br><font size=+1>Sunnyvale, CA 94088-3642</font>
-<br>&nbsp;
-<p><b><font size=+1>Introduction</font></b>
-<p><font size=+1>The following information should answer most questions
-regarding driver installation, deployment and debugging.</font>
-<h4>
-<font size=+1>Receiver</font></h4>
-<font size=+1>The Palisade GPS receiver is an 8-channel smart antenna based
-on Sierra<sup>TM</sup> GPS technology. It is designed for static timing
-applications.</font>
-<p><font size=+1>Palisade generates a PPS synchronized to UTC within +/-
-100 ns.&nbsp; This level of precision is achieved using an over-determined
-time solution, a 40 ns pulse steering resolution and a T-RAIM (Time-Receiver
-Autonomous Integrity Monitor) algorithm. An external event input with 40
-nanosecond resolution, is available for asynchronous time transfer applications.</font>
-<p><font size=+1>Palisade self-surveys at power-up using TRAIM. No initialization
-of the receiver is required by the driver. It is recommended that Palisade
-be allowed to complete self-survey before starting NTP.</font>
+<h2>
+<img SRC="pic/driver29.gif" NOSAVE height=100 width=420></h2>
+
+<h2>
+<font size=+1>Synopsis</font></h2>
+
+<table>
+<tr>
+<td>
+<div align=right><tt>Address:&nbsp;</tt></div>
+</td>
+
+<td><b>127.127.29.<i>u</i></b></td>
+</tr>
+
+<tr>
+<td>
+<div align=right><tt>Reference ID:</tt></div>
+</td>
+
+<td><a NAME="REFID"></a><b>GPS</b></td>
+</tr>
+
+<tr>
+<td>
+<div align=right><tt>Driver ID:</tt></div>
+</td>
+
+<td><b>GPS_PALISADE</b></td>
+</tr>
+
+<tr>
+<td>
+<div align=right><tt>Serial Port:</tt></div>
+</td>
+
+<td><b>/dev/palisade<i>u</i></b></td>
+</tr>
+
+<tr>
+<td>
+<div align=right><tt><font size=+1>Serial I/O:</font></tt></div>
+</td>
+
+<td><b>9600 baud, 8-bits, 1-stop, odd parity</b></td>
+</tr>
+</table>
+
+<h2>
+<font size=+1>Description</font></h2>
+The <b>refclock_palisade</b> driver supports <a href="http://www.trimble.com/products/ntp">Trimble
+Navigation's Palisade Smart Antenna GPS receiver</a>.
+<br>Additional software and information about the Palisade GPS is available
+from: <a href="http://www.trimble.com/oem/ntp">http://www.trimble.com/oem/ntp</a>.
+<br>Latest NTP driver source, executables and documentation is maintained
+at:
+<a href="ftp://ftp.trimble.com/pub/ntp">ftp://ftp.trimble.com/pub/ntp</a>
+<p>This documentation describes version 7.12 of the GPS Firmware and version
+2.46 (July 15, 1999) and later, of the driver source.
 <br>&nbsp;
-<h4>
-<font size=+1>Compatibility</font></h4>
-<font size=+1>The driver has been tested on the following platforms:</font>
+<h2>
+<font size=+1>Operating System Compatibility</font></h2>
+The Palisade driver has been tested on the following software and hardware
+platforms:
 <br>&nbsp;
-<table BORDER WIDTH="758" >
+<center><table>
 <tr>
-<td VALIGN=CENTER WIDTH="23%"><font size=+1>Platform</font></td>
+<td VALIGN=CENTER WIDTH="23%">Platform</td>
 
-<td VALIGN=CENTER><font size=+1>Operating System</font></td>
+<td VALIGN=CENTER>Operating System</td>
 
 <td>NTP Sources</td>
+
+<td>Accuracy</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="23%"><font size=+1>i386 (PC)&nbsp;</font></td>
+<td VALIGN=CENTER WIDTH="23%">i386 (PC)&nbsp;</td>
 
-<td VALIGN=CENTER><font size=+1>Linux 2.x</font></td>
+<td VALIGN=CENTER>Linux</td>
 
 <td>NTP Distribution</td>
+
+<td>10 us</td>
 </tr>
 
 <tr>
-<td><font size=+1>i386 (PC)&nbsp;</font></td>
+<td>i386 (PC)&nbsp;</td>
 
-<td><font size=+1>Windows NT</font></td>
+<td>Windows NT</td>
 
 <td><a href="ftp://ftp.trimble.com/pub/ntp">ftp://ftp.trimble.com/pub/ntp</a></td>
+
+<td>1 ms</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="23%"><font size=+1>SUN</font></td>
+<td VALIGN=CENTER WIDTH="23%">SUN</td>
 
-<td VALIGN=CENTER><font size=+1>Solaris 2.5x, 2.6, 7.0</font></td>
+<td VALIGN=CENTER>Solaris 2.x</td>
 
 <td>NTP Distribution</td>
+
+<td>50 us</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="23%"><font size=+1>Hewlett-Packard</font></td>
+<td VALIGN=CENTER WIDTH="23%">Hewlett-Packard</td>
 
-<td VALIGN=CENTER><font size=+1>HPUX 9, 10, 11</font></td>
+<td VALIGN=CENTER>HPUX 9, 10, 11</td>
 
 <td><a href="http://us-support.external.hp.com">http://us-support.external.hp.com</a></td>
+
+<td>50 us</td>
 </tr>
-</table>
 
-<p><font size=+1>If you are compiling NTP from a software distribution,
-you can obtain latest software source, documentation, and compatibility
-information from:</font>
-<p><font size=+1>&nbsp;&nbsp;&nbsp; <a href="ftp://ftp.trimble.com/pub/ntp">ftp://ftp.trimble.com/pub/ntp</a></font>
-<p><font size=+1>A proprietary port of NTP for Windows NT is also posted
-on the above ftp site.</font>
-<br><font size=+1>Windows NT support is available from Trimble on a no-support,
-beta-evaluation basis only.</font>
-<p><font size=+1>This driver is compatible with the following versions
-of Palisade:</font>
+<tr>
+<td>Various</td>
+
+<td>Free BSD</td>
+
+<td>NTP Distribution</td>
+
+<td>20 us</td>
+</tr>
+</table></center>
+
+<h2>
+<font size=+1>GPS Receiver</font></h2>
+The Palisade GPS receiver is an 8-channel smart antenna, housing the GPS
+receiver, antenna and interface in a single unit, and is designed for rooftop
+deployment in static timing applications.
+<p>Palisade generates a PPS synchronized to UTC within +/- 100 ns.&nbsp;
+The Palisade's external event input with 40 nanosecond resolution is utilized
+by the Palisade NTP driver for asynchronous precision time transfer.
+<p>No user initialization of the receiver is required. This driver is compatible
+with the following versions of Palisade:
 <br>&nbsp;
-<table BORDER WIDTH="645" >
+<center><table>
 <tr>
-<td VALIGN=CENTER WIDTH="22%">
-<center><font size=+1>Version</font></center>
+<td VALIGN=CENTER>
+<center>Version</center>
 </td>
 
-<td VALIGN=TOP WIDTH="18%">
-<center><font size=+1>External Event</font></center>
+<td VALIGN=TOP>
+<center>Event Input</center>
 </td>
 
-<td VALIGN=CENTER WIDTH="60%">
-<center><font size=+1>Trimble Part Number</font></center>
+<td VALIGN=CENTER>
+<center>Trimble Part Number</center>
 </td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="22%">
-<center><font size=+1>7.02</font></center>
+<td VALIGN=CENTER>
+<center>7.02</center>
 </td>
 
-<td VALIGN=TOP WIDTH="18%">
-<center><font size=+1>No</font></center>
+<td VALIGN=TOP>
+<center>No</center>
 </td>
 
-<td VALIGN=CENTER WIDTH="60%">
-<center><font size=+1>26664-00</font></center>
+<td VALIGN=CENTER>
+<center>26664-00</center>
 </td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="22%">
-<center><font size=+1>7.02E</font></center>
+<td ALIGN=CENTER VALIGN=CENTER>
+<center>7.02E</center>
 </td>
 
-<td VALIGN=TOP WIDTH="18%">
-<center><font size=+1>Yes</font></center>
+<td VALIGN=TOP>
+<center>Yes</center>
 </td>
 
-<td VALIGN=CENTER WIDTH="60%">
-<center><font size=+1>26664-10</font></center>
+<td VALIGN=CENTER>
+<center>26664-10</center>
 </td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="22%">
-<center><font size=+1>7.12</font></center>
+<td VALIGN=CENTER>
+<center>7.12</center>
 </td>
 
-<td VALIGN=TOP WIDTH="18%">
-<center><font size=+1>Yes</font></center>
+<td VALIGN=TOP>
+<center>Yes</center>
 </td>
 
-<td VALIGN=CENTER WIDTH="60%">
-<center><font size=+1>38158-00</font></center>
+<td VALIGN=CENTER>
+<center>38158-00</center>
 </td>
 </tr>
-</table>
+</table></center>
+
+<dl>
+<dl>Note: When using Palisade 26664-00, you must set fudge flag2 to 1 in
+<b>ntp.conf</b>.
+See <a href="#Configuration">configuration</a>.</dl>
+
+<dl>
+<h3>
+<font size=+1>GPS&nbsp;<a NAME="Installation"></a>Installation</font></h3>
+A location with unobstructed view of the horizon is recommended. Palisade
+is designed to be securely mounted atop standard 3/4 inch threaded pipe.
+<p>The 12 conductor (dia. 10 mm)&nbsp; power and I/O cable must be routed
+from the rooftop site to the NTP server and properly strain relieved.
+<h3>
+<font size=+1>GPS&nbsp;<a NAME="Connection"></a>Connection</font></h3>
+The Palisade is equipped with dual (A &amp; B) RS-422 serial interfaces
+and a differential TTL PPS output. An RS-232 / RS-422 Interface Module
+is supplied with the Palisade NTP Synchronization Kit. Palisade <a href="#PortA">port
+A</a> must be connected to the NTP host server. Maximum antenna cable length
+is 500 meters. See the <a href="#Pinouts">pinouts</a> table for detailed
+connection Information.
+<p>Palisade's <a href="#PortB">port B</a> provides a TSIP (Trimble Standard
+Interface Protocol) interface for diagnostics, configuration, and monitoring.
+Port B and the PPS output are not currently used by the Palisade NTP reference
+clock driver.
+<br>&nbsp;</dl>
+</dl>
 
-<p><font size=+1>Note: If you are using Palisade 26664-00, you must set
-fudge flag2 to 1 in your ntp.conf file. See the configuration section below.</font>
+<h2>
+<font size=+1>O/S Serial Port Configuration</font></h2>
+The driver attempts to open the device <b><tt><a href="#REFID">/dev/palisade<i>u</i></a></tt></b>
+where
+<b><i>u</i></b> is the NTP refclock unit number as defined by the
+LSB of the refclock address.&nbsp; Valid refclock unit numbers are 0 -
+3.
+<p>The user is expected to provide a symbolic link to an available serial
+port device.&nbsp; This is typically performed by a command such as:
+<blockquote><tt>ln -s /dev/ttyS0 /dev/palisade0</tt></blockquote>
+Windows NT does not support symbolic links to device files. COM<b>x</b>:
+is used by the driver, based on the refclock unit number, where unit 1
+corresponds to COM<b>1</b>: and unit 3 corresponds to COM3:
 <br>&nbsp;
-<h4>
-<font size=+1>Installation</font></h4>
-<font size=+1>The Palisade receiver is delivered in a smart antenna form
-factor, housing the GPS receiver, antenna and interface in a single unit,
-and is designed for rooftop deployment.</font>
-<p><font size=+1>A location with unobstructed view of the horizon is recommended.
-Palisade is designed to be securely mounted atop standard 3/4 inch threaded
-pipe.</font>
-<p><font size=+1>The 12 conductor (dia. 10 mm)&nbsp; power and I/O cable
-must be routed from the rooftop site to the NTP server.</font>
-<h4>
-<font size=+1>Connection</font></h4>
-<font size=+1>The Palisade is equipped with dual (A &amp; B) RS-422 serial
-interfaces and a differential TTL PPS output. Port A must be connected
-to the NTP time server. An RS-232 / RS-422 signal converter is supplied
-with the Palisade NTP Synchronization Kit, to allow cable lengths up to
-500 meters.</font>
-<p><font size=+1>The following connections are required when connecting
-Palisade with a host:</font>
+<h2>
+<a NAME="Configuration"></a><font size=+1>NTP Configuration</font></h2>
+Palisade NTP configuration file <b><tt>"ntp.conf"</tt></b> with event polling:
+<br><tt>#------------------------------------------------------------------------------</tt>
+<br><tt># The Primary reference</tt>
+<br><tt>server 127.127.29.0 # Trimble Palisade GPS Refclock Unit #0</tt>
+<br><tt>peer terrapin.csc.ncsu.edu # internet server</tt>
+<br><tt># Drift file for expedient re-synchronization after downtime or
+reboot.</tt>
+<br><tt>driftfile /etc/ntp.drift</tt>
+<br><tt>#------------------------------------------------------------------------------</tt>
+<p>Configuration without event polling:
+<br><tt>#------------------------------------------------------------------------------</tt>
+<br><tt># The Primary reference</tt>
+<br><tt>server 127.127.29.0 # Trimble Palisade GPS (Stratum 1).</tt>
+<br><tt># Set packet delay</tt>
+<br><tt><a href="#time1">fudge 127.127.29.0 time1 0.020</a></tt>
+<br><tt># and set flag2 to turn off event polling.</tt>
+<br><tt><a href="#flag2">fudge 127.127.29.0 flag2 1</a></tt>
+<br><tt>#------------------------------------------------------------------------------</tt>
 <br>&nbsp;
-<table BORDER=0 CELLSPACING=0 WIDTH="847" >
-<tr>
-<td VALIGN=CENTER WIDTH="19%"><u><font size=+1>Description</font></u></td>
+<h2>
+<a NAME="TimeTransfer"></a><font size=+1>Time Transfer and Polling</font></h2>
+Time transfer to the NTP host is performed via the Palisade's comprehensive
+time packet output. The time packets are output once per second, and whenever
+an event timestamp is requested.
+<p>The driver requests an event time stamp at the end of each polling interval,
+by pulsing the RTS (request to send) line on the serial port. The Palisade
+GPS responds with a time stamped event packet.
+<p>Time stamps are reported by the Palisade with respect to UTC time. The
+GPS receiver must download UTC offset information from GPS satellites.
+After an initial UTC download, the receiver will always start with correct
+UTC offset information.
+<br>&nbsp;
+<h2>
+<font size=+1>Run NTP in Debugging Mode</font></h2>
+The following procedure is recommended for installing and testing a Palisade
+NTP driver:
+<ol>
+<li>
+Perform initial checkout procedures. Place the GPS receiver outdoors; with
+clear view of the sky. Allow the receiver to obtain an UTC almanac.</li>
 
-<td VALIGN=CENTER WIDTH="8%"><b><font size=+1>Host</font></b></td>
+<li>
+Verify presence of timing packets by observing the 1 Hz (PPS) led on the
+interface module. It should flash once per second.</li>
 
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>&nbsp;</font></td>
+<li>
+Connect Palisade's port A to the NTP host.</li>
 
-<td VALIGN=CENTER WIDTH="4%"><font size=+1>&nbsp;</font></td>
+<li>
+Configure NTP and the serial I/O port on the host system.</li>
 
-<td VALIGN=CENTER WIDTH="11%"><font size=+1>&nbsp;</font></td>
+<li>
+Initially use <tt><a href="#flag2">fudge flag2</a></tt> in <b><a href="#Configuration">ntp.conf</a>,</b>
+to disable event polling (see configuration).</li>
 
-<td VALIGN=CENTER WIDTH="19%"><b><font size=+1>Palisade</font></b></td>
+<li>
+Run NTP in debug mode (-d -d), to observe Palisade_receive events.</li>
 
-<td VALIGN=CENTER WIDTH="29%"><font size=+1>&nbsp;</font></td>
-</tr>
+<li>
+The driver reports the <a href="#TrackingStatus">tracking status of the
+receiver</a>. Make sure it is tracking several satellites.</li>
 
-<tr>
-<td VALIGN=CENTER WIDTH="19%"><b><font size=+1>Port A</font></b></td>
+<li>
+Remove fudge flag2 and restart <b>ntpd</b> in debug mode to observe palisade_receive
+events.</li>
 
-<td VALIGN=CENTER WIDTH="8%">
-<center><u><font size=+1>DB-9</font></u></center>
-</td>
+<li>
+If event polling fails, verify the <a href="#Pinouts">connections</a> and
+that the host hardware supports RTS control.</li>
+</ol>
 
-<td VALIGN=CENTER WIDTH="9%">
-<center><u><font size=+1>DB-25</font></u></center>
-</td>
+<h2>
+<font size=+1>Event Logging</font></h2>
+System and Event log entries are generated by NTP to report significant
+system events. Administrators should monitor the system log to observe
+NTP error messages. Log entries generated by the Palisade NTP reference
+clock driver will be of the form:
+<blockquote>
+<pre>Nov 14 16:16:21 terrapin ntpd[1127]: Palisade #0: <i>message</i></pre>
+</blockquote>
 
-<td VALIGN=CENTER WIDTH="4%"><font size=+1>&nbsp;</font></td>
+<h2>
+<font size=+1>Fudge Factors</font></h2>
 
-<td VALIGN=CENTER WIDTH="11%"><u><font size=+1>RS-232</font></u></td>
+<dl>
+<dt>
+<a NAME="time1"></a><tt><font size=+1><a href="#Configuration">time1 <i>time</i></a></font></tt></dt>
 
-<td VALIGN=CENTER WIDTH="19%"><u><font size=+1>RS-422</font></u></td>
+<dd>
+Specifies the time offset calibration factor, in seconds and fraction,
+with default 0.0. If event capture is not used, time1 should be set to
+20 milliseconds to correct serial line and operating system delays incurred
+in capturing time stamps from the synchronous packets.</dd>
 
-<td VALIGN=CENTER WIDTH="29%"><u><font size=+1>Palisade Pinout</font></u></td>
-</tr>
+<dt>
+<tt><font size=+1>stratum <i>number</i></font></tt></dt>
 
-<tr>
-<td VALIGN=CENTER WIDTH="19%"><font size=+1>Receive Data&nbsp;</font></td>
+<dd>
+Specifies the driver stratum, in decimal from 0 to 15, with default 0.</dd>
 
-<td VALIGN=CENTER WIDTH="8%">
-<center><font size=+1>2</font></center>
-</td>
+<dt>
+<tt><font size=+1><a href="#REFID">refid <i>string</i></a></font></tt></dt>
 
-<td VALIGN=CENTER WIDTH="9%">
-<center><font size=+1>3</font></center>
-</td>
+<dd>
+Specifies the driver reference identifier, <b>GPS</b>.</dd>
+
+<dt>
+<a NAME="flag2"></a><tt><font size=+1><a href="#Configuration">flag2 0
+| 1</a></font></tt></dt>
 
-<td VALIGN=CENTER WIDTH="4%"><font size=+1>&lt;--</font></td>
+<dd>
+When set to 1, driver does not use hardware event capture. The synchronous
+packet output by the receiver at the beginning of each second is time stamped
+by the driver. If triggering the event pulse fails, the driver falls back
+to this mode automatically.</dd>
+</dl>
 
-<td VALIGN=CENTER WIDTH="11%"><font size=+1>Green</font></td>
+<h2>
+<font size=+1>DEFINEs</font></h2>
+The following constants are defined in the driver source code. These defines
+may be modified to improve performance or adapt to new operating systems.
+<br>&nbsp;
+<center><table BORDER >
+<tr>
+<td><b>Label</b></td>
 
-<td VALIGN=CENTER WIDTH="19%"><font size=+1>Green / Blue</font></td>
+<td>Definition</td>
 
-<td VALIGN=CENTER WIDTH="29%"><font size=+1>8 (T-) &amp; 10 (T+)</font></td>
+<td>Default Value</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="19%"><font size=+1>Transmit Data&nbsp;</font></td>
+<td>DEVICE</td>
 
-<td VALIGN=CENTER WIDTH="8%">
-<center><font size=+1>3</font></center>
-</td>
+<td>The serial port device to be used by the driver</td>
 
-<td VALIGN=CENTER WIDTH="9%">
-<center><font size=+1>2</font></center>
-</td>
-
-<td VALIGN=CENTER WIDTH="4%"><font size=+1>&lt;--</font></td>
+<td>/dev/palisade<b><i>u</i></b></td>
+</tr>
 
-<td VALIGN=CENTER WIDTH="11%"><font size=+1>N/C</font></td>
+<tr>
+<td>PRECISION</td>
 
-<td VALIGN=CENTER WIDTH="19%"><font size=+1>N/C</font></td>
+<td>Accuracy of time transfer</td>
 
-<td VALIGN=CENTER WIDTH="29%"><font size=+1>&nbsp;</font></td>
+<td>1 microsecond</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="19%"><font size=+1>Request to Send</font></td>
+<td>CURRENT_UTC</td>
 
-<td VALIGN=CENTER WIDTH="8%">
-<center><font size=+1>7</font></center>
-</td>
-
-<td VALIGN=CENTER WIDTH="9%">
-<center><font size=+1>4</font></center>
-</td>
+<td>Valid GPS - UTC offset</td>
 
-<td VALIGN=CENTER WIDTH="4%"><font size=+1>&lt;--</font></td>
+<td>13</td>
+</tr>
 
-<td VALIGN=CENTER WIDTH="11%"><font size=+1>Gray</font></td>
+<tr>
+<td>SPEED232</td>
 
-<td VALIGN=CENTER WIDTH="19%"><font size=+1>Gray / White</font></td>
+<td>Host RS-232 baud rate</td>
 
-<td VALIGN=CENTER WIDTH="29%"><font size=+1>6 (R-) &amp; 7 (R+)</font></td>
+<td>B9600</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="19%"><font size=+1>Signal Ground</font></td>
+<td>TRMB_MINPOLL&nbsp;</td>
 
-<td VALIGN=CENTER WIDTH="8%">
-<center><font size=+1>5</font></center>
-</td>
-
-<td VALIGN=CENTER WIDTH="9%">
-<center><font size=+1>7</font></center>
-</td>
+<td>Minimum polling interval</td>
 
-<td VALIGN=CENTER WIDTH="4%"><font size=+1>&lt;--</font></td>
+<td>5 (32 seconds)</td>
+</tr>
 
-<td VALIGN=CENTER WIDTH="11%"><font size=+1>Black</font></td>
+<tr>
+<td>TRMB_MAXPOLL</td>
 
-<td VALIGN=CENTER WIDTH="19%"><font size=+1>Black</font></td>
+<td>Maximum interval between polls</td>
 
-<td VALIGN=CENTER WIDTH="29%"><font size=+1>9 (GND)</font></td>
+<td>7 (128 seconds)</td>
 </tr>
+</table></center>
+
+<h2>
+<a NAME="DataFormat"></a><font size=+1>Data Format</font></h2>
+Palisade port A can output two synchronous time packets. The NTP driver
+can use either packet for synchronization. Packets are formatted as follows:
+<h3>
+<b><font size=+0>Packet 8F-AD (Primary NTP Packet)</font></b></h3>
 
+<center><table>
 <tr>
-<td VALIGN=CENTER WIDTH="19%"><font size=+1>&nbsp;</font></td>
+<td>Byte</td>
 
-<td VALIGN=CENTER WIDTH="8%"><font size=+1>&nbsp;</font></td>
+<td>Item</td>
 
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>&nbsp;</font></td>
+<td>Type</td>
 
-<td VALIGN=CENTER WIDTH="4%"><font size=+1>&nbsp;</font></td>
+<td>Meaning</td>
+</tr>
 
-<td VALIGN=CENTER WIDTH="11%"><font size=+1>&nbsp;</font></td>
+<tr>
+<td>0</td>
 
-<td VALIGN=CENTER WIDTH="19%"><font size=+1>&nbsp;</font></td>
+<td>Sub-Packet ID</td>
 
-<td VALIGN=CENTER WIDTH="29%"><font size=+1>&nbsp;</font></td>
+<td>BYTE</td>
+
+<td>Subcode 0xAD</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="19%"><b><font size=+1>Port B</font></b></td>
+<td>1 - 2</td>
+
+<td>Event Count</td>
 
-<td VALIGN=CENTER WIDTH="8%"><font size=+1>&nbsp;</font></td>
+<td>INTEGER</td>
 
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>&nbsp;</font></td>
+<td>External event count recorded (0 = PPS)</td>
+</tr>
 
-<td VALIGN=CENTER WIDTH="4%"><font size=+1>&nbsp;</font></td>
+<tr>
+<td>3 - 10</td>
 
-<td VALIGN=CENTER WIDTH="11%"><font size=+1>&nbsp;</font></td>
+<td>Fractional Second</td>
 
-<td VALIGN=CENTER WIDTH="19%"><font size=+1>&nbsp;</font></td>
+<td>DOUBLE</td>
 
-<td VALIGN=CENTER WIDTH="29%"><font size=+1>&nbsp;</font></td>
+<td>Time elapsed in current second (s)</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="19%"><font size=+1>Receive Data&nbsp;</font></td>
+<td>11</td>
 
-<td VALIGN=CENTER WIDTH="8%">
-<center><font size=+1>2</font></center>
-</td>
+<td>Hour</td>
 
-<td VALIGN=CENTER WIDTH="9%">
-<center><font size=+1>3</font></center>
-</td>
+<td>BYTE</td>
 
-<td VALIGN=CENTER WIDTH="4%"><font size=+1>&lt;--</font></td>
+<td>Hour (0 - 23)</td>
+</tr>
+
+<tr>
+<td>12</td>
 
-<td VALIGN=CENTER WIDTH="11%"><font size=+1>Brown</font></td>
+<td>Minute</td>
 
-<td VALIGN=CENTER WIDTH="19%"><font size=+1>Brown / Yellow</font></td>
+<td>BYTE</td>
 
-<td VALIGN=CENTER WIDTH="29%"><font size=+1>4 (T-) &amp; 5 (T+)</font></td>
+<td>Minute (0 - 59)</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="19%"><font size=+1>Transmit Data</font></td>
+<td>13</td>
 
-<td VALIGN=CENTER WIDTH="8%">
-<center><font size=+1>3</font></center>
-</td>
+<td>Second</td>
 
-<td VALIGN=CENTER WIDTH="9%">
-<center><font size=+1>2</font></center>
-</td>
+<td>BYTE</td>
+
+<td>Second (0 - 59; 60 = leap)</td>
+</tr>
 
-<td VALIGN=CENTER WIDTH="4%"><font size=+1>&lt;--</font></td>
+<tr>
+<td>14</td>
 
-<td VALIGN=CENTER WIDTH="11%"><font size=+1>Violet</font></td>
+<td>Day</td>
 
-<td VALIGN=CENTER WIDTH="19%"><font size=+1>Orange/ Violet</font></td>
+<td>BYTE</td>
 
-<td VALIGN=CENTER WIDTH="29%"><font size=+1>2 (R-) &amp; 3 (R+)</font></td>
+<td>Date (1 - 31)</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="19%"><font size=+1>Request to Send</font></td>
+<td>15</td>
 
-<td VALIGN=CENTER WIDTH="8%">
-<center><font size=+1>7</font></center>
-</td>
+<td>Month</td>
 
-<td VALIGN=CENTER WIDTH="9%">
-<center><font size=+1>4</font></center>
-</td>
+<td>BYTE</td>
 
-<td VALIGN=CENTER WIDTH="4%"><font size=+1>&lt;--</font></td>
+<td>Month (1 - 12)</td>
+</tr>
 
-<td VALIGN=CENTER WIDTH="11%"><font size=+1>N/C</font></td>
+<tr>
+<td>16 - 17</td>
 
-<td VALIGN=CENTER WIDTH="19%"><font size=+1>N/C</font></td>
+<td>Year</td>
 
-<td VALIGN=CENTER WIDTH="29%"><font size=+1>&nbsp;</font></td>
+<td>INTEGER</td>
+
+<td>Year (4 digit)</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="19%"><font size=+1>Signal Ground</font></td>
+<td>18</td>
 
-<td VALIGN=CENTER WIDTH="8%">
-<center><font size=+1>5</font></center>
-</td>
+<td>Receiver Status</td>
 
-<td VALIGN=CENTER WIDTH="9%">
-<center><font size=+1>7</font></center>
-</td>
+<td>BYTE</td>
 
-<td VALIGN=CENTER WIDTH="4%"><font size=+1>&lt;--</font></td>
+<td>Tracking Status</td>
+</tr>
 
-<td VALIGN=CENTER WIDTH="11%"><font size=+1>Black</font></td>
+<tr>
+<td>19</td>
+
+<td>UTC Flags</td>
 
-<td VALIGN=CENTER WIDTH="19%"><font size=+1>Black</font></td>
+<td>BYTE</td>
 
-<td VALIGN=CENTER WIDTH="29%"><font size=+1>9 (GND)</font></td>
+<td>Leap Second Flags</td>
 </tr>
-</table>
 
-<p><font size=+1>Note: Driving the RS-422 inputs on the Palisade single
-ended, i.e. using the Green and Gray connections,</font>
-<br><font size=+1>does not work on all serial ports, and is deprecated.
-Use of the Palisade NTP host adapter is recommended.</font>
-<p><font size=+1>Pinouts for the Palisade NTP host adapter (Trimble PN
-37070) DB-25 M connector are as follows:</font>
-<br>&nbsp;
-<br>&nbsp;
-<table BORDER=0 CELLSPACING=0 WIDTH="682" >
 <tr>
-<td VALIGN=CENTER WIDTH="12%"><font size=+1>DB-25M</font></td>
+<td>20</td>
 
-<td VALIGN=CENTER WIDTH="31%"><font size=+1>Conductor&nbsp;</font></td>
+<td>Reserved</td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>Palisade</font></td>
+<td>BYTE</td>
 
-<td VALIGN=CENTER WIDTH="41%"><font size=+1>Description</font></td>
+<td>Contains 0xFF</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="12%"><font size=+1>1&nbsp;</font></td>
+<td>21</td>
 
-<td VALIGN=CENTER WIDTH="31%"><font size=+1>Red</font></td>
+<td>Reserved</td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>1</font></td>
+<td>BYTE</td>
 
-<td VALIGN=CENTER WIDTH="41%"><font size=+1>Power</font></td>
+<td>Contains 0xFF</td>
 </tr>
+</table></center>
 
+<blockquote>
+<h4>
+Leap Second Flag Definition:</h4>
+Bit 0:&nbsp; (1) UTC Time is available
+<br>Bits 1 - 3: Undefined
+<br>Bit 4:&nbsp; (1) Leap Scheduled: Leap second pending asserted by GPS
+control segment.
+<br>Bit 5:&nbsp; (1) Leap Pending: set 24 hours before, until beginning
+of leap second.
+<br>Bit 6:&nbsp; (1) GPS Leap Warning: 6 hours before until 6 hours after
+leap event
+<br>Bit 7:&nbsp; (1) Leap In Progress. Only set during the leap second.
+<h4>
+<a NAME="TrackingStatus"></a>Tracking Status Flag Definitions:</h4>
+</blockquote>
+
+<center><table BORDER=0 CELLSPACING=0 WIDTH="712" >
 <tr>
-<td VALIGN=CENTER WIDTH="12%"><font size=+1>7&nbsp;</font></td>
+<td VALIGN=CENTER WIDTH="5%">Code</td>
 
-<td VALIGN=CENTER WIDTH="31%"><font size=+1>Black</font></td>
+<td VALIGN=CENTER WIDTH="59%">Meaning</td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>9</font></td>
+<td>Accuracy</td>
 
-<td VALIGN=CENTER WIDTH="41%"><font size=+1>Ground</font></td>
+<td>Receiver Mode</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="12%"><font size=+1>9</font></td>
+<td>0</td>
 
-<td VALIGN=CENTER WIDTH="31%"><font size=+1>Black/White</font></td>
+<td>Receiver is Navigating</td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>12</font></td>
+<td>+/- 1 us</td>
 
-<td VALIGN=CENTER WIDTH="41%"><font size=+1>PPS -</font></td>
+<td>Self Survey</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="12%"><font size=+1>10&nbsp;</font></td>
+<td VALIGN=CENTER WIDTH="5%">1</td>
 
-<td VALIGN=CENTER WIDTH="31%"><font size=+1>Green</font></td>
+<td VALIGN=CENTER WIDTH="59%">Static 1 Sat. Timing Mode&nbsp;</td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>8</font></td>
+<td>+/- 1 us</td>
 
-<td VALIGN=CENTER WIDTH="41%"><font size=+1>Transmit Port A (T-)</font></td>
+<td>1-D Timing</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="12%"><font size=+1>11&nbsp;</font></td>
+<td VALIGN=CENTER WIDTH="5%">2</td>
 
-<td VALIGN=CENTER WIDTH="31%"><font size=+1>Brown</font></td>
+<td VALIGN=CENTER WIDTH="59%">Approximate Time</td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>4</font></td>
+<td>20 - 50 ms</td>
 
-<td VALIGN=CENTER WIDTH="41%"><font size=+1>Transmit Port B (T-)</font></td>
+<td>Acquisition</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="12%"><font size=+1>12&nbsp;</font></td>
+<td VALIGN=CENTER WIDTH="5%">3</td>
 
-<td VALIGN=CENTER WIDTH="31%"><font size=+1>Gray</font></td>
+<td VALIGN=CENTER WIDTH="59%">Startup</td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>7</font></td>
+<td>N/A</td>
 
-<td VALIGN=CENTER WIDTH="41%"><font size=+1>Receive Port A (R+)</font></td>
+<td>Initialization</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="12%"><font size=+1>13</font></td>
+<td VALIGN=CENTER WIDTH="5%">4</td>
 
-<td VALIGN=CENTER WIDTH="31%"><font size=+1>Orange</font></td>
+<td VALIGN=CENTER WIDTH="59%">Startup</td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>3</font></td>
+<td>N/A</td>
 
-<td VALIGN=CENTER WIDTH="41%"><font size=+1>Receive Port B (R+)</font></td>
+<td>Initialization</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="12%"><font size=+1>21</font></td>
+<td VALIGN=CENTER WIDTH="5%">5</td>
 
-<td VALIGN=CENTER WIDTH="31%"><font size=+1>Orange/White</font></td>
+<td VALIGN=CENTER WIDTH="59%">Dilution of Position too High&nbsp;</td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>11</font></td>
+<td>5 ppm</td>
 
-<td VALIGN=CENTER WIDTH="41%"><font size=+1>PPS +</font></td>
+<td>Self Survey</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="12%"><font size=+1>22</font></td>
+<td VALIGN=CENTER WIDTH="5%">6</td>
 
-<td VALIGN=CENTER WIDTH="31%"><font size=+1>Blue</font></td>
+<td VALIGN=CENTER WIDTH="59%">Static 1 Sat. Timing: Sat. not usable</td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>10</font></td>
+<td>5 ppm</td>
 
-<td VALIGN=CENTER WIDTH="41%"><font size=+1>Transmit Port A (T+)</font></td>
+<td>1-D Timing</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="12%"><font size=+1>23</font></td>
+<td VALIGN=CENTER WIDTH="5%">7</td>
 
-<td VALIGN=CENTER WIDTH="31%"><font size=+1>Yellow</font></td>
+<td VALIGN=CENTER WIDTH="59%">No Satellites Usable</td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>5</font></td>
+<td>N/A</td>
 
-<td VALIGN=CENTER WIDTH="41%"><font size=+1>Transmit Port B (T+)</font></td>
+<td>Self Survey</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="12%"><font size=+1>24</font></td>
+<td VALIGN=CENTER WIDTH="5%">8</td>
 
-<td VALIGN=CENTER WIDTH="31%"><font size=+1>White</font></td>
+<td VALIGN=CENTER WIDTH="59%">Only 1 Satellite Usable</td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>6</font></td>
+<td>20 - 50 ms</td>
 
-<td VALIGN=CENTER WIDTH="41%"><font size=+1>Receive Port A (R-)</font></td>
+<td>Self Survey</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="12%"><font size=+1>25</font></td>
+<td VALIGN=CENTER WIDTH="5%">9</td>
 
-<td VALIGN=CENTER WIDTH="31%"><font size=+1>Violet</font></td>
+<td VALIGN=CENTER WIDTH="59%">Only 2 Satellite Usable</td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>2</font></td>
+<td>20 - 50 ms</td>
 
-<td VALIGN=CENTER WIDTH="41%"><font size=+1>Receive Port B (R-)</font></td>
+<td>Self Survey</td>
 </tr>
-</table>
 
-<p><font size=+1>The Palisade's secondary port, Port B, provides a TSIP
-(Trimble Standard Interface Protocol), control and command interface for
-diagnostics, configuration, and monitoring.</font>
-<br><font size=+1>Port B and the PPS output are not currently used by the
-Palisade NTP reference clock driver.</font>
-<br>&nbsp;
-<h4>
-<font size=+1>O/S Serial Port Configuration</font></h4>
-<font size=+1>The driver attempts to open the device <tt>/dev/palisade</tt><b><i>u</i></b>where
-<b><i>u</i></b>
-is the NTP refclock unit number as defined by the LSB of the refclock address.&nbsp;
-Valid refclock unit numbers are 0 - 3.</font>
-<p><font size=+1>The user is expected to provide a symbolic link to an
-available serial port device.&nbsp; This is typically performed by a command
-such as:</font>
-<blockquote><tt>ln -s /dev/ttyS0 /dev/palisade0</tt></blockquote>
-<font size=+1>Windows NT does not support symbolic links to device files.
-COM<b>x</b>: is used by the driver, derived from the refclock unit number,
-where unit 1 corresponds to COM<b>1</b>: and unit 3 corresponds to COM3:</font>
-<h4>
-<font size=+1>Time Transfer and Polling</font></h4>
-<font size=+1>Time transfer to the NTP host is performed via the Palisade's
-comprehensive time packet output. This packet is output once per second,
-and whenever an event timestamp is requested.</font>
-<p><font size=+1>The driver requests an event time stamp at the end of
-each polling interval, by pulsing the RTS (request to send) line on the
-serial port. The Palisade receiver responds with a time stamped event packet.</font>
-<p><font size=+1>Time stamps are reported by the Palisade with respect
-to UTC time.</font>
-<h4>
-<font size=+1>Data Format</font></h4>
-
-<p><br><font size=+1>Palisade port A can output two synchronous time packets.
-The NTP driver can use either packet for synchronization. Packets are formatted
-as follows:</font>
-<br>&nbsp;
-<p><b><font size=+1>Packet 8F-AD (Primary NTP Packet)</font></b>
-<br>&nbsp;
-<table BORDER=0 CELLSPACING=0 WIDTH="817" >
 <tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>Byte</font></td>
+<td VALIGN=CENTER WIDTH="5%">10</td>
 
-<td VALIGN=CENTER WIDTH="30%"><font size=+1>Item</font></td>
+<td VALIGN=CENTER WIDTH="59%">Only 3 Satellites Usable</td>
 
-<td VALIGN=CENTER WIDTH="13%"><font size=+1>Type</font></td>
+<td>20 - 50 ms</td>
 
-<td VALIGN=CENTER WIDTH="49%"><font size=+1>Meaning</font></td>
+<td>Self Survey</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>0</font></td>
+<td VALIGN=CENTER WIDTH="5%">11</td>
 
-<td VALIGN=CENTER WIDTH="30%"><font size=+1>Sub-Packet ID</font></td>
+<td VALIGN=CENTER WIDTH="59%">Invalid Solution</td>
 
-<td VALIGN=CENTER WIDTH="13%"><font size=+1>BYTE</font></td>
+<td>N/A</td>
 
-<td VALIGN=CENTER WIDTH="49%"><font size=+1>Subcode 0xAD</font></td>
+<td>Error</td>
 </tr>
 
 <tr>
-<td VALIGN=TOP WIDTH="9%"><font size=+1>1 - 2</font></td>
+<td VALIGN=CENTER WIDTH="5%">12</td>
 
-<td VALIGN=TOP WIDTH="30%"><font size=+1>Event Count</font></td>
+<td VALIGN=CENTER WIDTH="59%">Differential Corrections&nbsp;</td>
 
-<td VALIGN=TOP WIDTH="13%"><font size=+1>INTEGER</font></td>
+<td>N/A</td>
 
-<td VALIGN=TOP WIDTH="49%"><font size=+1>External event count recorded
-(0 = PPS)</font></td>
+<td>N/A</td>
 </tr>
 
 <tr>
-<td VALIGN=TOP WIDTH="9%"><font size=+1>3 - 10</font></td>
+<td VALIGN=CENTER WIDTH="5%">13</td>
 
-<td VALIGN=TOP WIDTH="30%"><font size=+1>Fractional Second</font></td>
+<td VALIGN=CENTER WIDTH="59%">Overdetermined Fixes</td>
 
-<td VALIGN=TOP WIDTH="13%"><font size=+1>DOUBLE</font></td>
+<td>+/- 100 ns</td>
 
-<td VALIGN=TOP WIDTH="49%"><font size=+1>Time elapsed in current second</font></td>
+<td>Timing Steady State</td>
 </tr>
+</table></center>
+
+<h3>
+<b><font size=+0>Packet 8F-0B (Comprehensive Timing Packet)</font></b></h3>
 
+<center><table BORDER=0 CELLSPACING=0 >
 <tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>11</font></td>
+<td VALIGN=CENTER WIDTH="9%">Byte</td>
 
-<td VALIGN=CENTER WIDTH="30%"><font size=+1>Hour</font></td>
+<td VALIGN=CENTER WIDTH="27%">Item</td>
 
-<td VALIGN=CENTER WIDTH="13%"><font size=+1>BYTE</font></td>
+<td VALIGN=CENTER WIDTH="16%">Type</td>
 
-<td VALIGN=CENTER WIDTH="49%"><font size=+1>Hour</font></td>
+<td VALIGN=CENTER WIDTH="48%">Meaning</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>12</font></td>
+<td VALIGN=CENTER WIDTH="9%">0</td>
 
-<td VALIGN=CENTER WIDTH="30%"><font size=+1>Minute</font></td>
+<td VALIGN=CENTER WIDTH="27%">Sub-Packet ID</td>
 
-<td VALIGN=CENTER WIDTH="13%"><font size=+1>BYTE</font></td>
+<td VALIGN=CENTER WIDTH="16%">BYTE</td>
 
-<td VALIGN=CENTER WIDTH="49%"><font size=+1>Minute</font></td>
+<td VALIGN=CENTER WIDTH="48%">Subcode 0x0B</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>13</font></td>
+<td VALIGN=TOP WIDTH="9%">1 - 2</td>
 
-<td VALIGN=CENTER WIDTH="30%"><font size=+1>Second</font></td>
+<td VALIGN=TOP WIDTH="27%">Event Count</td>
 
-<td VALIGN=CENTER WIDTH="13%"><font size=+1>BYTE</font></td>
+<td VALIGN=TOP WIDTH="16%">INTEGER</td>
 
-<td VALIGN=CENTER WIDTH="49%"><font size=+1>Second (0 - 59; 60 = leap)</font></td>
+<td VALIGN=TOP WIDTH="48%">External event count recorded (0 = PPS)</td>
 </tr>
 
 <tr>
-<td VALIGN=TOP WIDTH="9%"><font size=+1>14</font></td>
+<td VALIGN=TOP WIDTH="9%">3 - 10</td>
 
-<td VALIGN=TOP WIDTH="30%"><font size=+1>Day</font></td>
+<td VALIGN=TOP WIDTH="27%">UTC / GPS TOW</td>
 
-<td VALIGN=TOP WIDTH="13%"><font size=+1>BYTE</font></td>
+<td VALIGN=TOP WIDTH="16%">DOUBLE</td>
 
-<td VALIGN=TOP WIDTH="49%"><font size=+1>Date (1 - 31)</font></td>
+<td VALIGN=TOP WIDTH="48%">UTC / GPS time of week (seconds)</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>15</font></td>
+<td VALIGN=CENTER WIDTH="9%">11</td>
 
-<td VALIGN=CENTER WIDTH="30%"><font size=+1>Month</font></td>
+<td VALIGN=CENTER WIDTH="27%">Date</td>
 
-<td VALIGN=CENTER WIDTH="13%"><font size=+1>BYTE</font></td>
+<td VALIGN=CENTER WIDTH="16%">BYTE</td>
 
-<td VALIGN=CENTER WIDTH="49%"><font size=+1>Month (1 - 12)</font></td>
+<td VALIGN=CENTER WIDTH="48%">Day of Month</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>15 - 17</font></td>
+<td VALIGN=CENTER WIDTH="9%">12</td>
 
-<td VALIGN=CENTER WIDTH="30%"><font size=+1>Year</font></td>
+<td VALIGN=CENTER WIDTH="27%">Month</td>
 
-<td VALIGN=CENTER WIDTH="13%"><font size=+1>INTEGER</font></td>
+<td VALIGN=CENTER WIDTH="16%">BYTE</td>
 
-<td VALIGN=CENTER WIDTH="49%"><font size=+1>Year (4 digit)</font></td>
+<td VALIGN=CENTER WIDTH="48%">Month of Event</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>18</font></td>
+<td VALIGN=CENTER WIDTH="9%">13 - 14</td>
 
-<td VALIGN=CENTER WIDTH="30%"><font size=+1>Receiver Status</font></td>
+<td VALIGN=CENTER WIDTH="27%">Year</td>
 
-<td VALIGN=CENTER WIDTH="13%"><font size=+1>BYTE</font></td>
+<td VALIGN=CENTER WIDTH="16%">INT</td>
 
-<td VALIGN=CENTER WIDTH="49%"><font size=+1>Tracking Status</font></td>
+<td VALIGN=CENTER WIDTH="48%">Year of event</td>
 </tr>
 
 <tr>
-<td VALIGN=TOP WIDTH="9%"><font size=+1>19</font></td>
+<td VALIGN=TOP WIDTH="9%">15</td>
 
-<td VALIGN=TOP WIDTH="30%"><font size=+1>UTC Flags</font></td>
+<td VALIGN=TOP WIDTH="27%">Receiver Mode</td>
 
-<td VALIGN=TOP WIDTH="13%"><font size=+1>BYTE</font></td>
+<td VALIGN=TOP WIDTH="16%">BYTE</td>
 
-<td VALIGN=TOP WIDTH="49%"><font size=+1>Leap Second Flags</font></td>
+<td VALIGN=TOP WIDTH="48%">Receiver operating dimensions:&nbsp;
+<br>0: Horizontal (2D)&nbsp;
+<br>1: Full Position (3D)&nbsp;
+<br>2: Single Satellite (0D)&nbsp;
+<br>3: Automatic (2D / 3D)&nbsp;
+<br>4: DGPS reference&nbsp;
+<br>5: Clock hold (2D)&nbsp;
+<br>6: Over determined Clock</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>20</font></td>
+<td VALIGN=CENTER WIDTH="9%">15 - 17</td>
 
-<td VALIGN=CENTER WIDTH="30%"><font size=+1>Reserved</font></td>
+<td VALIGN=CENTER WIDTH="27%">UTC Offset</td>
 
-<td VALIGN=CENTER WIDTH="13%"><font size=+1>BYTE</font></td>
+<td VALIGN=CENTER WIDTH="16%">INTEGER</td>
 
-<td VALIGN=CENTER WIDTH="49%"><font size=+1>Contains 0xFF</font></td>
+<td VALIGN=CENTER WIDTH="48%">UTC Offset value (seconds)</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>21</font></td>
+<td VALIGN=CENTER WIDTH="9%">18 - 25</td>
 
-<td VALIGN=CENTER WIDTH="30%"><font size=+1>Reserved</font></td>
+<td VALIGN=CENTER WIDTH="27%">Oscillator Bias</td>
 
-<td VALIGN=CENTER WIDTH="13%"><font size=+1>BYTE</font></td>
+<td VALIGN=CENTER WIDTH="16%">DOUBLE</td>
 
-<td VALIGN=CENTER WIDTH="49%"><font size=+1>Contains 0xFF</font></td>
+<td VALIGN=CENTER WIDTH="48%">Oscillator BIAS (meters)</td>
 </tr>
-</table>
 
-<br>&nbsp;
-<p><font size=+1>Leap Second Flag Definition:</font>
-<br><font size=+1>Bit 0:&nbsp; (1) UTC Time is available</font>
-<br><font size=+1>Bits 1 - 3: Undefined</font>
-<br><font size=+1>Bit 4:&nbsp; (1) Leap Scheduled: Leap second pending
-asserted by GPS control segment.</font>
-<br><font size=+1>Bit 5:&nbsp; (1) Leap Pending: set 24 hours before, until
-beginning of leap second.</font>
-<br><font size=+1>Bit 6:&nbsp; (1) GPS Leap Warning: 6 hours before until
-6 hours after leap event</font>
-<br><font size=+1>Bit 7: (1) Leap In Progress. Only set during the leap
-second.</font>
-<br>&nbsp;
-<p><font size=+1>Tracking Status Flag Definitions:</font>
-<br>&nbsp;
-<table BORDER=0 CELLSPACING=0 WIDTH="712" >
 <tr>
-<td VALIGN=CENTER WIDTH="5%"><font size=+1>0</font></td>
+<td VALIGN=TOP WIDTH="9%">26 - 33</td>
 
-<td VALIGN=CENTER WIDTH="59%"><font size=+1>Receiver is Navigating</font></td>
-</tr>
+<td VALIGN=TOP WIDTH="27%">Oscillator Drift Rate</td>
 
-<tr>
-<td VALIGN=CENTER WIDTH="5%"><font size=+1>1</font></td>
+<td VALIGN=TOP WIDTH="16%">DOUBLE</td>
 
-<td VALIGN=CENTER WIDTH="59%"><font size=+1>1 Sat. Timing Mode</font></td>
+<td VALIGN=TOP WIDTH="48%">Oscillator Drift (meters / second)</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="5%"><font size=+1>2</font></td>
+<td VALIGN=CENTER WIDTH="9%">34 - 37</td>
 
-<td VALIGN=CENTER WIDTH="59%"><font size=+1>Approximate Time (20 - 50 ms)</font></td>
-</tr>
+<td VALIGN=CENTER WIDTH="27%">Bias Uncertainty</td>
 
-<tr>
-<td VALIGN=CENTER WIDTH="5%"><font size=+1>3</font></td>
+<td VALIGN=CENTER WIDTH="16%">SINGLE</td>
 
-<td VALIGN=CENTER WIDTH="59%"><font size=+1>Startup</font></td>
+<td VALIGN=CENTER WIDTH="48%">Oscillator bias uncertainty (meters)</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="5%"><font size=+1>4</font></td>
+<td VALIGN=CENTER WIDTH="9%">38 - 41</td>
 
-<td VALIGN=CENTER WIDTH="59%"><font size=+1>Startup (N/A)</font></td>
-</tr>
+<td VALIGN=CENTER WIDTH="27%">Drift Uncertainty</td>
 
-<tr>
-<td VALIGN=CENTER WIDTH="5%"><font size=+1>5</font></td>
+<td VALIGN=CENTER WIDTH="16%">SINGLE</td>
 
-<td VALIGN=CENTER WIDTH="59%"><font size=+1>Dilution of Position too High
-(only applies during survey)</font></td>
+<td VALIGN=CENTER WIDTH="48%">Oscillator bias rate uncertainty (m / sec)</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="5%"><font size=+1>6</font></td>
+<td VALIGN=CENTER WIDTH="9%">42 - 49</td>
 
-<td VALIGN=CENTER WIDTH="59%"><font size=+1>1 Sat. Timing Mode: SV is not
-usable</font></td>
-</tr>
+<td VALIGN=CENTER WIDTH="27%">Latitude</td>
 
-<tr>
-<td VALIGN=CENTER WIDTH="5%"><font size=+1>7</font></td>
+<td VALIGN=CENTER WIDTH="16%">DOUBLE</td>
 
-<td VALIGN=CENTER WIDTH="59%"><font size=+1>No Satellites Usable</font></td>
+<td VALIGN=CENTER WIDTH="48%">Latitude in radians</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="5%"><font size=+1>8</font></td>
+<td VALIGN=CENTER WIDTH="9%">50 - 57</td>
 
-<td VALIGN=CENTER WIDTH="59%"><font size=+1>Only 1 Satellite Usable</font></td>
-</tr>
+<td VALIGN=CENTER WIDTH="27%">Longitude</td>
 
-<tr>
-<td VALIGN=CENTER WIDTH="5%"><font size=+1>9</font></td>
+<td VALIGN=CENTER WIDTH="16%">DOUBLE</td>
 
-<td VALIGN=CENTER WIDTH="59%"><font size=+1>Only 2 Satellite Usable</font></td>
+<td VALIGN=CENTER WIDTH="48%">Longitude in radians</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="5%"><font size=+1>10</font></td>
+<td VALIGN=CENTER WIDTH="9%">58 - 65</td>
 
-<td VALIGN=CENTER WIDTH="59%"><font size=+1>Only 3 Satellites Usable</font></td>
-</tr>
+<td VALIGN=CENTER WIDTH="27%">Altitude</td>
 
-<tr>
-<td VALIGN=CENTER WIDTH="5%"><font size=+1>11</font></td>
+<td VALIGN=CENTER WIDTH="16%">DOUBLE</td>
 
-<td VALIGN=CENTER WIDTH="59%"><font size=+1>Invalid Solution (Serious Error
-Cond.)</font></td>
+<td VALIGN=CENTER WIDTH="48%">Altitude above mean sea level, in meters</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="5%"><font size=+1>12</font></td>
+<td VALIGN=CENTER WIDTH="9%">66 - 73</td>
 
-<td VALIGN=CENTER WIDTH="59%"><font size=+1>Differential Corrections (N/A)</font></td>
-</tr>
+<td VALIGN=CENTER WIDTH="27%">Satellite ID</td>
 
-<tr>
-<td VALIGN=CENTER WIDTH="5%"><font size=+1>13</font></td>
+<td VALIGN=CENTER WIDTH="16%">BYTE</td>
 
-<td VALIGN=CENTER WIDTH="59%"><font size=+1>Overdetermined Fixes</font></td>
+<td VALIGN=CENTER WIDTH="48%">SV Id No. of tracked satellites</td>
 </tr>
-</table>
+</table></center>
 
+<h2>
+<a NAME="Pinouts"></a><font size=+1>Pinouts</font></h2>
+<a href="#Connection">The following connections are required when connecting
+Palisade with a host:</a>
 <br>&nbsp;
-<p><b><font size=+1>Packet 8F-0B (Comprehensive Timing Packet)</font></b>
 <br>&nbsp;
-<table BORDER=0 CELLSPACING=0 WIDTH="810" >
+<center><table>
 <tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>Byte</font></td>
+<td><u>Description</u></td>
 
-<td VALIGN=CENTER WIDTH="27%"><font size=+1>Item</font></td>
+<td><b>Host</b></td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>Type</font></td>
+<td></td>
 
-<td VALIGN=CENTER WIDTH="48%"><font size=+1>Meaning</font></td>
-</tr>
-
-<tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>0</font></td>
+<td></td>
 
-<td VALIGN=CENTER WIDTH="27%"><font size=+1>Sub-Packet ID</font></td>
+<td><b>Palisade&nbsp;</b></td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>BYTE</font></td>
+<td></td>
 
-<td VALIGN=CENTER WIDTH="48%"><font size=+1>Subcode 0x0B</font></td>
+<td></td>
 </tr>
 
 <tr>
-<td VALIGN=TOP WIDTH="9%"><font size=+1>1 - 2</font></td>
+<td><a NAME="PortA"></a><b>Port A</b></td>
 
-<td VALIGN=TOP WIDTH="27%"><font size=+1>Event Count</font></td>
+<td><u>DB-9</u></td>
 
-<td VALIGN=TOP WIDTH="16%"><font size=+1>INTEGER</font></td>
+<td><u>DB-25</u></td>
 
-<td VALIGN=TOP WIDTH="48%"><font size=+1>External event count recorded
-(0 = PPS)</font></td>
-</tr>
-
-<tr>
-<td VALIGN=TOP WIDTH="9%"><font size=+1>3 - 10</font></td>
+<td></td>
 
-<td VALIGN=TOP WIDTH="27%"><font size=+1>UTC / GPS TOW</font></td>
+<td><u>RS-232</u></td>
 
-<td VALIGN=TOP WIDTH="16%"><font size=+1>DOUBLE</font></td>
+<td><u>RS-422</u></td>
 
-<td VALIGN=TOP WIDTH="48%"><font size=+1>UTC / GPS time of week (seconds)</font></td>
+<td><u>Palisade Pin</u></td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>11</font></td>
-
-<td VALIGN=CENTER WIDTH="27%"><font size=+1>Date</font></td>
+<td>Receive Data&nbsp;</td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>BYTE</font></td>
+<td>2</td>
 
-<td VALIGN=CENTER WIDTH="48%"><font size=+1>Day of Month</font></td>
-</tr>
+<td>3</td>
 
-<tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>12</font></td>
+<td>&lt;--></td>
 
-<td VALIGN=CENTER WIDTH="27%"><font size=+1>Month</font></td>
+<td>Green</td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>BYTE</font></td>
+<td>Green / Blue</td>
 
-<td VALIGN=CENTER WIDTH="48%"><font size=+1>Month of Event</font></td>
+<td>8 (T-) &amp; 10 (T+)</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>13 - 14</font></td>
+<td>Request to Send</td>
 
-<td VALIGN=CENTER WIDTH="27%"><font size=+1>Year</font></td>
+<td>7</td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>INT</font></td>
+<td>4</td>
 
-<td VALIGN=CENTER WIDTH="48%"><font size=+1>Year of event</font></td>
-</tr>
-
-<tr>
-<td VALIGN=TOP WIDTH="9%"><font size=+1>15</font></td>
+<td>&lt;--></td>
 
-<td VALIGN=TOP WIDTH="27%"><font size=+1>Receiver Mode</font></td>
+<td>Gray</td>
 
-<td VALIGN=TOP WIDTH="16%"><font size=+1>BYTE</font></td>
+<td>Gray / White</td>
 
-<td VALIGN=TOP WIDTH="48%"><font size=+1>Receiver operating dimensions:&nbsp;</font>
-<br><font size=+1>0: Horizontal (2D)&nbsp;</font>
-<br><font size=+1>1: Full Position (3D)&nbsp;</font>
-<br><font size=+1>2: Single Satellite (0D)&nbsp;</font>
-<br><font size=+1>3: Automatic (2D / 3D)&nbsp;</font>
-<br><font size=+1>4: DGPS reference&nbsp;</font>
-<br><font size=+1>5: Clock hold (2D)&nbsp;</font>
-<br><font size=+1>6: Over determined Clock</font></td>
+<td>6 (R-) &amp; 7 (R+)</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>15 - 17</font></td>
+<td>Signal Ground</td>
 
-<td VALIGN=CENTER WIDTH="27%"><font size=+1>UTC Offset</font></td>
+<td>5</td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>INTEGER</font></td>
+<td>7</td>
 
-<td VALIGN=CENTER WIDTH="48%"><font size=+1>UTC Offset value (seconds)</font></td>
-</tr>
-
-<tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>18 - 25</font></td>
+<td>&lt;--></td>
 
-<td VALIGN=CENTER WIDTH="27%"><font size=+1>Oscillator Bias</font></td>
+<td>Black</td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>DOUBLE</font></td>
+<td>Black</td>
 
-<td VALIGN=CENTER WIDTH="48%"><font size=+1>Oscillator BIAS (meters)</font></td>
+<td>9 (GND)</td>
 </tr>
 
 <tr>
-<td VALIGN=TOP WIDTH="9%"><font size=+1>26 - 33</font></td>
-
-<td VALIGN=TOP WIDTH="27%"><font size=+1>Oscillator Drift Rate</font></td>
+<td></td>
 
-<td VALIGN=TOP WIDTH="16%"><font size=+1>DOUBLE</font></td>
+<td></td>
 
-<td VALIGN=TOP WIDTH="48%"><font size=+1>Oscillator Drift (meters / second)</font></td>
-</tr>
+<td></td>
 
-<tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>34 - 37</font></td>
+<td></td>
 
-<td VALIGN=CENTER WIDTH="27%"><font size=+1>Bias Uncertainty</font></td>
+<td></td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>SINGLE</font></td>
+<td></td>
 
-<td VALIGN=CENTER WIDTH="48%"><font size=+1>Oscillator bias uncertainty
-(meters)</font></td>
+<td></td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>38 - 41</font></td>
+<td><a NAME="PortB"></a><b>Port B</b></td>
 
-<td VALIGN=CENTER WIDTH="27%"><font size=+1>Drift Uncertainty</font></td>
+<td></td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>SINGLE</font></td>
+<td></td>
 
-<td VALIGN=CENTER WIDTH="48%"><font size=+1>Oscillator bias rate uncertainty
-(m / sec)</font></td>
-</tr>
-
-<tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>42 - 49</font></td>
+<td></td>
 
-<td VALIGN=CENTER WIDTH="27%"><font size=+1>Latitude</font></td>
+<td></td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>DOUBLE</font></td>
+<td></td>
 
-<td VALIGN=CENTER WIDTH="48%"><font size=+1>Latitude in radians</font></td>
+<td></td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>50 - 57</font></td>
+<td>Receive Data&nbsp;</td>
 
-<td VALIGN=CENTER WIDTH="27%"><font size=+1>Longitude</font></td>
+<td>2</td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>DOUBLE</font></td>
+<td>3</td>
 
-<td VALIGN=CENTER WIDTH="48%"><font size=+1>Longitude in radians</font></td>
+<td>&lt;--></td>
+
+<td>Brown</td>
+
+<td>Brown / Yellow</td>
+
+<td>4 (T-) &amp; 5 (T+)</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>58 - 65</font></td>
+<td>Transmit Data</td>
+
+<td>3</td>
 
-<td VALIGN=CENTER WIDTH="27%"><font size=+1>Altitude</font></td>
+<td>2</td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>DOUBLE</font></td>
+<td>&lt;--></td>
 
-<td VALIGN=CENTER WIDTH="48%"><font size=+1>Altitude above mean sea level,
-in meters</font></td>
+<td>Violet</td>
+
+<td>Orange/ Violet</td>
+
+<td>2 (R-) &amp; 3 (R+)</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1>66 - 73</font></td>
+<td>Signal Ground</td>
 
-<td VALIGN=CENTER WIDTH="27%"><font size=+1>Satellite ID</font></td>
+<td>5</td>
 
-<td VALIGN=CENTER WIDTH="16%"><font size=+1>BYTE</font></td>
+<td>7</td>
 
-<td VALIGN=CENTER WIDTH="48%"><font size=+1>SV Id No. of tracked satellites</font></td>
-</tr>
-</table>
+<td>&lt;--></td>
 
-<h4>
-&nbsp;</h4>
+<td>Black</td>
 
-<h4>
-<font size=+1>Configuration</font></h4>
-<font size=+1>A typical </font><tt>ntp.conf</tt><font size=+1> configuration
-file for this driver and a Palisade with event polling:</font>
-<br><tt>#------------------------------------------------------------------------------</tt>
-<br><tt># The Primary reference</tt>
-<br><tt>server 127.127.29.0 # Trimble Palisade GPS (Stratum 1).</tt>
-<p><tt>peer terrapin.csc.ncsu.edu # internet server</tt>
-<p><tt># Drift file for expedient re-synchronization after downtime or
-reboot.</tt>
-<br><tt>driftfile /etc/ntp.drift</tt>
-<br><tt>#------------------------------------------------------------------------------</tt>
-<p><font size=+1>A typical </font><tt>ntp.conf</tt><font size=+1> configuration
-file for this driver and a Palisade without event polling:</font>
-<p><tt>#------------------------------------------------------------------------------</tt>
-<br><tt># The Primary reference</tt>
-<br><tt>server 127.127.29.0 # Trimble Palisade GPS (Stratum 1).</tt>
-<p><tt># Set packet delay</tt>
-<br><tt>fudge 127.127.29.0 time1 0.020</tt>
-<p><tt># and set flag2 to turn off event polling.</tt>
-<br><tt>fudge 127.127.29.0 flag2 1</tt>
-<p><tt># Drift file for expedient re-synchronization after downtime or
-reboot.</tt>
-<br><tt>driftfile /etc/ntp.drift</tt>
-<br><tt>#------------------------------------------------------------------------------</tt>
-<h4>
-<font size=+1>Logging</font></h4>
-<font size=+1>Syslog entries generated by the palisade reference clock
-will be of the form:</font>
-<pre>Nov 14 16:16:21 terrapin ntpd[1127]: Palisade #0: <i>message</i></pre>
-
-<h4>
-<font size=+1>Debugging</font></h4>
-<font size=+1>The following procedure is recommended for installing and
-testing a Palisade NTP driver:</font>
-<ol>
-<li>
-<font size=+1>Place the Palisade GPS receiver outdoors; with clear view
-of the sky.</font></li>
+<td>Black</td>
 
-<li>
-<font size=+1>Allow the receiver 5 minutes to acquire satellite lock and
-position.</font></li>
+<td>9 (GND)</td>
+</tr>
+</table></center>
 
-<li>
-<font size=+1>Verify presence of timing packets by observing the 1 Hz (PPS)
-led on the NTP interface. It should flash once per second.</font></li>
+<blockquote>Note: If driving the RS-422 inputs on the Palisade single ended,
+i.e. using the Green and Gray connections only, does not work on all serial
+ports. Use of the Palisade NTP Synchronization Interface Module is recommended.</blockquote>
 
-<li>
-<font size=+1>Connect Palisade port A to the NTP host.</font></li>
+<blockquote>The 12 pin connector pinout definition:
+<br>Face the round 12 pin connector at the end of the cable, with the notch
+turned upwards.
+<br>Pin 1 is to the left of the notch. Pins 2 - 8 wrap around the bottom,
+counterclockwise to pin 9 on the right of the notch. Pin 10 is just below
+the notch. Pins 10 (top), 11 (bottom left) and 12 (bottom right) form a
+triangle in the center of the connector.</blockquote>
 
-<li>
-<font size=+1>Configure NTP and the serial I/O port on the host system.</font></li>
+<blockquote><a NAME="SIM"></a>Pinouts for the Palisade NTP host adapter
+(Trimble PN 37070) DB-25 M connector are as follows:</blockquote>
 
-<li>
-<font size=+1>Initially use fudge flag2 in <b>ntp.conf,</b> to disable
-event polling (see configuration).</font></li>
+<center><table BORDER=0 CELLSPACING=0 WIDTH="682" >
+<tr>
+<td VALIGN=CENTER WIDTH="12%">DB-25M</td>
 
-<li>
-<font size=+1>Run NTP in debug mode (-d -d), to observe Palisade_receive
-events.</font></li>
+<td VALIGN=CENTER WIDTH="31%">Conductor&nbsp;</td>
 
-<li>
-<font size=+1>The driver reports the tracking status of the receiver. A
-minumum of 4 sats. are required for self-survey to complete.</font></li>
+<td VALIGN=CENTER WIDTH="16%">Palisade</td>
 
-<li>
-<font size=+1>Remove fudge flag2 and restart <b>ntpd</b> in debug mode
-to observe event polling receive events.</font></li>
-</ol>
+<td VALIGN=CENTER WIDTH="41%">Description</td>
+</tr>
 
-<h4>
-&nbsp;#DEFINEs</h4>
-<font size=+1>The following constants are defined and used by the driver.
-These defines may be modified to improve performance or adapt to new operating
-systems.</font>
-<br>&nbsp;
-<table BORDER=0 CELLSPACING=0 WIDTH="757" >
 <tr>
-<td VALIGN=TOP WIDTH="29%"><b><font size=+1>Label</font></b></td>
+<td VALIGN=CENTER WIDTH="12%">1&nbsp;</td>
+
+<td VALIGN=CENTER WIDTH="31%">Red</td>
 
-<td VALIGN=CENTER WIDTH="49%"><font size=+1>Definition</font></td>
+<td VALIGN=CENTER WIDTH="16%">1</td>
 
-<td VALIGN=TOP WIDTH="23%"><font size=+1>Default Value</font></td>
+<td VALIGN=CENTER WIDTH="41%">Power</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="29%"><font size=+1>DEVICE</font></td>
+<td VALIGN=CENTER WIDTH="12%">7&nbsp;</td>
+
+<td VALIGN=CENTER WIDTH="31%">Black</td>
 
-<td VALIGN=CENTER WIDTH="49%"><font size=+1>The serial port device to be
-used by the driver.</font></td>
+<td VALIGN=CENTER WIDTH="16%">9</td>
 
-<td VALIGN=CENTER WIDTH="23%"><font size=+1>/dev/palisade<b><i>u</i></b></font></td>
+<td VALIGN=CENTER WIDTH="41%">Ground</td>
 </tr>
 
 <tr>
-<td VALIGN=TOP WIDTH="29%"><font size=+1>PRECISION</font></td>
+<td VALIGN=CENTER WIDTH="12%">9</td>
 
-<td VALIGN=CENTER WIDTH="49%"><font size=+1>Estimate of the accuracy of
-timestamps when using event poll.</font></td>
+<td VALIGN=CENTER WIDTH="31%">Black/White</td>
 
-<td VALIGN=CENTER WIDTH="23%"><font size=+1>10 microseconds</font></td>
+<td VALIGN=CENTER WIDTH="16%">12</td>
+
+<td VALIGN=CENTER WIDTH="41%">PPS -</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="29%"><font size=+1>CURRENT_UTC</font></td>
+<td VALIGN=CENTER WIDTH="12%">10&nbsp;</td>
+
+<td VALIGN=CENTER WIDTH="31%">Green</td>
 
-<td VALIGN=CENTER WIDTH="49%"><font size=+1>Valid GPS - UTC offset</font></td>
+<td VALIGN=CENTER WIDTH="16%">8</td>
 
-<td VALIGN=CENTER WIDTH="23%"><font size=+1>13</font></td>
+<td VALIGN=CENTER WIDTH="41%">Transmit Port A (T-)</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="29%"><font size=+1>SPEED232</font></td>
+<td VALIGN=CENTER WIDTH="12%">11&nbsp;</td>
 
-<td VALIGN=CENTER WIDTH="49%"><font size=+1>Host RS-232 baud rate</font></td>
+<td VALIGN=CENTER WIDTH="31%">Brown</td>
 
-<td VALIGN=CENTER WIDTH="23%"><font size=+1>B9600</font></td>
+<td VALIGN=CENTER WIDTH="16%">4</td>
+
+<td VALIGN=CENTER WIDTH="41%">Transmit Port B (T-)</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="29%"><font size=+1>TRMB_MINPOLL&nbsp;</font></td>
+<td VALIGN=CENTER WIDTH="12%">12&nbsp;</td>
+
+<td VALIGN=CENTER WIDTH="31%">Gray</td>
 
-<td VALIGN=CENTER WIDTH="49%"><font size=+1>Minimum polling interval</font></td>
+<td VALIGN=CENTER WIDTH="16%">7</td>
 
-<td VALIGN=CENTER WIDTH="23%"><font size=+1>5 (32 seconds)</font></td>
+<td VALIGN=CENTER WIDTH="41%">Receive Port A (R+)</td>
 </tr>
 
 <tr>
-<td VALIGN=CENTER WIDTH="29%"><font size=+1>TRMB_MAXPOLL</font></td>
+<td VALIGN=CENTER WIDTH="12%">13</td>
 
-<td VALIGN=CENTER WIDTH="49%"><font size=+1>Maximum interval between polls</font></td>
+<td VALIGN=CENTER WIDTH="31%">Orange</td>
 
-<td VALIGN=CENTER WIDTH="23%"><font size=+1>7 (128 seconds)</font></td>
+<td VALIGN=CENTER WIDTH="16%">3</td>
+
+<td VALIGN=CENTER WIDTH="41%">Receive Port B (R+)</td>
 </tr>
-</table>
 
-<h4>
-Fudge Factors</h4>
+<tr>
+<td VALIGN=CENTER WIDTH="12%">21</td>
 
-<dl>
-<dt>
-<tt>time1 <i>time</i></tt></dt>
+<td VALIGN=CENTER WIDTH="31%">Orange/White</td>
 
-<dd>
-<font size=+1>Specifies the time offset calibration factor, in seconds
-and fraction, with default 0.0.</font></dd>
-</dl>
+<td VALIGN=CENTER WIDTH="16%">11</td>
 
-<dir><font size=+1>When event capture is not being used, time1 should be
-set to 20 milliseconds to correct serial line and operating system delays
-incurred in capturing time stamps from the synchronous packets.</font></dir>
+<td VALIGN=CENTER WIDTH="41%">PPS +</td>
+</tr>
 
-<dl>
-<dt>
-<font size=+1>&nbsp;</font><tt>time2 <i>time</i></tt></dt>
+<tr>
+<td VALIGN=CENTER WIDTH="12%">22</td>
 
-<dd>
-<font size=+1>Not currently used by this driver.</font></dd>
+<td VALIGN=CENTER WIDTH="31%">Blue</td>
 
-<dt>
-<tt>stratum <i>number</i></tt></dt>
+<td VALIGN=CENTER WIDTH="16%">10</td>
 
-<dd>
-<font size=+1>Specifies the driver stratum, in decimal from 0 to 15, with
-default 0.</font></dd>
+<td VALIGN=CENTER WIDTH="41%">Transmit Port A (T+)</td>
+</tr>
 
-<dt>
-<tt>refid <i>string</i></tt></dt>
+<tr>
+<td VALIGN=CENTER WIDTH="12%">23</td>
 
-<dd>
-<font size=+1>Specifies the driver reference identifier, </font><b><tt>GPS</tt></b><font size=+1>.</font></dd>
+<td VALIGN=CENTER WIDTH="31%">Yellow</td>
 
-<dt>
-<tt>flag1 0 | 1</tt></dt>
+<td VALIGN=CENTER WIDTH="16%">5</td>
 
-<dd>
-<font size=+1>Not currently used by this driver.</font></dd>
+<td VALIGN=CENTER WIDTH="41%">Transmit Port B (T+)</td>
+</tr>
 
-<dt>
-<tt>flag2 0 | 1</tt></dt>
+<tr>
+<td VALIGN=CENTER WIDTH="12%">24</td>
 
-<dd>
-<font size=+1>When set to 1, driver does not use hardware event polling.
-Instead, the synchronous packets output at the start of each second by
-the Palisade receiver are used. If the ioctl() call triggering the event
-capture fails, the driver falls back to this mode automatically.</font></dd>
+<td VALIGN=CENTER WIDTH="31%">White</td>
 
-<dt>
-<tt>flag3 0 | 1</tt></dt>
+<td VALIGN=CENTER WIDTH="16%">6</td>
 
-<dd>
-<font size=+1>Not currently used by this driver.</font></dd>
+<td VALIGN=CENTER WIDTH="41%">Receive Port A (R-)</td>
+</tr>
 
-<dt>
-<font size=+1>&nbsp;</font><tt>flag4 0 | 1</tt></dt>
+<tr>
+<td VALIGN=CENTER WIDTH="12%">25</td>
 
-<dd>
-<font size=+1>Not currently used by this driver.</font></dd>
-</dl>
+<td VALIGN=CENTER WIDTH="31%">Violet</td>
+
+<td VALIGN=CENTER WIDTH="16%">2</td>
+
+<td VALIGN=CENTER WIDTH="41%">Receive Port B (R-)</td>
+</tr>
+</table></center>
 
-<h4>
-<font size=+1>Additional Information</font></h4>
-<font size=+1><a href="refclock.html">Reference Clock Drivers</a></font>
-<br><font size=+1><a href="http://www.trimble.com/">Trimble Navigation
-Ltd.</a></font>
 <p>
 <hr>
-<address>
-<font size=+1><a href="mailto:sven_dietrich@trimble.com">Sven-Thorsten
-Dietrich</a></font></address>
-
-<p><br><font size=+1>(last updated May 13, 1999)</font>
+<p>Questions or Comments:
+<br><a href="mailto:sven_dietrich@trimble.com">Sven Dietrich</a>
+<br><a href="http://www.trimble.com/">Trimble Navigation Ltd.</a>
+<p>(last updated July 29, 1999)
 <br>&nbsp;
 </body>
 </html>
index 856653c10532ef3e5a24329149c8bb2e24f81b7a..6fd7c84aa74dcebe95311f88ea6dc46ed6ae5015 100644 (file)
@@ -1,6 +1,29 @@
 -------------
 INTRODUCTION:
 -------------
+Last revision 27 July 1999     Version 4.0.95.
+
+This version compiles under WINNT with Visual C 6.0.
+
+Greg Brackley and Sven Dietrich 
+
+Significant changes:
+-Visual Studio v6.0 support
+-Winsock 2.0 support
+-Use of I/O completion ports for sockets and comm port I/O
+-Removed the use of multimedia timers (from ntpd, others need removing)
+-Use of waitable timers (with user mode APC) and performance counters to fake getting a better time
+-Trimble Palisade NTP Reference Clock support
+-General cleanup, prototyping of functions
+-Moved receiver buffer code to a separate module (removed unused members from the recvbuff struct)
+-Moved io signal code to a separate module
+
+Compiling Instructions:
+1. Requires Perl to be installed, and the Perl environment variable to be set correctly
+2. Open the .\ports\winnt\ntp.dsw
+3. Batch build of all debug projects compile
+
+
 Last revision:  20-Oct-1996
 
 This version corrects problems with building the XNTP 
index f4ff585b94a86b1951c416ef89926054f6a211a4..9c3576226f75fdef0fba2719f4b86bd0a85c7cc9 100644 (file)
-<HTML>
-<HEAD>
-   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-   <META NAME="GENERATOR" CONTENT="Mozilla/4.01 [en] (Win95; I) [Netscape]">
-   <TITLE>ntpd - Network Time Protocol (NTP) daemon
-</TITLE>
-</HEAD>
-<BODY>
-
-<H3>
-<TT>ntpd</TT> - Network Time Protocol (NTP) daemon</H3>
-
-<HR>
-<H4>
-Synopsis</H4>
+<HTML><HEAD><TITLE>
+<TT>ntpd</TT> - Network Time Protocol (NTP) daemon
+</TITLE></HEAD><BODY><H3>
+<TT>ntpd</TT> - Network Time Protocol (NTP) daemon
+</H3><HR>
+
+<H4>Synopsis</H4>
+
 <TT>ntpd [ -aAbdm ] [ -c <I>conffile</I> ] [ -f <I>driftfile</I> ] [ -k
-<I>keyfile</I> ] [ -l <I>logfile</I> ] [ -p <I>pidfile</I> ] [ -r <I>broadcastdelay</I>
-] [ -s <I>statsdir</I> ] [ -t <I>key</I> ] [ -v <I>variable</I> ] [ -V
+<I>keyfile</I> ] [ -l <I>logfile</I> ] [ -p <I>pidfile</I> ] [ -r
+<I>broadcastdelay</I> ] [ -s <I>statsdir</I> ] [ -t <I>key</I> ] [ -v
+<I>variable</I> ] [ -V
 <I>variable</I> ]</TT>
-<H4>
-Description</H4>
+
+<H4>Description</H4>
+
 <TT>ntpd</TT> is an operating system daemon which sets and maintains the
 system time-of-day in synchronism with Internet standard time servers.
 <TT>ntpd</TT> is a complete implementation of the Network Time Protocol
-(NTP) version 4, but also retains compatibility with version 3, as defined
-by RFC-1305, and version 1 and 2, as defined by RFC-1059 and RFC-1119,
-respectively. <TT>ntpd</TT> does most computations in 64-bit floating point
-arithmetic and does relatively clumsy 64-bit fixed point operations only
-when necessary to preserve the unltimate precision, about 232 picoseconds.
-While the ultimate precision, is not achievable with ordinary workstations
-and networks of today, it may be required with future nanosecond CPU clocks
-and gigabit LANs.
+(NTP) version 4, but also retains compatibility with version 3, as
+defined by RFC-1305, and version 1 and 2, as defined by RFC-1059 and
+RFC-1119, respectively. <TT>ntpd</TT> does most computations in 64-bit
+floating point arithmetic and does relatively clumsy 64-bit fixed point
+operations only when necessary to preserve the unltimate precision,
+about 232 picoseconds. While the ultimate precision, is not achievable
+with ordinary workstations and networks of today, it may be required
+with future nanosecond CPU clocks and gigabit LANs.
 
 <P>The daemon can operate in any of several modes, including symmetric
-active/passive, client/server broadcast/multicast and manycast. A broadcast/multicast
-or manycast client can discover remote servers, compute server-client propagation
-delay correction factors and configure itself automatically. This makes
-it possible to deploy a fleet of workstations without specifying configuration
-details specific to the local environment.
+active/passive, client/server broadcast/multicast and manycast. A
+broadcast/multicast or manycast client can discover remote servers,
+compute server-client propagation delay correction factors and configure
+itself automatically. This makes it possible to deploy a fleet of
+workstations without specifying configuration details specific to the
+local environment.
 
 <P>Ordinarily, <TT>ntpd</TT> reads the <TT>ntp.conf</TT> configuration
 file at startup time in order to determine the synchronization sources
 and operating modes. It is also possible to specify a working, although
 limited, configuration entirely on the command line, obviating the need
 for a configuration file. This may be particularly appropriate when the
-local host is to be configured as a broadcast/multicast client or manycast
-client, with all peers being determined by listening to broadcasts at run
-time.
-
-<P>Various internal <TT>ntpd</TT> variables can be displayed and configuration
-options altered while the daemon is running using the <TT><A HREF="ntpq.htm">ntpq</A></TT>
-and <TT><A HREF="ntpdc.htm">ntpdc</A></TT> utility programs.
-
-<P>When <TT>ntpd</TT> starts it looks at the value of <TT>umask</TT>, and
-if it's zero <TT>ntpd</TT> will set the <TT>umask</TT> to <TT>022</TT>.
-<H4>
-Command Line Options</H4>
-
-<DL>
-<DT>
-<TT>-a</TT></DT>
-
-<DD>
-Enable authentication mode (default).</DD>
+local host is to be configured as a broadcast/multicast client or
+manycast client, with all peers being determined by listening to
+broadcasts at run time.
 
-<DD>
-</DD>
+<P>Various internal <TT>ntpd</TT> variables can be displayed and
+configuration options altered while the daemon is running using the
+<TT><A HREF="ntpq.htm">ntpq</A></TT> and <TT><A
+HREF="ntpdc.htm">ntpdc</A></TT> utility programs.
 
-<DT>
-<TT>-A</TT></DT>
+<P>When <TT>ntpd</TT> starts it looks at the value of <TT>umask</TT>,
+and if it's zero <TT>ntpd</TT> will set the <TT>umask</TT> to
+<TT>022</TT>.
 
-<DD>
-Disable authentication mode.</DD>
+<H4>Command Line Options</H4>
 
-<DD>
-</DD>
-
-<DT>
-<TT>-b</TT></DT>
-
-<DD>
-Synchronize using NTP broadcast messages.</DD>
+<DL>
 
-<DD>
-</DD>
+<DT><TT>-a</TT></DT>
+<DD>Enable authentication mode (default).</DD>
 
-<DT>
-<TT>-c <I>conffile</I></TT></DT>
+<DT><TT>-A</TT></DT>
+<DD>Disable authentication mode.</DD>
 
-<DD>
-Specify the name and path of the configuration file.</DD>
+<DT><TT>-b</TT></DT>
+<DD>Synchronize using NTP broadcast messages.</DD>
 
-<DD>
-</DD>
+<DT><TT>-c <I>conffile</I></TT></DT>
+<DD>Specify the name and path of the configuration file.</DD>
 
-<DT>
-<TT>-d</TT></DT>
+<DT><TT>-d</TT></DT>
+<DD>Specify debugging mode. This flag may occur multiple times, with
+each occurrence indicating greater detail of display.</DD>
 
-<DD>
-Specify debugging mode. This flag may occur multiple times, with each occurrence
-indicating greater detail of display.</DD>
+<DT><TT>-D <I>level</I></TT></DT>
+<DD>Specify debugging level directly.</DD>
 
-<DD>
-</DD>
+<DT><TT>-f <I>driftfile</I></TT></DT>
+<DD>Specify the name and path of the drift file.</DD>
 
-<DT>
-<TT>-f <I>driftfile</I></TT></DT>
+<DT><TT>-g</TT></DT>
+<DD>Normally, the daemon exits if the offset exceeds a 1000-s sanity
+limit. This option overrides this limit and allows the time to be set to
+any value without restriction.</DD>
 
-<DD>
-Specify the name and path of the drift file.</DD>
+<DT><TT>-k <I>keyfile</I></TT></DT>
+<DD>Specify the name and path of the file containing the NTP
+authentication keys.</DD>
 
-<DD>
-</DD>
+<DT><TT>-l <I>logfile</I></TT></DT>
+<DD>Specify the name and path of the log file. The default is the system
+log facility.</DD>
 
-<DT>
-<TT>-k <I>keyfile</I></TT></DT>
+<DT><TT>-m</TT></DT>
+<DD>Synchronize using NTP multicast messages on the IP multicast group
+address 224.0.1.1 (requires multicast kernel).</DD>
 
-<DD>
-Specify the name and path of the file containing the NTP authentication
-keys.</DD>
+<DT><TT>-p <I>pidfile</I></TT></DT>
+<DD>Specify the name and path to record the daemon's process ID.</DD>
 
-<DD>
-</DD>
+<DT><TT>-P</TT></DT>
+<DD>Override the priority limit set by the operating system. Not
+recommended for sissies.</DD>
 
-<DT>
-<TT>-l <I>logfile</I></TT></DT>
+<DT><TT>-r <I>broadcastdelay</I></TT></DT>
+<DD>Specify the default propagation delay from the broadcast/multicast
+server and this computer. This is necessary only if the delay cannot be
+computed automatically by the protocol.</DD>
 
-<DD>
-Specify the name and path of the log file. The default is the system log
+<DT><TT>-s <I>statsdir</I></TT></DT>
+<DD>Specify the directory path for files created by the statistics
 facility.</DD>
 
-<DD>
-</DD>
-
-<DT>
-<TT>-m</TT></DT>
-
-<DD>
-Synchronize using NTP multicast messages on the IP multicast group address
-224.0.1.1 (requires multicast kernel).</DD>
-
-<DD>
-</DD>
-
-<DT>
-<TT>-p <I>pidfile</I></TT></DT>
-
-<DD>
-Specify the name and path to record the daemon's process ID.</DD>
-
-<DD>
-</DD>
+<DT><TT>-t <I>key</I></TT></DT>
+<DD>Add a key number to the trusted key list.</DD>
 
-<DT>
-<TT>-r <I>broadcastdelay</I></TT></DT>
+<DT><TT>-v <I>variable</I></TT></DT>
+<DT><TT>-V <I>variable</I></TT></DT>
+<DD>Add a system variable listed by default.</DD>
 
-<DD>
-Specify the default propagation delay from the broadcast/multicast server
-and this computer. This is necessary only if the delay cannot be computed
-automatically by the protocol.</DD>
+<DT><TT>-x</TT></DT>
+<DD>Ordinarily, if the time is to be adjusted more than 128 ms, it is
+stepped, not gradually slewed. This option forces the time to be slewed
+in all cases. Note: Since the slew rate is limited to 0.5 ms/s, each
+second of adjustment requires an amortization interval of 2000 s. Thus,
+an adjustment of many seconds can take hours or days to amortize.</DD>
 
-<DD>
-</DD>
-
-<DT>
-<TT>-s <I>statsdir</I></TT></DT>
-
-<DD>
-Specify the directory path for files created by the statistics facility.</DD>
-
-<DD>
-</DD>
-
-<DT>
-<TT>-t <I>key</I></TT></DT>
-
-<DD>
-Add a key number to the trusted key list.</DD>
-
-<DD>
-</DD>
-
-<DT>
-<TT>-v <I>variable</I></TT></DT>
-
-<DD>
-Add a system variable.</DD>
-
-<DD>
-</DD>
-
-<DT>
-<TT>-V <I>variable</I></TT></DT>
-
-<DD>
-Add a system variable listed by default.</DD>
 </DL>
 
-<H4>
-The Configuration File</H4>
+<H4>The Configuration File</H4>
+
 The <TT>ntpd</TT> configuration file is read at initial startup in order
-to specify the synchronization sources, modes and other related information.
-Usually, it is installed in the <TT>/etc</TT> directory, but could be installed
-elsewhere (see the <TT>-c <I>conffile</I></TT> command line option). The
-file format is similar to other Unix configuration files - comments begin
-with a <TT>#</TT> character and extend to the end of the line; blank lines
-are ignored. Configuration commands consist of an initial keyword followed
-by a list of arguments, some of which may be optional, separated by whitespace.
-Commands may not be continued over multiple lines. Arguments may be host
-names, host addresses written in numeric, dotted-quad form, integers, floating
-point numbers (when specifying times in seconds) and text strings. Optional
-arguments are delimited by <TT>[ ]</TT> in the following descriptions,
-while alternatives are separated by <TT>|</TT>. The notation <TT>[ ...
-]</TT> means an optional, indefinite repetition of the last item before
-the <TT>[ ... ]</TT>.
+to specify the synchronization sources, modes and other related
+information. Usually, it is installed in the <TT>/etc</TT> directory,
+but could be installed elsewhere (see the <TT>-c <I>conffile</I></TT>
+command line option). The file format is similar to other Unix
+configuration files - comments begin with a <TT>#</TT> character and
+extend to the end of the line; blank lines are ignored. Configuration
+commands consist of an initial keyword followed by a list of arguments,
+some of which may be optional, separated by whitespace. Commands may not
+be continued over multiple lines. Arguments may be host names, host
+addresses written in numeric, dotted-quad form, integers, floating
+point numbers (when specifying times in seconds) and text strings.
+Optional arguments are delimited by <TT>[ ]</TT> in the following
+descriptions, while alternatives are separated by <TT>|</TT>. The
+notation <TT>[ ... ]</TT> means an optional, indefinite repetition of
+the last item before the <TT>[ ... ]</TT>.
 
 <P>See the following pages for configuration and control options. While
-there is a rich set of options available, the only required option is one
-or more <TT>server, peer,</TT> <TT>broadcast</TT> or <TT>manycastclient
-</TT>commands described in the Configuration Options page. The <A HREF="notes.htm">Notes
-on Configuring NTP and Setting up a NTP Subnet </A>page contains an extended
-discussion of these options.
+there is a rich set of options available, the only required option is
+one or more <TT>server, peer,</TT> <TT>broadcast</TT> or
+<TT>manycastclient </TT>commands described in the Configuration Options
+page. The <A HREF="notes.htm">Notes on Configuring NTP and Setting up a
+NTP Subnet </A>page contains an extended discussion of these options.
 
 <P><A HREF="confopt.htm">Configuration Options</A>
 <BR><A HREF="authopt.htm">Authentication Options</A>
@@ -227,21 +159,21 @@ discussion of these options.
 <BR><A HREF="accopt.htm">Access Control Options</A>
 <BR><A HREF="clockopt.htm">Reference Clock Options</A>
 <BR><A HREF="miscopt.htm">Miscellaneous Options</A>
-<H4>
-Files</H4>
+
+<H4>Files</H4>
+
 <TT>/etc/ntp.conf</TT> - the default name of the configuration file
 <BR><TT>/etc/ntp.drift</TT> - the default name of the drift file
 <BR><TT>/etc/ntp.keys</TT> - the default name of the key file
-<H4>
-Bugs</H4>
-<TT>ntpd</TT> has gotten rather fat. While not huge, it has gotten larger
-than might be desireable for an elevated-priority daemon running on a workstation,
-particularly since many of the fancy features which consume the space were
-designed more with a busy primary server, rather than a high stratum workstation,
-in mind.&nbsp;
-<HR>
-<ADDRESS>
-David L. Mills (mills@udel.edu)</ADDRESS>
-
-</BODY>
-</HTML>
+
+<H4>Bugs</H4>
+
+<TT>ntpd</TT> has gotten rather fat. While not huge, it has gotten
+larger than might be desireable for an elevated-priority daemon running
+on a workstation, particularly since many of the fancy features which
+consume the space were designed more with a busy primary server, rather
+than a high stratum workstation, in mind.
+
+<hr><a href=index.htm><img align=left src=pic/home.gif></a><address><a
+href=mailto:mills@udel.edu> David L. Mills &lt;mills@udel.edu&gt;</a>
+</address></a></body></html>
index f3462103e106b74a70679c451c4aee3a14ab1538..00b15f4019f5be77585fcbb56574759125143595 100644 (file)
@@ -99,7 +99,7 @@ Receiver
 (<TT>MSF_ARCRON</TT>)
 <BR><A HREF=driver28.htm>Type 28</A> Shared memory driver
 (<TT>SHM</TT>)
-<BR>Type 29 Trimble Navigation Palisade GPS (<TT>GPS_PALISADE</TT>)
+<BR><A HREF=driver29.htm>Type 29</A> Trimble Navigation Palisade GPS (<TT>GPS_PALISADE</TT>)
 <BR><A HREF=driver30.htm>Type 30 Motorola UT Oncore GPS
 (<TT>GPS_ONCORE</TT>)
 <BR>Type 31 Rockwell Jupiter GPS (<TT>GPS_JUPITER</TT>)
index 1c2d37dcfd0fb6e4070bf233e6bbc8c827d6c403..0a6e7d27c7fd930733379c285506eab386820a55 100644 (file)
@@ -270,7 +270,7 @@ create_sockets(
                if ((ifap->ifa_flags & IFF_UP) == 0)
                    continue;
 
-               if (ifa->ifa_flags & IFF_LOOPBACK)
+               if (ifap->ifa_flags & IFF_LOOPBACK)
                {
                        sin = (struct sockaddr_in *)ifap->ifa_addr;
                        if (ntohl(sin->sin_addr.s_addr) != 0x7f000001)