* 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
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
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
+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
-* 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)
/* 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
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; }
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
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
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
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
{ 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
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
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
{ 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()
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
*) 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
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()
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
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
{ 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()
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
*) 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
ac_cv_sizeof_int=4
else
cat > conftest.$ac_ext <<EOF
-#line 4444 "configure"
+#line 4513 "configure"
#include "confdefs.h"
#include <stdio.h>
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
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
{ 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()
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
*) 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
ac_cv_sizeof_long=4
else
cat > conftest.$ac_ext <<EOF
-#line 4534 "configure"
+#line 4603 "configure"
#include "confdefs.h"
#include <stdio.h>
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
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
;;
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
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. */
; 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
*) 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. */
; 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
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. */
; 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
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. */
; 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
*) 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. */
; 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
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. */
; 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
*) 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. */
; 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
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. */
; 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
*) 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. */
; 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
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. */
; 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
*) 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. */
; 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
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. */
; 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
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. */
; 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
*) 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. */
; 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
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. */
; 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
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. */
; 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
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. */
; 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
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. */
; 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
*) 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. */
; 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
*) 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. */
; 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
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. */
; 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
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() {
; 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
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
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
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"
; 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
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>
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
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
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
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
; 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
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
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
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
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
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
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
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
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
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=''
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
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
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
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
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
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
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
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
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
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
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
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"
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"
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
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
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
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
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
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)
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
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
;;
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
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
# 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
# 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
# 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
# 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*
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;
# 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"
#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"
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
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"
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"
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"
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
# 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
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"
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"
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"
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"
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"
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"
# 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"
# 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
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"
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"
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"
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"
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"
# 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"
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"
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"
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"
# 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"
# 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
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"
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"
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"
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"
# 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"
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"
# 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
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"
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"
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"
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"
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"
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"
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
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"
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"
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"
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"
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"
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"
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
#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
;;
<LI>
<A HREF="mailto: Ulrich.Windl@rz.uni-regensburg.de">Ulrich Windl <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 <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 <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
<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>
-<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. 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: </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>
-<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>
-<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) </font></td>
+<td VALIGN=CENTER WIDTH="23%">i386 (PC) </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) </font></td>
+<td>i386 (PC) </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> <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.
+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>
-<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 <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) 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 <a NAME="Connection"></a>Connection</font></h3>
+The Palisade is equipped with dual (A & 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> </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. Valid refclock unit numbers are 0 -
+3.
+<p>The user is expected to provide a symbolic link to an available serial
+port device. 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>
-<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) 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 & 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>
-<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>
+<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> </font></td>
+<li>
+Connect Palisade's port A to the NTP host.</li>
-<td VALIGN=CENTER WIDTH="4%"><font size=+1> </font></td>
+<li>
+Configure NTP and the serial I/O port on the host system.</li>
-<td VALIGN=CENTER WIDTH="11%"><font size=+1> </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> </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> </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 </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><--</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>
+<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-) & 10 (T+)</font></td>
+<td>Default Value</td>
</tr>
<tr>
-<td VALIGN=CENTER WIDTH="19%"><font size=+1>Transmit Data </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><--</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> </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><--</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-) & 7 (R+)</font></td>
+<td>B9600</td>
</tr>
<tr>
-<td VALIGN=CENTER WIDTH="19%"><font size=+1>Signal Ground</font></td>
+<td>TRMB_MINPOLL </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><--</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> </font></td>
+<td>Byte</td>
-<td VALIGN=CENTER WIDTH="8%"><font size=+1> </font></td>
+<td>Item</td>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1> </font></td>
+<td>Type</td>
-<td VALIGN=CENTER WIDTH="4%"><font size=+1> </font></td>
+<td>Meaning</td>
+</tr>
-<td VALIGN=CENTER WIDTH="11%"><font size=+1> </font></td>
+<tr>
+<td>0</td>
-<td VALIGN=CENTER WIDTH="19%"><font size=+1> </font></td>
+<td>Sub-Packet ID</td>
-<td VALIGN=CENTER WIDTH="29%"><font size=+1> </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> </font></td>
+<td>INTEGER</td>
-<td VALIGN=CENTER WIDTH="9%"><font size=+1> </font></td>
+<td>External event count recorded (0 = PPS)</td>
+</tr>
-<td VALIGN=CENTER WIDTH="4%"><font size=+1> </font></td>
+<tr>
+<td>3 - 10</td>
-<td VALIGN=CENTER WIDTH="11%"><font size=+1> </font></td>
+<td>Fractional Second</td>
-<td VALIGN=CENTER WIDTH="19%"><font size=+1> </font></td>
+<td>DOUBLE</td>
-<td VALIGN=CENTER WIDTH="29%"><font size=+1> </font></td>
+<td>Time elapsed in current second (s)</td>
</tr>
<tr>
-<td VALIGN=CENTER WIDTH="19%"><font size=+1>Receive Data </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><--</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-) & 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><--</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-) & 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><--</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> </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><--</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>
-<br>
-<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 </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 </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: (1) UTC Time is available
+<br>Bits 1 - 3: Undefined
+<br>Bit 4: (1) Leap Scheduled: Leap second pending asserted by GPS
+control segment.
+<br>Bit 5: (1) Leap Pending: set 24 hours before, until beginning
+of leap second.
+<br>Bit 6: (1) GPS Leap Warning: 6 hours before until 6 hours after
+leap event
+<br>Bit 7: (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 </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 </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 </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 </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 </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 </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>
-<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.
-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. 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>
-<p><b><font size=+1>Packet 8F-AD (Primary NTP Packet)</font></b>
-<br>
-<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 </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:
+<br>0: Horizontal (2D)
+<br>1: Full Position (3D)
+<br>2: Single Satellite (0D)
+<br>3: Automatic (2D / 3D)
+<br>4: DGPS reference
+<br>5: Clock hold (2D)
+<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>
-<p><font size=+1>Leap Second Flag Definition:</font>
-<br><font size=+1>Bit 0: (1) UTC Time is available</font>
-<br><font size=+1>Bits 1 - 3: Undefined</font>
-<br><font size=+1>Bit 4: (1) Leap Scheduled: Leap second pending
-asserted by GPS control segment.</font>
-<br><font size=+1>Bit 5: (1) Leap Pending: set 24 hours before, until
-beginning of leap second.</font>
-<br><font size=+1>Bit 6: (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>
-<p><font size=+1>Tracking Status Flag Definitions:</font>
-<br>
-<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>
-<p><b><font size=+1>Packet 8F-0B (Comprehensive Timing Packet)</font></b>
<br>
-<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 </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 </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><--></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-) & 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><--></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: </font>
-<br><font size=+1>0: Horizontal (2D) </font>
-<br><font size=+1>1: Full Position (3D) </font>
-<br><font size=+1>2: Single Satellite (0D) </font>
-<br><font size=+1>3: Automatic (2D / 3D) </font>
-<br><font size=+1>4: DGPS reference </font>
-<br><font size=+1>5: Clock hold (2D) </font>
-<br><font size=+1>6: Over determined Clock</font></td>
+<td>6 (R-) & 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><--></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 </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><--></td>
+
+<td>Brown</td>
+
+<td>Brown / Yellow</td>
+
+<td>4 (T-) & 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><--></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-) & 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><--></td>
-<h4>
- </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 </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>
- #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>
-<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 </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 </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 </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 </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 </font></td>
+<td VALIGN=CENTER WIDTH="12%">12 </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> </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> </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>
</body>
</html>
-------------
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
-<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>
<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.
-<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 <mills@udel.edu></a>
+</address></a></body></html>
(<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>)
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)