MFhead@r344996
This commit is contained in:
commit
ff511f1f39
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/projects/import-googletest-1.8.1/; revision=344999
42
UPDATING
42
UPDATING
@ -133,8 +133,8 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW:
|
||||
|
||||
Other than KPI chasing, drm-legacy-kmod will not be updated. As outlined
|
||||
elsewhere, the drm and drm2 modules will be eliminated from the src base
|
||||
soon (with a limited exception for arm). Please update to the package asap
|
||||
and report any issues to x11@freebsd.org.
|
||||
soon (with a limited exception for arm). Please update to the package
|
||||
asap and report any issues to x11@freebsd.org.
|
||||
|
||||
Generally, anybody using the drm*-kmod packages should add
|
||||
WITHOUT_DRM_MODULE=t and WITHOUT_DRM2_MODULE=t to avoid nasty
|
||||
@ -309,7 +309,8 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW:
|
||||
20180628:
|
||||
r335753 introduced a new quoting method. However, etc/devd/devmatch.conf
|
||||
needed to be changed to work with it. This change was made with r335763
|
||||
and requires a mergemaster / etcupdate / etc to update the installed file.
|
||||
and requires a mergemaster / etcupdate / etc to update the installed
|
||||
file.
|
||||
|
||||
20180612:
|
||||
r334930 changed the interface between the NFS modules, so they all
|
||||
@ -450,8 +451,9 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW:
|
||||
|
||||
20180211:
|
||||
devmatch functionality has been turned on in devd. It will automatically
|
||||
load drivers for unattached devices. This may cause unexpected drivers to
|
||||
be loaded. Please report any problems to current@ and imp@freebsd.org.
|
||||
load drivers for unattached devices. This may cause unexpected drivers
|
||||
to be loaded. Please report any problems to current@ and
|
||||
imp@freebsd.org.
|
||||
|
||||
20180114:
|
||||
Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
|
||||
@ -469,9 +471,9 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW:
|
||||
|
||||
20180110:
|
||||
On i386, pmtimer has been removed. Its functionality has been folded
|
||||
into apm. It was a no-op on ACPI in current for a while now (but was still
|
||||
needed on i386 in FreeBSD 11 and earlier). Users may need to remove it
|
||||
from kernel config files.
|
||||
into apm. It was a no-op on ACPI in current for a while now (but was
|
||||
still needed on i386 in FreeBSD 11 and earlier). Users may need to
|
||||
remove it from kernel config files.
|
||||
|
||||
20180104:
|
||||
The use of RSS hash from the network card aka flowid has been
|
||||
@ -712,11 +714,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW:
|
||||
system will be running the ino64 kernel with the existing world).
|
||||
|
||||
For the safest in-place upgrade begin by removing previous build
|
||||
artifacts via "rm -rf /usr/obj/*". Then, carefully follow the
|
||||
full procedure documented below under the heading "To rebuild
|
||||
everything and install it on the current system." Specifically,
|
||||
a reboot is required after installing the new kernel before
|
||||
installing world.
|
||||
artifacts via "rm -rf /usr/obj/*". Then, carefully follow the full
|
||||
procedure documented below under the heading "To rebuild everything and
|
||||
install it on the current system." Specifically, a reboot is required
|
||||
after installing the new kernel before installing world. While an
|
||||
installworld normally works by accident from multiuser after rebooting
|
||||
the proper kernel, there are many cases where this will fail across this
|
||||
upgrade and installworld from single user is required.
|
||||
|
||||
20170424:
|
||||
The NATM framework including the en(4), fatm(4), hatm(4), and
|
||||
@ -813,7 +817,8 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW:
|
||||
20170109:
|
||||
The igb(4), em(4) and lem(4) ethernet drivers are now implemented via
|
||||
IFLIB. If you have a custom kernel configuration that excludes em(4)
|
||||
but you use igb(4), you need to re-add em(4) to your custom configuration.
|
||||
but you use igb(4), you need to re-add em(4) to your custom
|
||||
configuration.
|
||||
|
||||
20161217:
|
||||
Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1.
|
||||
@ -1901,7 +1906,8 @@ COMMON ITEMS:
|
||||
fsck -p
|
||||
mount -u /
|
||||
mount -a
|
||||
cd src
|
||||
sh /etc/rc.d/zfs start # mount zfs filesystem, if needed
|
||||
cd src # full path to source
|
||||
adjkerntz -i # if CMOS is wall time
|
||||
Also, when doing a major release upgrade, it is required that
|
||||
you boot into single user mode to do the installworld.
|
||||
@ -1931,10 +1937,12 @@ COMMON ITEMS:
|
||||
option for existing binaries (e.g. COMPAT_FREEBSD11 to run 11.x
|
||||
binaries). Failure to do so may leave you with a system that is
|
||||
hard to boot to recover. A GENERIC kernel will include suitable
|
||||
compatibility options to run binaries from older branches.
|
||||
compatibility options to run binaries from supported older branches.
|
||||
|
||||
Make sure that you merge any new devices from GENERIC since the
|
||||
last time you updated your kernel config file.
|
||||
last time you updated your kernel config file. Options also
|
||||
change over time, so you may need to adjust your custom kernels
|
||||
for these as well.
|
||||
|
||||
[9] If CPUTYPE is defined in your /etc/make.conf, make sure to use the
|
||||
"?=" instead of the "=" assignment operator, so that buildworld can
|
||||
|
@ -259,7 +259,7 @@ If no value is supplied for
|
||||
each permission bit specified in
|
||||
.Ar perm ,
|
||||
for which the corresponding bit in the file mode creation mask
|
||||
is clear, is cleared.
|
||||
is set, is cleared.
|
||||
Otherwise, the mode bits represented by the specified
|
||||
.Ar who
|
||||
and
|
||||
|
@ -12,9 +12,9 @@ check() {
|
||||
XXX=-9223372036854775808
|
||||
check "XXX" -9223372036854775808
|
||||
check "XXX - 1" 9223372036854775807
|
||||
check $(($XXX - 1)) 9223372036854775807
|
||||
check $(($XXX - 2)) 9223372036854775806
|
||||
check $((0x8000000000000000 == 0x7fffffffffffffff)) \
|
||||
check "$XXX - 1" 9223372036854775807
|
||||
check "$XXX - 2" 9223372036854775806
|
||||
check "0x8000000000000000 == 0x7fffffffffffffff" \
|
||||
0
|
||||
|
||||
exit $((failures != 0))
|
||||
|
@ -20,6 +20,7 @@ along with this file; see the file COPYING. If not, write to the Free
|
||||
Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <inttypes.h>
|
||||
#include "sysdep.h"
|
||||
#include "dis-asm.h"
|
||||
#include "opcode/ppc.h"
|
||||
@ -97,7 +98,7 @@ powerpc_dialect (struct disassemble_info *info)
|
||||
dialect |= PPC_OPCODE_64;
|
||||
}
|
||||
|
||||
info->private_data = (char *) 0 + dialect;
|
||||
info->private_data = (void *)(uintptr_t)dialect;
|
||||
return dialect;
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,5 @@
|
||||
/*-
|
||||
* Copyright (c) 2018 John Baldwin
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
|
@ -1677,71 +1677,73 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
|
||||
// Gather ops
|
||||
let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
// NOTE: These can't be ArgMemOnly because you can put the address completely
|
||||
// in the index register.
|
||||
def int_x86_avx2_gather_d_pd : GCCBuiltin<"__builtin_ia32_gatherd_pd">,
|
||||
Intrinsic<[llvm_v2f64_ty],
|
||||
[llvm_v2f64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v2f64_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_d_pd_256 : GCCBuiltin<"__builtin_ia32_gatherd_pd256">,
|
||||
Intrinsic<[llvm_v4f64_ty],
|
||||
[llvm_v4f64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v4f64_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_q_pd : GCCBuiltin<"__builtin_ia32_gatherq_pd">,
|
||||
Intrinsic<[llvm_v2f64_ty],
|
||||
[llvm_v2f64_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_v2f64_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_q_pd_256 : GCCBuiltin<"__builtin_ia32_gatherq_pd256">,
|
||||
Intrinsic<[llvm_v4f64_ty],
|
||||
[llvm_v4f64_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_v4f64_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_d_ps : GCCBuiltin<"__builtin_ia32_gatherd_ps">,
|
||||
Intrinsic<[llvm_v4f32_ty],
|
||||
[llvm_v4f32_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v4f32_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_d_ps_256 : GCCBuiltin<"__builtin_ia32_gatherd_ps256">,
|
||||
Intrinsic<[llvm_v8f32_ty],
|
||||
[llvm_v8f32_ty, llvm_ptr_ty, llvm_v8i32_ty, llvm_v8f32_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_q_ps : GCCBuiltin<"__builtin_ia32_gatherq_ps">,
|
||||
Intrinsic<[llvm_v4f32_ty],
|
||||
[llvm_v4f32_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_v4f32_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_q_ps_256 : GCCBuiltin<"__builtin_ia32_gatherq_ps256">,
|
||||
Intrinsic<[llvm_v4f32_ty],
|
||||
[llvm_v4f32_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_v4f32_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx2_gather_d_q : GCCBuiltin<"__builtin_ia32_gatherd_q">,
|
||||
Intrinsic<[llvm_v2i64_ty],
|
||||
[llvm_v2i64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v2i64_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_d_q_256 : GCCBuiltin<"__builtin_ia32_gatherd_q256">,
|
||||
Intrinsic<[llvm_v4i64_ty],
|
||||
[llvm_v4i64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v4i64_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_q_q : GCCBuiltin<"__builtin_ia32_gatherq_q">,
|
||||
Intrinsic<[llvm_v2i64_ty],
|
||||
[llvm_v2i64_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_q_q_256 : GCCBuiltin<"__builtin_ia32_gatherq_q256">,
|
||||
Intrinsic<[llvm_v4i64_ty],
|
||||
[llvm_v4i64_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_d_d : GCCBuiltin<"__builtin_ia32_gatherd_d">,
|
||||
Intrinsic<[llvm_v4i32_ty],
|
||||
[llvm_v4i32_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_d_d_256 : GCCBuiltin<"__builtin_ia32_gatherd_d256">,
|
||||
Intrinsic<[llvm_v8i32_ty],
|
||||
[llvm_v8i32_ty, llvm_ptr_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_q_d : GCCBuiltin<"__builtin_ia32_gatherq_d">,
|
||||
Intrinsic<[llvm_v4i32_ty],
|
||||
[llvm_v4i32_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_v4i32_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_q_d_256 : GCCBuiltin<"__builtin_ia32_gatherq_d256">,
|
||||
Intrinsic<[llvm_v4i32_ty],
|
||||
[llvm_v4i32_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_v4i32_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
}
|
||||
|
||||
// Misc.
|
||||
@ -3564,530 +3566,542 @@ let TargetPrefix = "x86" in {
|
||||
// Gather and Scatter ops
|
||||
let TargetPrefix = "x86" in {
|
||||
// NOTE: These are deprecated in favor of the versions that take a vXi1 mask.
|
||||
// NOTE: These can't be ArgMemOnly because you can put the address completely
|
||||
// in the index register.
|
||||
def int_x86_avx512_gather_dpd_512 : GCCBuiltin<"__builtin_ia32_gathersiv8df">,
|
||||
Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_ptr_ty,
|
||||
llvm_v8i32_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_gather_dps_512 : GCCBuiltin<"__builtin_ia32_gathersiv16sf">,
|
||||
Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_ptr_ty,
|
||||
llvm_v16i32_ty, llvm_i16_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_gather_qpd_512 : GCCBuiltin<"__builtin_ia32_gatherdiv8df">,
|
||||
Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_ptr_ty,
|
||||
llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_gather_qps_512 : GCCBuiltin<"__builtin_ia32_gatherdiv16sf">,
|
||||
Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_ptr_ty,
|
||||
llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
|
||||
def int_x86_avx512_gather_dpq_512 : GCCBuiltin<"__builtin_ia32_gathersiv8di">,
|
||||
Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_ptr_ty,
|
||||
llvm_v8i32_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_gather_dpi_512 : GCCBuiltin<"__builtin_ia32_gathersiv16si">,
|
||||
Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_ptr_ty,
|
||||
llvm_v16i32_ty, llvm_i16_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_gather_qpq_512 : GCCBuiltin<"__builtin_ia32_gatherdiv8di">,
|
||||
Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_ptr_ty,
|
||||
llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_gather_qpi_512 : GCCBuiltin<"__builtin_ia32_gatherdiv16si">,
|
||||
Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_ptr_ty,
|
||||
llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3div2_df :
|
||||
GCCBuiltin<"__builtin_ia32_gather3div2df">,
|
||||
Intrinsic<[llvm_v2f64_ty],
|
||||
[llvm_v2f64_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3div2_di :
|
||||
GCCBuiltin<"__builtin_ia32_gather3div2di">,
|
||||
Intrinsic<[llvm_v2i64_ty],
|
||||
[llvm_v2i64_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3div4_df :
|
||||
GCCBuiltin<"__builtin_ia32_gather3div4df">,
|
||||
Intrinsic<[llvm_v4f64_ty],
|
||||
[llvm_v4f64_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3div4_di :
|
||||
GCCBuiltin<"__builtin_ia32_gather3div4di">,
|
||||
Intrinsic<[llvm_v4i64_ty],
|
||||
[llvm_v4i64_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3div4_sf :
|
||||
GCCBuiltin<"__builtin_ia32_gather3div4sf">,
|
||||
Intrinsic<[llvm_v4f32_ty],
|
||||
[llvm_v4f32_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3div4_si :
|
||||
GCCBuiltin<"__builtin_ia32_gather3div4si">,
|
||||
Intrinsic<[llvm_v4i32_ty],
|
||||
[llvm_v4i32_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3div8_sf :
|
||||
GCCBuiltin<"__builtin_ia32_gather3div8sf">,
|
||||
Intrinsic<[llvm_v4f32_ty],
|
||||
[llvm_v4f32_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3div8_si :
|
||||
GCCBuiltin<"__builtin_ia32_gather3div8si">,
|
||||
Intrinsic<[llvm_v4i32_ty],
|
||||
[llvm_v4i32_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3siv2_df :
|
||||
GCCBuiltin<"__builtin_ia32_gather3siv2df">,
|
||||
Intrinsic<[llvm_v2f64_ty],
|
||||
[llvm_v2f64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3siv2_di :
|
||||
GCCBuiltin<"__builtin_ia32_gather3siv2di">,
|
||||
Intrinsic<[llvm_v2i64_ty],
|
||||
[llvm_v2i64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3siv4_df :
|
||||
GCCBuiltin<"__builtin_ia32_gather3siv4df">,
|
||||
Intrinsic<[llvm_v4f64_ty],
|
||||
[llvm_v4f64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3siv4_di :
|
||||
GCCBuiltin<"__builtin_ia32_gather3siv4di">,
|
||||
Intrinsic<[llvm_v4i64_ty],
|
||||
[llvm_v4i64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3siv4_sf :
|
||||
GCCBuiltin<"__builtin_ia32_gather3siv4sf">,
|
||||
Intrinsic<[llvm_v4f32_ty],
|
||||
[llvm_v4f32_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3siv4_si :
|
||||
GCCBuiltin<"__builtin_ia32_gather3siv4si">,
|
||||
Intrinsic<[llvm_v4i32_ty],
|
||||
[llvm_v4i32_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3siv8_sf :
|
||||
GCCBuiltin<"__builtin_ia32_gather3siv8sf">,
|
||||
Intrinsic<[llvm_v8f32_ty],
|
||||
[llvm_v8f32_ty, llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3siv8_si :
|
||||
GCCBuiltin<"__builtin_ia32_gather3siv8si">,
|
||||
Intrinsic<[llvm_v8i32_ty],
|
||||
[llvm_v8i32_ty, llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
// scatter
|
||||
// NOTE: These are deprecated in favor of the versions that take a vXi1 mask.
|
||||
// NOTE: These can't be ArgMemOnly because you can put the address completely
|
||||
// in the index register.
|
||||
def int_x86_avx512_scatter_dpd_512 : GCCBuiltin<"__builtin_ia32_scattersiv8df">,
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty,
|
||||
llvm_v8i32_ty, llvm_v8f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_scatter_dps_512 : GCCBuiltin<"__builtin_ia32_scattersiv16sf">,
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_i16_ty,
|
||||
llvm_v16i32_ty, llvm_v16f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_scatter_qpd_512 : GCCBuiltin<"__builtin_ia32_scatterdiv8df">,
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty,
|
||||
llvm_v8i64_ty, llvm_v8f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_scatter_qps_512 : GCCBuiltin<"__builtin_ia32_scatterdiv16sf">,
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty,
|
||||
llvm_v8i64_ty, llvm_v8f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
|
||||
def int_x86_avx512_scatter_dpq_512 : GCCBuiltin<"__builtin_ia32_scattersiv8di">,
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty,
|
||||
llvm_v8i32_ty, llvm_v8i64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_scatter_dpi_512 : GCCBuiltin<"__builtin_ia32_scattersiv16si">,
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_i16_ty,
|
||||
llvm_v16i32_ty, llvm_v16i32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_scatter_qpq_512 : GCCBuiltin<"__builtin_ia32_scatterdiv8di">,
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty,llvm_v8i64_ty, llvm_v8i64_ty,
|
||||
llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_scatter_qpi_512 : GCCBuiltin<"__builtin_ia32_scatterdiv16si">,
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v8i64_ty, llvm_v8i32_ty,
|
||||
llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scatterdiv2_df :
|
||||
GCCBuiltin<"__builtin_ia32_scatterdiv2df">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v2i64_ty, llvm_v2f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scatterdiv2_di :
|
||||
GCCBuiltin<"__builtin_ia32_scatterdiv2di">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scatterdiv4_df :
|
||||
GCCBuiltin<"__builtin_ia32_scatterdiv4df">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v4i64_ty, llvm_v4f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scatterdiv4_di :
|
||||
GCCBuiltin<"__builtin_ia32_scatterdiv4di">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scatterdiv4_sf :
|
||||
GCCBuiltin<"__builtin_ia32_scatterdiv4sf">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v2i64_ty, llvm_v4f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scatterdiv4_si :
|
||||
GCCBuiltin<"__builtin_ia32_scatterdiv4si">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v2i64_ty, llvm_v4i32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scatterdiv8_sf :
|
||||
GCCBuiltin<"__builtin_ia32_scatterdiv8sf">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v4i64_ty, llvm_v4f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scatterdiv8_si :
|
||||
GCCBuiltin<"__builtin_ia32_scatterdiv8si">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v4i64_ty, llvm_v4i32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scattersiv2_df :
|
||||
GCCBuiltin<"__builtin_ia32_scattersiv2df">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v4i32_ty, llvm_v2f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scattersiv2_di :
|
||||
GCCBuiltin<"__builtin_ia32_scattersiv2di">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v4i32_ty, llvm_v2i64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scattersiv4_df :
|
||||
GCCBuiltin<"__builtin_ia32_scattersiv4df">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v4i32_ty, llvm_v4f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scattersiv4_di :
|
||||
GCCBuiltin<"__builtin_ia32_scattersiv4di">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v4i32_ty, llvm_v4i64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scattersiv4_sf :
|
||||
GCCBuiltin<"__builtin_ia32_scattersiv4sf">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v4i32_ty, llvm_v4f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scattersiv4_si :
|
||||
GCCBuiltin<"__builtin_ia32_scattersiv4si">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scattersiv8_sf :
|
||||
GCCBuiltin<"__builtin_ia32_scattersiv8sf">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v8i32_ty, llvm_v8f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scattersiv8_si :
|
||||
GCCBuiltin<"__builtin_ia32_scattersiv8si">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
// gather prefetch
|
||||
// NOTE: These can't be ArgMemOnly because you can put the address completely
|
||||
// in the index register.
|
||||
def int_x86_avx512_gatherpf_dpd_512 : GCCBuiltin<"__builtin_ia32_gatherpfdpd">,
|
||||
Intrinsic<[], [llvm_i8_ty, llvm_v8i32_ty, llvm_ptr_ty,
|
||||
llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>;
|
||||
llvm_i32_ty, llvm_i32_ty], []>;
|
||||
def int_x86_avx512_gatherpf_dps_512 : GCCBuiltin<"__builtin_ia32_gatherpfdps">,
|
||||
Intrinsic<[], [llvm_i16_ty, llvm_v16i32_ty, llvm_ptr_ty,
|
||||
llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>;
|
||||
llvm_i32_ty, llvm_i32_ty], []>;
|
||||
def int_x86_avx512_gatherpf_qpd_512 : GCCBuiltin<"__builtin_ia32_gatherpfqpd">,
|
||||
Intrinsic<[], [llvm_i8_ty, llvm_v8i64_ty, llvm_ptr_ty,
|
||||
llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>;
|
||||
llvm_i32_ty, llvm_i32_ty], []>;
|
||||
def int_x86_avx512_gatherpf_qps_512 : GCCBuiltin<"__builtin_ia32_gatherpfqps">,
|
||||
Intrinsic<[], [llvm_i8_ty, llvm_v8i64_ty, llvm_ptr_ty,
|
||||
llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>;
|
||||
llvm_i32_ty, llvm_i32_ty], []>;
|
||||
|
||||
// scatter prefetch
|
||||
// NOTE: These can't be ArgMemOnly because you can put the address completely
|
||||
// in the index register.
|
||||
def int_x86_avx512_scatterpf_dpd_512 : GCCBuiltin<"__builtin_ia32_scatterpfdpd">,
|
||||
Intrinsic<[], [llvm_i8_ty, llvm_v8i32_ty, llvm_ptr_ty,
|
||||
llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>;
|
||||
llvm_i32_ty, llvm_i32_ty], []>;
|
||||
def int_x86_avx512_scatterpf_dps_512 : GCCBuiltin<"__builtin_ia32_scatterpfdps">,
|
||||
Intrinsic<[], [llvm_i16_ty, llvm_v16i32_ty, llvm_ptr_ty,
|
||||
llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>;
|
||||
llvm_i32_ty, llvm_i32_ty], []>;
|
||||
def int_x86_avx512_scatterpf_qpd_512 : GCCBuiltin<"__builtin_ia32_scatterpfqpd">,
|
||||
Intrinsic<[], [llvm_i8_ty, llvm_v8i64_ty, llvm_ptr_ty,
|
||||
llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>;
|
||||
llvm_i32_ty, llvm_i32_ty], []>;
|
||||
def int_x86_avx512_scatterpf_qps_512 : GCCBuiltin<"__builtin_ia32_scatterpfqps">,
|
||||
Intrinsic<[], [llvm_i8_ty, llvm_v8i64_ty, llvm_ptr_ty,
|
||||
llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>;
|
||||
llvm_i32_ty, llvm_i32_ty], []>;
|
||||
}
|
||||
|
||||
// AVX512 gather/scatter intrinsics that use vXi1 masks.
|
||||
let TargetPrefix = "x86" in {
|
||||
// NOTE: These can't be ArgMemOnly because you can put the address completely
|
||||
// in the index register.
|
||||
def int_x86_avx512_mask_gather_dpd_512 :
|
||||
Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_ptr_ty,
|
||||
llvm_v8i32_ty, llvm_v8i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_mask_gather_dps_512 :
|
||||
Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_ptr_ty,
|
||||
llvm_v16i32_ty, llvm_v16i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_mask_gather_qpd_512 :
|
||||
Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_ptr_ty,
|
||||
llvm_v8i64_ty, llvm_v8i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_mask_gather_qps_512 :
|
||||
Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_ptr_ty,
|
||||
llvm_v8i64_ty, llvm_v8i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
|
||||
def int_x86_avx512_mask_gather_dpq_512 :
|
||||
Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_ptr_ty,
|
||||
llvm_v8i32_ty, llvm_v8i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_mask_gather_dpi_512 :
|
||||
Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_ptr_ty,
|
||||
llvm_v16i32_ty, llvm_v16i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_mask_gather_qpq_512 :
|
||||
Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_ptr_ty,
|
||||
llvm_v8i64_ty, llvm_v8i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_mask_gather_qpi_512 :
|
||||
Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_ptr_ty,
|
||||
llvm_v8i64_ty, llvm_v8i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3div2_df :
|
||||
Intrinsic<[llvm_v2f64_ty],
|
||||
[llvm_v2f64_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_v2i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3div2_di :
|
||||
Intrinsic<[llvm_v2i64_ty],
|
||||
[llvm_v2i64_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_v2i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3div4_df :
|
||||
Intrinsic<[llvm_v4f64_ty],
|
||||
[llvm_v4f64_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_v4i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3div4_di :
|
||||
Intrinsic<[llvm_v4i64_ty],
|
||||
[llvm_v4i64_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_v4i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3div4_sf :
|
||||
Intrinsic<[llvm_v4f32_ty],
|
||||
[llvm_v4f32_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_v2i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3div4_si :
|
||||
Intrinsic<[llvm_v4i32_ty],
|
||||
[llvm_v4i32_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_v2i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3div8_sf :
|
||||
Intrinsic<[llvm_v4f32_ty],
|
||||
[llvm_v4f32_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_v4i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3div8_si :
|
||||
Intrinsic<[llvm_v4i32_ty],
|
||||
[llvm_v4i32_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_v4i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3siv2_df :
|
||||
Intrinsic<[llvm_v2f64_ty],
|
||||
[llvm_v2f64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v2i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3siv2_di :
|
||||
Intrinsic<[llvm_v2i64_ty],
|
||||
[llvm_v2i64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v2i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3siv4_df :
|
||||
Intrinsic<[llvm_v4f64_ty],
|
||||
[llvm_v4f64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v4i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3siv4_di :
|
||||
Intrinsic<[llvm_v4i64_ty],
|
||||
[llvm_v4i64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v4i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3siv4_sf :
|
||||
Intrinsic<[llvm_v4f32_ty],
|
||||
[llvm_v4f32_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v4i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3siv4_si :
|
||||
Intrinsic<[llvm_v4i32_ty],
|
||||
[llvm_v4i32_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v4i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3siv8_sf :
|
||||
Intrinsic<[llvm_v8f32_ty],
|
||||
[llvm_v8f32_ty, llvm_ptr_ty, llvm_v8i32_ty, llvm_v8i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3siv8_si :
|
||||
Intrinsic<[llvm_v8i32_ty],
|
||||
[llvm_v8i32_ty, llvm_ptr_ty, llvm_v8i32_ty, llvm_v8i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_scatter_dpd_512 :
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_v8i1_ty,
|
||||
llvm_v8i32_ty, llvm_v8f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_mask_scatter_dps_512 :
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_v16i1_ty,
|
||||
llvm_v16i32_ty, llvm_v16f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_mask_scatter_qpd_512 :
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_v8i1_ty,
|
||||
llvm_v8i64_ty, llvm_v8f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_mask_scatter_qps_512 :
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_v8i1_ty,
|
||||
llvm_v8i64_ty, llvm_v8f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
|
||||
// NOTE: These can't be ArgMemOnly because you can put the address completely
|
||||
// in the index register.
|
||||
def int_x86_avx512_mask_scatter_dpq_512 :
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_v8i1_ty,
|
||||
llvm_v8i32_ty, llvm_v8i64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_mask_scatter_dpi_512 :
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_v16i1_ty,
|
||||
llvm_v16i32_ty, llvm_v16i32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_mask_scatter_qpq_512 :
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_v8i1_ty,llvm_v8i64_ty, llvm_v8i64_ty,
|
||||
llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_mask_scatter_qpi_512 :
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_v8i1_ty, llvm_v8i64_ty, llvm_v8i32_ty,
|
||||
llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scatterdiv2_df :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v2i1_ty, llvm_v2i64_ty, llvm_v2f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scatterdiv2_di :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v2i1_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scatterdiv4_df :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v4i1_ty, llvm_v4i64_ty, llvm_v4f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scatterdiv4_di :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v4i1_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scatterdiv4_sf :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v2i1_ty, llvm_v2i64_ty, llvm_v4f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scatterdiv4_si :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v2i1_ty, llvm_v2i64_ty, llvm_v4i32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scatterdiv8_sf :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v4i1_ty, llvm_v4i64_ty, llvm_v4f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scatterdiv8_si :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v4i1_ty, llvm_v4i64_ty, llvm_v4i32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scattersiv2_df :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v2i1_ty, llvm_v4i32_ty, llvm_v2f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scattersiv2_di :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v2i1_ty, llvm_v4i32_ty, llvm_v2i64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scattersiv4_df :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v4i1_ty, llvm_v4i32_ty, llvm_v4f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scattersiv4_di :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v4i1_ty, llvm_v4i32_ty, llvm_v4i64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scattersiv4_sf :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v4i1_ty, llvm_v4i32_ty, llvm_v4f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scattersiv4_si :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v4i1_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scattersiv8_sf :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v8i1_ty, llvm_v8i32_ty, llvm_v8f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scattersiv8_si :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v8i1_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
}
|
||||
|
||||
// AVX-512 conflict detection instruction
|
||||
|
@ -257,6 +257,12 @@ class APValue {
|
||||
return const_cast<APValue*>(this)->getInt();
|
||||
}
|
||||
|
||||
/// Try to convert this value to an integral constant. This works if it's an
|
||||
/// integer, null pointer, or offset from a null pointer. Returns true on
|
||||
/// success.
|
||||
bool toIntegralConstant(APSInt &Result, QualType SrcTy,
|
||||
const ASTContext &Ctx) const;
|
||||
|
||||
APFloat &getFloat() {
|
||||
assert(isFloat() && "Invalid accessor");
|
||||
return *(APFloat*)(char*)Data.buffer;
|
||||
|
@ -807,6 +807,7 @@ class TargetInfo : public RefCountedBase<TargetInfo> {
|
||||
struct {
|
||||
int Min;
|
||||
int Max;
|
||||
bool isConstrained;
|
||||
} ImmRange;
|
||||
llvm::SmallSet<int, 4> ImmSet;
|
||||
|
||||
@ -817,6 +818,7 @@ class TargetInfo : public RefCountedBase<TargetInfo> {
|
||||
: Flags(0), TiedOperand(-1), ConstraintStr(ConstraintStr.str()),
|
||||
Name(Name.str()) {
|
||||
ImmRange.Min = ImmRange.Max = 0;
|
||||
ImmRange.isConstrained = false;
|
||||
}
|
||||
|
||||
const std::string &getConstraintStr() const { return ConstraintStr; }
|
||||
@ -845,8 +847,9 @@ class TargetInfo : public RefCountedBase<TargetInfo> {
|
||||
return (Flags & CI_ImmediateConstant) != 0;
|
||||
}
|
||||
bool isValidAsmImmediate(const llvm::APInt &Value) const {
|
||||
return (Value.sge(ImmRange.Min) && Value.sle(ImmRange.Max)) ||
|
||||
ImmSet.count(Value.getZExtValue()) != 0;
|
||||
if (!ImmSet.empty())
|
||||
return ImmSet.count(Value.getZExtValue()) != 0;
|
||||
return !ImmRange.isConstrained || (Value.sge(ImmRange.Min) && Value.sle(ImmRange.Max));
|
||||
}
|
||||
|
||||
void setIsReadWrite() { Flags |= CI_ReadWrite; }
|
||||
@ -858,6 +861,7 @@ class TargetInfo : public RefCountedBase<TargetInfo> {
|
||||
Flags |= CI_ImmediateConstant;
|
||||
ImmRange.Min = Min;
|
||||
ImmRange.Max = Max;
|
||||
ImmRange.isConstrained = true;
|
||||
}
|
||||
void setRequiresImmediate(llvm::ArrayRef<int> Exacts) {
|
||||
Flags |= CI_ImmediateConstant;
|
||||
@ -870,8 +874,6 @@ class TargetInfo : public RefCountedBase<TargetInfo> {
|
||||
}
|
||||
void setRequiresImmediate() {
|
||||
Flags |= CI_ImmediateConstant;
|
||||
ImmRange.Min = INT_MIN;
|
||||
ImmRange.Max = INT_MAX;
|
||||
}
|
||||
|
||||
/// Indicate that this is an input operand that is tied to
|
||||
|
@ -395,7 +395,9 @@ def _SLASH_Zo_ : CLIgnoredFlag<"Zo-">;
|
||||
|
||||
// Unsupported:
|
||||
|
||||
def _SLASH_AI : CLJoined<"AI">;
|
||||
def _SLASH_await : CLFlag<"await">;
|
||||
def _SLASH_constexpr : CLJoined<"constexpr:">;
|
||||
def _SLASH_AI : CLJoinedOrSeparate<"AI">;
|
||||
def _SLASH_Bt : CLFlag<"Bt">;
|
||||
def _SLASH_Bt_plus : CLFlag<"Bt+">;
|
||||
def _SLASH_clr : CLJoined<"clr">;
|
||||
@ -430,6 +432,9 @@ def _SLASH_Qfast_transcendentals : CLFlag<"Qfast_transcendentals">;
|
||||
def _SLASH_QIfist : CLFlag<"QIfist">;
|
||||
def _SLASH_Qimprecise_fwaits : CLFlag<"Qimprecise_fwaits">;
|
||||
def _SLASH_Qpar : CLFlag<"Qpar">;
|
||||
def _SLASH_Qpar_report : CLJoined<"Qpar-report">;
|
||||
def _SLASH_Qsafe_fp_loads : CLFlag<"Qsafe_fp_loads">;
|
||||
def _SLASH_Qspectre : CLFlag<"Qspectre">;
|
||||
def _SLASH_Qvec_report : CLJoined<"Qvec-report">;
|
||||
def _SLASH_u : CLFlag<"u">;
|
||||
def _SLASH_V : CLFlag<"V">;
|
||||
|
@ -600,6 +600,26 @@ std::string APValue::getAsString(ASTContext &Ctx, QualType Ty) const {
|
||||
return Result;
|
||||
}
|
||||
|
||||
bool APValue::toIntegralConstant(APSInt &Result, QualType SrcTy,
|
||||
const ASTContext &Ctx) const {
|
||||
if (isInt()) {
|
||||
Result = getInt();
|
||||
return true;
|
||||
}
|
||||
|
||||
if (isLValue() && isNullPointer()) {
|
||||
Result = Ctx.MakeIntValue(Ctx.getTargetNullPointerValue(SrcTy), SrcTy);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (isLValue() && !getLValueBase()) {
|
||||
Result = Ctx.MakeIntValue(getLValueOffset().getQuantity(), SrcTy);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
const APValue::LValueBase APValue::getLValueBase() const {
|
||||
assert(isLValue() && "Invalid accessor");
|
||||
return ((const LV*)(const void*)Data.buffer)->Base;
|
||||
|
@ -9821,13 +9821,12 @@ bool IntExprEvaluator::VisitCastExpr(const CastExpr *E) {
|
||||
return true;
|
||||
}
|
||||
|
||||
uint64_t V;
|
||||
if (LV.isNullPointer())
|
||||
V = Info.Ctx.getTargetNullPointerValue(SrcType);
|
||||
else
|
||||
V = LV.getLValueOffset().getQuantity();
|
||||
APSInt AsInt;
|
||||
APValue V;
|
||||
LV.moveInto(V);
|
||||
if (!V.toIntegralConstant(AsInt, SrcType, Info.Ctx))
|
||||
llvm_unreachable("Can't cast this!");
|
||||
|
||||
APSInt AsInt = Info.Ctx.MakeIntValue(V, SrcType);
|
||||
return Success(HandleIntToIntCast(Info, E, DestType, SrcType, AsInt), E);
|
||||
}
|
||||
|
||||
|
@ -1821,8 +1821,15 @@ llvm::Value* CodeGenFunction::EmitAsmInput(
|
||||
// (immediate or symbolic), try to emit it as such.
|
||||
if (!Info.allowsRegister() && !Info.allowsMemory()) {
|
||||
if (Info.requiresImmediateConstant()) {
|
||||
llvm::APSInt AsmConst = InputExpr->EvaluateKnownConstInt(getContext());
|
||||
return llvm::ConstantInt::get(getLLVMContext(), AsmConst);
|
||||
Expr::EvalResult EVResult;
|
||||
InputExpr->EvaluateAsRValue(EVResult, getContext(), true);
|
||||
|
||||
llvm::APSInt IntResult;
|
||||
if (!EVResult.Val.toIntegralConstant(IntResult, InputExpr->getType(),
|
||||
getContext()))
|
||||
llvm_unreachable("Invalid immediate constant!");
|
||||
|
||||
return llvm::ConstantInt::get(getLLVMContext(), IntResult);
|
||||
}
|
||||
|
||||
Expr::EvalResult Result;
|
||||
|
@ -383,11 +383,20 @@ StmtResult Sema::ActOnGCCAsmStmt(SourceLocation AsmLoc, bool IsSimple,
|
||||
return StmtError(
|
||||
Diag(InputExpr->getBeginLoc(), diag::err_asm_immediate_expected)
|
||||
<< Info.getConstraintStr() << InputExpr->getSourceRange());
|
||||
llvm::APSInt Result = EVResult.Val.getInt();
|
||||
if (!Info.isValidAsmImmediate(Result))
|
||||
|
||||
// For compatibility with GCC, we also allow pointers that would be
|
||||
// integral constant expressions if they were cast to int.
|
||||
llvm::APSInt IntResult;
|
||||
if (!EVResult.Val.toIntegralConstant(IntResult, InputExpr->getType(),
|
||||
Context))
|
||||
return StmtError(
|
||||
Diag(InputExpr->getBeginLoc(), diag::err_asm_immediate_expected)
|
||||
<< Info.getConstraintStr() << InputExpr->getSourceRange());
|
||||
|
||||
if (!Info.isValidAsmImmediate(IntResult))
|
||||
return StmtError(Diag(InputExpr->getBeginLoc(),
|
||||
diag::err_invalid_asm_value_for_constraint)
|
||||
<< Result.toString(10) << Info.getConstraintStr()
|
||||
<< IntResult.toString(10) << Info.getConstraintStr()
|
||||
<< InputExpr->getSourceRange());
|
||||
}
|
||||
|
||||
|
@ -125,7 +125,7 @@ inline bool operator<(lldb::addr_t lhs, const MemoryRegionInfo &rhs) {
|
||||
// Forward-declarable wrapper.
|
||||
class MemoryRegionInfos : public std::vector<lldb_private::MemoryRegionInfo> {
|
||||
public:
|
||||
using std::vector<lldb_private::MemoryRegionInfo>::vector;
|
||||
//using std::vector<lldb_private::MemoryRegionInfo>::vector;
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -493,6 +493,51 @@ ATF_TC_BODY(bogus_timedwaits, tc)
|
||||
PTHREAD_REQUIRE(pthread_mutex_unlock(&static_mutex));
|
||||
}
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
static void *
|
||||
destroy_busy_threadfunc(void *arg)
|
||||
{
|
||||
PTHREAD_REQUIRE(pthread_mutex_lock(&mutex));
|
||||
|
||||
share = 1;
|
||||
PTHREAD_REQUIRE(pthread_cond_broadcast(&cond));
|
||||
PTHREAD_REQUIRE(pthread_cond_wait(&cond, &mutex));
|
||||
|
||||
PTHREAD_REQUIRE(pthread_mutex_unlock(&mutex));
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ATF_TC(destroy_busy);
|
||||
ATF_TC_HEAD(destroy_busy, tc)
|
||||
{
|
||||
atf_tc_set_md_var(tc, "descr", "Checks non-standard behaviour of "
|
||||
"returning EBUSY when attempting to destroy an active condvar");
|
||||
}
|
||||
ATF_TC_BODY(destroy_busy, tc)
|
||||
{
|
||||
pthread_t thread;
|
||||
|
||||
PTHREAD_REQUIRE(pthread_mutex_init(&mutex, NULL));
|
||||
PTHREAD_REQUIRE(pthread_cond_init(&cond, NULL));
|
||||
PTHREAD_REQUIRE(pthread_mutex_lock(&mutex));
|
||||
PTHREAD_REQUIRE(pthread_create(&thread, NULL, destroy_busy_threadfunc,
|
||||
NULL));
|
||||
|
||||
while (share == 0) {
|
||||
PTHREAD_REQUIRE(pthread_cond_wait(&cond, &mutex));
|
||||
}
|
||||
|
||||
PTHREAD_REQUIRE_STATUS(pthread_cond_destroy(&cond), EBUSY);
|
||||
PTHREAD_REQUIRE(pthread_cond_signal(&cond));
|
||||
PTHREAD_REQUIRE(pthread_cond_destroy(&cond));
|
||||
|
||||
PTHREAD_REQUIRE(pthread_mutex_unlock(&mutex));
|
||||
PTHREAD_REQUIRE(pthread_join(thread, NULL));
|
||||
PTHREAD_REQUIRE(pthread_mutex_destroy(&mutex));
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
unlock(void *arg)
|
||||
{
|
||||
@ -547,6 +592,49 @@ ATF_TC_BODY(destroy_after_cancel, tc)
|
||||
PTHREAD_REQUIRE(pthread_mutex_destroy(&mutex));
|
||||
}
|
||||
|
||||
static void *
|
||||
destroy_after_signal_threadfunc(void *arg)
|
||||
{
|
||||
PTHREAD_REQUIRE(pthread_mutex_lock(&mutex));
|
||||
|
||||
share = 1;
|
||||
PTHREAD_REQUIRE(pthread_cond_broadcast(&cond));
|
||||
PTHREAD_REQUIRE(pthread_cond_wait(&cond, &mutex));
|
||||
|
||||
PTHREAD_REQUIRE(pthread_mutex_unlock(&mutex));
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ATF_TC(destroy_after_signal);
|
||||
ATF_TC_HEAD(destroy_after_signal, tc)
|
||||
{
|
||||
atf_tc_set_md_var(tc, "descr", "Checks destroying a condition variable "
|
||||
"immediately after signaling waiters");
|
||||
}
|
||||
ATF_TC_BODY(destroy_after_signal, tc)
|
||||
{
|
||||
pthread_t thread;
|
||||
|
||||
PTHREAD_REQUIRE(pthread_mutex_init(&mutex, NULL));
|
||||
PTHREAD_REQUIRE(pthread_cond_init(&cond, NULL));
|
||||
PTHREAD_REQUIRE(pthread_mutex_lock(&mutex));
|
||||
PTHREAD_REQUIRE(pthread_create(&thread, NULL,
|
||||
destroy_after_signal_threadfunc, NULL));
|
||||
|
||||
while (share == 0) {
|
||||
PTHREAD_REQUIRE(pthread_cond_wait(&cond, &mutex));
|
||||
}
|
||||
|
||||
PTHREAD_REQUIRE(pthread_cond_signal(&cond));
|
||||
PTHREAD_REQUIRE(pthread_cond_destroy(&cond));
|
||||
PTHREAD_REQUIRE(pthread_mutex_unlock(&mutex));
|
||||
|
||||
PTHREAD_REQUIRE(pthread_join(thread, NULL));
|
||||
|
||||
PTHREAD_REQUIRE(pthread_mutex_destroy(&mutex));
|
||||
}
|
||||
|
||||
ATF_TC(condattr);
|
||||
ATF_TC_HEAD(condattr, tc)
|
||||
{
|
||||
@ -577,7 +665,11 @@ ATF_TP_ADD_TCS(tp)
|
||||
ATF_TP_ADD_TC(tp, cond_timedwait_race);
|
||||
ATF_TP_ADD_TC(tp, broadcast);
|
||||
ATF_TP_ADD_TC(tp, bogus_timedwaits);
|
||||
#ifdef __FreeBSD__
|
||||
ATF_TP_ADD_TC(tp, destroy_busy);
|
||||
#endif
|
||||
ATF_TP_ADD_TC(tp, destroy_after_cancel);
|
||||
ATF_TP_ADD_TC(tp, destroy_after_signal);
|
||||
ATF_TP_ADD_TC(tp, condattr);
|
||||
|
||||
return atf_no_error();
|
||||
|
@ -1,16 +1,15 @@
|
||||
This file is automatically generated from html/copyright.html
|
||||
|
||||
Copyright Notice
|
||||
|
||||
jpg "Clone me," says Dolly sheepishly.
|
||||
|
||||
Last update: 2-Jan-2017 11:58 UTC
|
||||
_________________________________________________________________
|
||||
__________________________________________________________________
|
||||
|
||||
The following copyright notice applies to all files collectively
|
||||
called the Network Time Protocol Version 4 Distribution. Unless
|
||||
specifically declared otherwise in an individual file, this entire
|
||||
notice applies as if the text was explicitly included in the file.
|
||||
The following copyright notice applies to all files collectively called
|
||||
the Network Time Protocol Version 4 Distribution. Unless specifically
|
||||
declared otherwise in an individual file, this entire notice applies as
|
||||
if the text was explicitly included in the file.
|
||||
***********************************************************************
|
||||
* *
|
||||
* Copyright (c) University of Delaware 1992-2015 *
|
||||
@ -62,13 +61,13 @@ This file is automatically generated from html/copyright.html
|
||||
***********************************************************************
|
||||
|
||||
The following individuals contributed in part to the Network Time
|
||||
Protocol Distribution Version 4 and are acknowledged as authors of
|
||||
this work.
|
||||
Protocol Distribution Version 4 and are acknowledged as authors of this
|
||||
work.
|
||||
1. [1]Takao Abe <takao_abe@xurb.jp> Clock driver for JJY receivers
|
||||
2. [2]Mark Andrews <mark_andrews@isc.org> Leitch atomic clock
|
||||
controller
|
||||
3. [3]Bernd Altmeier <altmeier@atlsoft.de> hopf Elektronik serial
|
||||
line and PCI-bus devices
|
||||
3. [3]Bernd Altmeier <altmeier@atlsoft.de> hopf Elektronik serial line
|
||||
and PCI-bus devices
|
||||
4. [4]Viraj Bais <vbais@mailman1.intel.com> and [5]Clayton Kirkwood
|
||||
<kirkwood@striderfm.intel.com> port to WindowsNT 3.5
|
||||
5. [6]Michael Barone <michael,barone@lmco.com> GPSVME fixes
|
||||
@ -84,13 +83,12 @@ This file is automatically generated from html/copyright.html
|
||||
<Jean-Francois.Boudreault@viagenie.qc.ca> IPv6 support
|
||||
12. [13]Reg Clemens <reg@dwf.com> Oncore driver (Current maintainer)
|
||||
13. [14]Steve Clift <clift@ml.csiro.au> OMEGA clock driver
|
||||
14. [15]Casey Crellin <casey@csc.co.za> vxWorks (Tornado) port and
|
||||
help with target configuration
|
||||
14. [15]Casey Crellin <casey@csc.co.za> vxWorks (Tornado) port and help
|
||||
with target configuration
|
||||
15. [16]Sven Dietrich <sven_dietrich@trimble.com> Palisade reference
|
||||
clock driver, NT adj. residuals, integrated Greg's Winnt port.
|
||||
16. [17]John A. Dundas III <dundas@salt.jpl.nasa.gov> Apple A/UX port
|
||||
17. [18]Torsten Duwe <duwe@immd4.informatik.uni-erlangen.de> Linux
|
||||
port
|
||||
17. [18]Torsten Duwe <duwe@immd4.informatik.uni-erlangen.de> Linux port
|
||||
18. [19]Dennis Ferguson <dennis@mrbill.canet.ca> foundation code for
|
||||
NTP Version 2 as specified in RFC-1119
|
||||
19. [20]John Hay <jhay@icomtek.csir.co.za> IPv6 support and testing
|
||||
@ -122,9 +120,8 @@ This file is automatically generated from html/copyright.html
|
||||
code for Version 3 as specified in RFC-1305
|
||||
36. [39]Danny Mayer <mayer@ntp.org>Network I/O, Windows Port, Code
|
||||
Maintenance
|
||||
37. [40]David L. Mills <mills@udel.edu> Version 4 foundation,
|
||||
precision kernel; clock drivers: 1, 3, 4, 6, 7, 11, 13, 18, 19,
|
||||
22, 36
|
||||
37. [40]David L. Mills <mills@udel.edu> Version 4 foundation, precision
|
||||
kernel; clock drivers: 1, 3, 4, 6, 7, 11, 13, 18, 19, 22, 36
|
||||
38. [41]Wolfgang Moeller <moeller@gwdgv1.dnet.gwdg.de> VMS port
|
||||
39. [42]Jeffrey Mogul <mogul@pa.dec.com> ntptrace utility
|
||||
40. [43]Tom Moore <tmoore@fievel.daytonoh.ncr.com> i386 svr4 port
|
||||
@ -136,22 +133,18 @@ This file is automatically generated from html/copyright.html
|
||||
44. [48]Rainer Pruy <Rainer.Pruy@informatik.uni-erlangen.de>
|
||||
monitoring/trap scripts, statistics file handling
|
||||
45. [49]Dirce Richards <dirce@zk3.dec.com> Digital UNIX V4.0 port
|
||||
46. [50]Wilfredo Sánchez <wsanchez@apple.com> added support for
|
||||
NetInfo
|
||||
46. [50]Wilfredo Sánchez <wsanchez@apple.com> added support for NetInfo
|
||||
47. [51]Nick Sayer <mrapple@quack.kfu.com> SunOS streams modules
|
||||
48. [52]Jack Sasportas <jack@innovativeinternet.com> Saved a Lot of
|
||||
space on the stuff in the html/pic/ subdirectory
|
||||
49. [53]Ray Schnitzler <schnitz@unipress.com> Unixware1 port
|
||||
50. [54]Michael Shields <shields@tembel.org> USNO clock driver
|
||||
51. [55]Jeff Steinman <jss@pebbles.jpl.nasa.gov> Datum PTS clock
|
||||
driver
|
||||
51. [55]Jeff Steinman <jss@pebbles.jpl.nasa.gov> Datum PTS clock driver
|
||||
52. [56]Harlan Stenn <harlan@pfcs.com> GNU automake/autoconfigure
|
||||
makeover, various other bits (see the ChangeLog)
|
||||
53. [57]Kenneth Stone <ken@sdd.hp.com> HP-UX port
|
||||
54. [58]Ajit Thyagarajan <ajit@ee.udel.edu>IP multicast/anycast
|
||||
support
|
||||
55. [59]Tomoaki TSURUOKA <tsuruoka@nc.fukuoka-u.ac.jp>TRAK clock
|
||||
driver
|
||||
54. [58]Ajit Thyagarajan <ajit@ee.udel.edu>IP multicast/anycast support
|
||||
55. [59]Tomoaki TSURUOKA <tsuruoka@nc.fukuoka-u.ac.jp>TRAK clock driver
|
||||
56. [60]Brian Utterback <brian.utterback@oracle.com> General codebase,
|
||||
Solaris issues
|
||||
57. [61]Loganaden Velvindron <loganaden@gmail.com> Sandboxing
|
||||
@ -160,7 +153,7 @@ This file is automatically generated from html/copyright.html
|
||||
TrueTime clock driver
|
||||
59. [63]Ulrich Windl <Ulrich.Windl@rz.uni-regensburg.de> corrected and
|
||||
validated HTML documents according to the HTML DTD
|
||||
_________________________________________________________________
|
||||
__________________________________________________________________
|
||||
|
||||
References
|
||||
|
||||
|
@ -1,3 +1,48 @@
|
||||
---
|
||||
(4.2.8p13) 2019/03/07 Released by Harlan Stenn <stenn@ntp.org>
|
||||
|
||||
* [Sec 3565] Crafted null dereference attack in authenticated
|
||||
mode 6 packet <perlinger@ntp.org>
|
||||
- reported by Magnus Stubman
|
||||
* [Bug 3560] Fix build when HAVE_DROPROOT is not defined <perlinger@ntp.org>
|
||||
- applied patch by Ian Lepore
|
||||
* [Bug 3558] Crash and integer size bug <perlinger@ntp.org>
|
||||
- isolate and fix linux/windows specific code issue
|
||||
* [Bug 3556] ntp_loopfilter.c snprintf compilation warnings <perlinger@ntp.org>
|
||||
- provide better function for incremental string formatting
|
||||
* [Bug 3555] Tidy up print alignment of debug output from ntpdate <perlinger@ntp.org>
|
||||
- applied patch by Gerry Garvey
|
||||
* [Bug 3554] config revoke stores incorrect value <perlinger@ntp.org>
|
||||
- original finding by Gerry Garvey, additional cleanup needed
|
||||
* [Bug 3549] Spurious initgroups() error message <perlinger@ntp.org>
|
||||
- patch by Christous Zoulas
|
||||
* [Bug 3548] Signature not verified on windows system <perlinger@ntp.org>
|
||||
- finding by Chen Jiabin, plus another one by me
|
||||
* [Bug 3541] patch to fix STA_NANO struct timex units <perlinger@ntp.org>
|
||||
- applied patch by Maciej Szmigiero
|
||||
* [Bug 3540] Cannot set minsane to 0 anymore <perlinger@ntp.org>
|
||||
- applied patch by Andre Charbonneau
|
||||
* [Bug 3539] work_fork build fails when droproot is not supported <perlinger@ntp.org>
|
||||
- applied patch by Baruch Siach
|
||||
* [Bug 3538] Build fails for no-MMU targets <perlinger@ntp.org>
|
||||
- applied patch by Baruch Siach
|
||||
* [Bug 3535] libparse won't handle GPS week rollover <perlinger@ntp.org>
|
||||
- refactored handling of GPS era based on 'tos basedate' for
|
||||
parse (TSIP) and JUPITER clocks
|
||||
* [Bug 3529] Build failures on Mac OS X 10.13 (High Sierra) <perlinger@ntp.org>
|
||||
- patch by Daniel J. Luke; this does not fix a potential linker
|
||||
regression issue on MacOS.
|
||||
* [Bug 3527 - Backward Incompatible] mode7 clockinfo fudgeval2 packet
|
||||
anomaly <perlinger@ntp.org>, reported by GGarvey.
|
||||
- --enable-bug3527-fix support by HStenn
|
||||
* [Bug 3526] Incorrect poll interval in packet <perlinger@ntp.org>
|
||||
- applied patch by Gerry Garvey
|
||||
* [Bug 3471] Check for openssl/[ch]mac.h. <perlinger@ntp.org>
|
||||
- added missing check, reported by Reinhard Max <perlinger@ntp.org>
|
||||
* [Bug 1674] runtime crashes and sync problems affecting both x86 and x86_64
|
||||
- this is a variant of [bug 3558] and should be fixed with it
|
||||
* Implement --disable-signalled-io
|
||||
|
||||
---
|
||||
(4.2.8p12) 2018/08/14 Released by Harlan Stenn <stenn@ntp.org>
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -830,7 +830,7 @@ distdir: $(DISTFILES)
|
||||
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
||||
|| chmod -R a+r "$(distdir)"
|
||||
dist-gzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-bzip2: distdir
|
||||
@ -856,7 +856,7 @@ dist-shar: distdir
|
||||
@echo WARNING: "Support for shar distribution archives is" \
|
||||
"deprecated." >&2
|
||||
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
|
||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||
shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-zip: distdir
|
||||
@ -874,7 +874,7 @@ dist dist-all:
|
||||
distcheck: dist
|
||||
case '$(DIST_ARCHIVES)' in \
|
||||
*.tar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
|
||||
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.lz*) \
|
||||
@ -884,7 +884,7 @@ distcheck: dist
|
||||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
|
||||
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
|
@ -1,8 +1,60 @@
|
||||
---
|
||||
NTP 4.2.8p13 (Harlan Stenn <stenn@ntp.org>, 2019 Mar 07)
|
||||
|
||||
Focus: Security, Bug fixes, enhancements.
|
||||
|
||||
Severity: MEDIUM
|
||||
|
||||
This release fixes a bug that allows an attacker with access to an
|
||||
explicitly trusted source to send a crafted malicious mode 6 (ntpq)
|
||||
packet that can trigger a NULL pointer dereference, crashing ntpd.
|
||||
It also provides 17 other bugfixes and 1 other improvement:
|
||||
|
||||
* [Sec 3565] Crafted null dereference attack in authenticated
|
||||
mode 6 packet <perlinger@ntp.org>
|
||||
- reported by Magnus Stubman
|
||||
* [Bug 3560] Fix build when HAVE_DROPROOT is not defined <perlinger@ntp.org>
|
||||
- applied patch by Ian Lepore
|
||||
* [Bug 3558] Crash and integer size bug <perlinger@ntp.org>
|
||||
- isolate and fix linux/windows specific code issue
|
||||
* [Bug 3556] ntp_loopfilter.c snprintf compilation warnings <perlinger@ntp.org>
|
||||
- provide better function for incremental string formatting
|
||||
* [Bug 3555] Tidy up print alignment of debug output from ntpdate <perlinger@ntp.org>
|
||||
- applied patch by Gerry Garvey
|
||||
* [Bug 3554] config revoke stores incorrect value <perlinger@ntp.org>
|
||||
- original finding by Gerry Garvey, additional cleanup needed
|
||||
* [Bug 3549] Spurious initgroups() error message <perlinger@ntp.org>
|
||||
- patch by Christous Zoulas
|
||||
* [Bug 3548] Signature not verified on windows system <perlinger@ntp.org>
|
||||
- finding by Chen Jiabin, plus another one by me
|
||||
* [Bug 3541] patch to fix STA_NANO struct timex units <perlinger@ntp.org>
|
||||
- applied patch by Maciej Szmigiero
|
||||
* [Bug 3540] Cannot set minsane to 0 anymore <perlinger@ntp.org>
|
||||
- applied patch by Andre Charbonneau
|
||||
* [Bug 3539] work_fork build fails when droproot is not supported <perlinger@ntp.org>
|
||||
- applied patch by Baruch Siach
|
||||
* [Bug 3538] Build fails for no-MMU targets <perlinger@ntp.org>
|
||||
- applied patch by Baruch Siach
|
||||
* [Bug 3535] libparse won't handle GPS week rollover <perlinger@ntp.org>
|
||||
- refactored handling of GPS era based on 'tos basedate' for
|
||||
parse (TSIP) and JUPITER clocks
|
||||
* [Bug 3529] Build failures on Mac OS X 10.13 (High Sierra) <perlinger@ntp.org>
|
||||
- patch by Daniel J. Luke; this does not fix a potential linker
|
||||
regression issue on MacOS.
|
||||
* [Bug 3527 - Backward Incompatible] mode7 clockinfo fudgeval2 packet
|
||||
anomaly <perlinger@ntp.org>, reported by GGarvey.
|
||||
- --enable-bug3527-fix support by HStenn
|
||||
* [Bug 3526] Incorrect poll interval in packet <perlinger@ntp.org>
|
||||
- applied patch by Gerry Garvey
|
||||
* [Bug 3471] Check for openssl/[ch]mac.h. <perlinger@ntp.org>
|
||||
- added missing check, reported by Reinhard Max <perlinger@ntp.org>
|
||||
* [Bug 1674] runtime crashes and sync problems affecting both x86 and x86_64
|
||||
- this is a variant of [bug 3558] and should be fixed with it
|
||||
* Implement 'configure --disable-signalled-io'
|
||||
|
||||
--
|
||||
NTP 4.2.8p12 (Harlan Stenn <stenn@ntp.org>, 2018/14/09)
|
||||
|
||||
NOTE: this NEWS file will be undergoing more revisions.
|
||||
|
||||
Focus: Security, Bug fixes, enhancements.
|
||||
|
||||
Severity: MEDIUM
|
||||
|
265
contrib/ntp/aclocal.m4
vendored
265
contrib/ntp/aclocal.m4
vendored
@ -1,6 +1,6 @@
|
||||
# generated automatically by aclocal 1.15 -*- Autoconf -*-
|
||||
# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -20,126 +20,121 @@ You have another version of autoconf. It may work, but is not guaranteed to.
|
||||
If you have problems, you may need to regenerate the build system entirely.
|
||||
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
|
||||
|
||||
# serial 9 -*- Autoconf -*-
|
||||
# Enable extensions on systems that normally disable them.
|
||||
# longlong.m4 serial 17
|
||||
dnl Copyright (C) 1999-2007, 2009-2016 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# Copyright (C) 2003, 2006-2010 Free Software Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
dnl From Paul Eggert.
|
||||
|
||||
# This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from CVS
|
||||
# Autoconf. Perhaps we can remove this once we can assume Autoconf
|
||||
# 2.62 or later everywhere, but since CVS Autoconf mutates rapidly
|
||||
# enough in this area it's likely we'll need to redefine
|
||||
# AC_USE_SYSTEM_EXTENSIONS for quite some time.
|
||||
# Define HAVE_LONG_LONG_INT if 'long long int' works.
|
||||
# This fixes a bug in Autoconf 2.61, and can be faster
|
||||
# than what's in Autoconf 2.62 through 2.68.
|
||||
|
||||
# If autoconf reports a warning
|
||||
# warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
|
||||
# or warning: AC_RUN_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
|
||||
# the fix is
|
||||
# 1) to ensure that AC_USE_SYSTEM_EXTENSIONS is never directly invoked
|
||||
# but always AC_REQUIREd,
|
||||
# 2) to ensure that for each occurrence of
|
||||
# AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
|
||||
# or
|
||||
# AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
|
||||
# the corresponding gnulib module description has 'extensions' among
|
||||
# its dependencies. This will ensure that the gl_USE_SYSTEM_EXTENSIONS
|
||||
# invocation occurs in gl_EARLY, not in gl_INIT.
|
||||
# Note: If the type 'long long int' exists but is only 32 bits large
|
||||
# (as on some very old compilers), HAVE_LONG_LONG_INT will not be
|
||||
# defined. In this case you can treat 'long long int' like 'long int'.
|
||||
|
||||
# AC_USE_SYSTEM_EXTENSIONS
|
||||
# ------------------------
|
||||
# Enable extensions on systems that normally disable them,
|
||||
# typically due to standards-conformance issues.
|
||||
# Remember that #undef in AH_VERBATIM gets replaced with #define by
|
||||
# AC_DEFINE. The goal here is to define all known feature-enabling
|
||||
# macros, then, if reports of conflicts are made, disable macros that
|
||||
# cause problems on some platforms (such as __EXTENSIONS__).
|
||||
AC_DEFUN_ONCE([AC_USE_SYSTEM_EXTENSIONS],
|
||||
[AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl
|
||||
AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
|
||||
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
|
||||
AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=])
|
||||
if test "$MINIX" = yes; then
|
||||
AC_DEFINE([_POSIX_SOURCE], [1],
|
||||
[Define to 1 if you need to in order for `stat' and other
|
||||
things to work.])
|
||||
AC_DEFINE([_POSIX_1_SOURCE], [2],
|
||||
[Define to 2 if the system does not provide POSIX.1 features
|
||||
except with this defined.])
|
||||
AC_DEFINE([_MINIX], [1],
|
||||
[Define to 1 if on MINIX.])
|
||||
fi
|
||||
|
||||
dnl HP-UX 11.11 defines mbstate_t only if _XOPEN_SOURCE is defined to 500,
|
||||
dnl regardless of whether the flags -Ae or _D_HPUX_SOURCE=1 are already
|
||||
dnl provided.
|
||||
case "$host_os" in
|
||||
hpux*)
|
||||
AC_DEFINE([_XOPEN_SOURCE], [500],
|
||||
[Define to 500 only on HP-UX.])
|
||||
;;
|
||||
esac
|
||||
|
||||
AH_VERBATIM([__EXTENSIONS__],
|
||||
[/* Enable extensions on AIX 3, Interix. */
|
||||
#ifndef _ALL_SOURCE
|
||||
# undef _ALL_SOURCE
|
||||
#endif
|
||||
/* Enable GNU extensions on systems that have them. */
|
||||
#ifndef _GNU_SOURCE
|
||||
# undef _GNU_SOURCE
|
||||
#endif
|
||||
/* Enable threading extensions on Solaris. */
|
||||
#ifndef _POSIX_PTHREAD_SEMANTICS
|
||||
# undef _POSIX_PTHREAD_SEMANTICS
|
||||
#endif
|
||||
/* Enable extensions on HP NonStop. */
|
||||
#ifndef _TANDEM_SOURCE
|
||||
# undef _TANDEM_SOURCE
|
||||
#endif
|
||||
/* Enable general extensions on Solaris. */
|
||||
#ifndef __EXTENSIONS__
|
||||
# undef __EXTENSIONS__
|
||||
#endif
|
||||
])
|
||||
AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__],
|
||||
[ac_cv_safe_to_define___extensions__],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[
|
||||
# define __EXTENSIONS__ 1
|
||||
]AC_INCLUDES_DEFAULT])],
|
||||
[ac_cv_safe_to_define___extensions__=yes],
|
||||
[ac_cv_safe_to_define___extensions__=no])])
|
||||
test $ac_cv_safe_to_define___extensions__ = yes &&
|
||||
AC_DEFINE([__EXTENSIONS__])
|
||||
AC_DEFINE([_ALL_SOURCE])
|
||||
AC_DEFINE([_GNU_SOURCE])
|
||||
AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
|
||||
AC_DEFINE([_TANDEM_SOURCE])
|
||||
])# AC_USE_SYSTEM_EXTENSIONS
|
||||
|
||||
# gl_USE_SYSTEM_EXTENSIONS
|
||||
# ------------------------
|
||||
# Enable extensions on systems that normally disable them,
|
||||
# typically due to standards-conformance issues.
|
||||
AC_DEFUN_ONCE([gl_USE_SYSTEM_EXTENSIONS],
|
||||
AC_DEFUN([AC_TYPE_LONG_LONG_INT],
|
||||
[
|
||||
dnl Require this macro before AC_USE_SYSTEM_EXTENSIONS.
|
||||
dnl gnulib does not need it. But if it gets required by third-party macros
|
||||
dnl after AC_USE_SYSTEM_EXTENSIONS is required, autoconf 2.62..2.63 emit a
|
||||
dnl warning: "AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS".
|
||||
dnl Note: We can do this only for one of the macros AC_AIX, AC_GNU_SOURCE,
|
||||
dnl AC_MINIX. If people still use AC_AIX or AC_MINIX, they are out of luck.
|
||||
AC_REQUIRE([AC_GNU_SOURCE])
|
||||
|
||||
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
|
||||
AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
|
||||
AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int],
|
||||
[ac_cv_type_long_long_int=yes
|
||||
if test "x${ac_cv_prog_cc_c99-no}" = xno; then
|
||||
ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int
|
||||
if test $ac_cv_type_long_long_int = yes; then
|
||||
dnl Catch a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004.
|
||||
dnl If cross compiling, assume the bug is not important, since
|
||||
dnl nobody cross compiles for this platform as far as we know.
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[@%:@include <limits.h>
|
||||
@%:@ifndef LLONG_MAX
|
||||
@%:@ define HALF \
|
||||
(1LL << (sizeof (long long int) * CHAR_BIT - 2))
|
||||
@%:@ define LLONG_MAX (HALF - 1 + HALF)
|
||||
@%:@endif]],
|
||||
[[long long int n = 1;
|
||||
int i;
|
||||
for (i = 0; ; i++)
|
||||
{
|
||||
long long int m = n << i;
|
||||
if (m >> i != n)
|
||||
return 1;
|
||||
if (LLONG_MAX / 2 < m)
|
||||
break;
|
||||
}
|
||||
return 0;]])],
|
||||
[],
|
||||
[ac_cv_type_long_long_int=no],
|
||||
[:])
|
||||
fi
|
||||
fi])
|
||||
if test $ac_cv_type_long_long_int = yes; then
|
||||
AC_DEFINE([HAVE_LONG_LONG_INT], [1],
|
||||
[Define to 1 if the system has the type 'long long int'.])
|
||||
fi
|
||||
])
|
||||
|
||||
# Copyright (C) 2002-2014 Free Software Foundation, Inc.
|
||||
# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works.
|
||||
# This fixes a bug in Autoconf 2.61, and can be faster
|
||||
# than what's in Autoconf 2.62 through 2.68.
|
||||
|
||||
# Note: If the type 'unsigned long long int' exists but is only 32 bits
|
||||
# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT
|
||||
# will not be defined. In this case you can treat 'unsigned long long int'
|
||||
# like 'unsigned long int'.
|
||||
|
||||
AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT],
|
||||
[
|
||||
AC_CACHE_CHECK([for unsigned long long int],
|
||||
[ac_cv_type_unsigned_long_long_int],
|
||||
[ac_cv_type_unsigned_long_long_int=yes
|
||||
if test "x${ac_cv_prog_cc_c99-no}" = xno; then
|
||||
AC_LINK_IFELSE(
|
||||
[_AC_TYPE_LONG_LONG_SNIPPET],
|
||||
[],
|
||||
[ac_cv_type_unsigned_long_long_int=no])
|
||||
fi])
|
||||
if test $ac_cv_type_unsigned_long_long_int = yes; then
|
||||
AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1],
|
||||
[Define to 1 if the system has the type 'unsigned long long int'.])
|
||||
fi
|
||||
])
|
||||
|
||||
# Expands to a C program that can be used to test for simultaneous support
|
||||
# of 'long long' and 'unsigned long long'. We don't want to say that
|
||||
# 'long long' is available if 'unsigned long long' is not, or vice versa,
|
||||
# because too many programs rely on the symmetry between signed and unsigned
|
||||
# integer types (excluding 'bool').
|
||||
AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET],
|
||||
[
|
||||
AC_LANG_PROGRAM(
|
||||
[[/* For now, do not test the preprocessor; as of 2007 there are too many
|
||||
implementations with broken preprocessors. Perhaps this can
|
||||
be revisited in 2012. In the meantime, code should not expect
|
||||
#if to work with literals wider than 32 bits. */
|
||||
/* Test literals. */
|
||||
long long int ll = 9223372036854775807ll;
|
||||
long long int nll = -9223372036854775807LL;
|
||||
unsigned long long int ull = 18446744073709551615ULL;
|
||||
/* Test constant expressions. */
|
||||
typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
|
||||
? 1 : -1)];
|
||||
typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
|
||||
? 1 : -1)];
|
||||
int i = 63;]],
|
||||
[[/* Test availability of runtime routines for shift and division. */
|
||||
long long int llmax = 9223372036854775807ll;
|
||||
unsigned long long int ullmax = 18446744073709551615ull;
|
||||
return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
|
||||
| (llmax / ll) | (llmax % ll)
|
||||
| (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
|
||||
| (ullmax / ull) | (ullmax % ull));]])
|
||||
])
|
||||
|
||||
# Copyright (C) 2002-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -154,7 +149,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
|
||||
[am__api_version='1.15'
|
||||
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
||||
dnl require some minimum version. Point them to the right macro.
|
||||
m4_if([$1], [1.15], [],
|
||||
m4_if([$1], [1.15.1], [],
|
||||
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
||||
])
|
||||
|
||||
@ -170,12 +165,12 @@ m4_define([_AM_AUTOCONF_VERSION], [])
|
||||
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
||||
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||
[AM_AUTOMAKE_VERSION([1.15])dnl
|
||||
[AM_AUTOMAKE_VERSION([1.15.1])dnl
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
||||
|
||||
# Copyright (C) 2011-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2011-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -237,7 +232,7 @@ AC_SUBST([AR])dnl
|
||||
|
||||
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -289,7 +284,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
|
||||
|
||||
# AM_CONDITIONAL -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1997-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -320,7 +315,7 @@ AC_CONFIG_COMMANDS_PRE(
|
||||
Usually this means the macro was only invoked conditionally.]])
|
||||
fi])])
|
||||
|
||||
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -511,7 +506,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
|
||||
|
||||
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -587,7 +582,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
|
||||
# Do all the work for Automake. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -784,7 +779,7 @@ for _am_header in $config_headers :; do
|
||||
done
|
||||
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
|
||||
|
||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -805,7 +800,7 @@ if test x"${install_sh+set}" != xset; then
|
||||
fi
|
||||
AC_SUBST([install_sh])])
|
||||
|
||||
# Copyright (C) 2003-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2003-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -826,7 +821,7 @@ AC_SUBST([am__leading_dot])])
|
||||
|
||||
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -876,7 +871,7 @@ rm -f confinc confmf
|
||||
|
||||
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1997-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -915,7 +910,7 @@ fi
|
||||
|
||||
# Helper functions for option handling. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -944,7 +939,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
|
||||
AC_DEFUN([_AM_IF_OPTION],
|
||||
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
||||
|
||||
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -991,7 +986,7 @@ AC_LANG_POP([C])])
|
||||
# For backward compatibility.
|
||||
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
|
||||
|
||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -1010,7 +1005,7 @@ AC_DEFUN([AM_RUN_LOG],
|
||||
|
||||
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -1091,7 +1086,7 @@ AC_CONFIG_COMMANDS_PRE(
|
||||
rm -f conftest.file
|
||||
])
|
||||
|
||||
# Copyright (C) 2009-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2009-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -1151,7 +1146,7 @@ AC_SUBST([AM_BACKSLASH])dnl
|
||||
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
|
||||
])
|
||||
|
||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -1179,7 +1174,7 @@ fi
|
||||
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
|
||||
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||||
|
||||
# Copyright (C) 2006-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2006-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -1198,7 +1193,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
|
||||
|
||||
# Check how to create a tarball. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2004-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2004-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -52,7 +52,7 @@ esac
|
||||
case "$NTP_BDIR" in
|
||||
'')
|
||||
case "$IAM" in
|
||||
*.ntp.org)
|
||||
*.ntp.org | *.ntfo.org)
|
||||
NTP_BDIR=host
|
||||
;;
|
||||
*.udel.edu)
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -296,6 +296,9 @@
|
||||
/* use old autokey session key behavior? */
|
||||
#undef DISABLE_BUG1243_FIX
|
||||
|
||||
/* use old autokey session key behavior? */
|
||||
#undef DISABLE_BUG3527_FIX
|
||||
|
||||
/* synch TODR hourly? */
|
||||
#undef DOSYNCTODR
|
||||
|
||||
@ -550,7 +553,7 @@
|
||||
/* Define to 1 if the system has the type `long long'. */
|
||||
#undef HAVE_LONG_LONG
|
||||
|
||||
/* Define to 1 if the system has the type `long long int'. */
|
||||
/* Define to 1 if the system has the type 'long long int'. */
|
||||
#undef HAVE_LONG_LONG_INT
|
||||
|
||||
/* if you have SunOS LWP package */
|
||||
@ -1170,7 +1173,7 @@
|
||||
/* deviant sigwait? */
|
||||
#undef HAVE_UNIXWARE_SIGWAIT
|
||||
|
||||
/* Define to 1 if the system has the type `unsigned long long int'. */
|
||||
/* Define to 1 if the system has the type 'unsigned long long int'. */
|
||||
#undef HAVE_UNSIGNED_LONG_LONG_INT
|
||||
|
||||
/* Define to 1 if you have the `updwtmp' function. */
|
||||
@ -1611,6 +1614,28 @@ typedef unsigned int uintptr_t;
|
||||
/* OK to use snprintb()? */
|
||||
#undef USE_SNPRINTB
|
||||
|
||||
/* Enable extensions on AIX 3, Interix. */
|
||||
#ifndef _ALL_SOURCE
|
||||
# undef _ALL_SOURCE
|
||||
#endif
|
||||
/* Enable GNU extensions on systems that have them. */
|
||||
#ifndef _GNU_SOURCE
|
||||
# undef _GNU_SOURCE
|
||||
#endif
|
||||
/* Enable threading extensions on Solaris. */
|
||||
#ifndef _POSIX_PTHREAD_SEMANTICS
|
||||
# undef _POSIX_PTHREAD_SEMANTICS
|
||||
#endif
|
||||
/* Enable extensions on HP NonStop. */
|
||||
#ifndef _TANDEM_SOURCE
|
||||
# undef _TANDEM_SOURCE
|
||||
#endif
|
||||
/* Enable general extensions on Solaris. */
|
||||
#ifndef __EXTENSIONS__
|
||||
# undef __EXTENSIONS__
|
||||
#endif
|
||||
|
||||
|
||||
/* Can we use SIGPOLL for tty IO? */
|
||||
#undef USE_TTY_SIGPOLL
|
||||
|
||||
@ -1663,9 +1688,6 @@ typedef unsigned int uintptr_t;
|
||||
/* enable thread safety */
|
||||
#undef _THREAD_SAFE
|
||||
|
||||
/* Define to 500 only on HP-UX. */
|
||||
#undef _XOPEN_SOURCE
|
||||
|
||||
/* Are we _special_? */
|
||||
#undef __APPLE_USE_RFC_3542
|
||||
|
||||
@ -1674,28 +1696,6 @@ typedef unsigned int uintptr_t;
|
||||
# undef __CHAR_UNSIGNED__
|
||||
#endif
|
||||
|
||||
/* Enable extensions on AIX 3, Interix. */
|
||||
#ifndef _ALL_SOURCE
|
||||
# undef _ALL_SOURCE
|
||||
#endif
|
||||
/* Enable GNU extensions on systems that have them. */
|
||||
#ifndef _GNU_SOURCE
|
||||
# undef _GNU_SOURCE
|
||||
#endif
|
||||
/* Enable threading extensions on Solaris. */
|
||||
#ifndef _POSIX_PTHREAD_SEMANTICS
|
||||
# undef _POSIX_PTHREAD_SEMANTICS
|
||||
#endif
|
||||
/* Enable extensions on HP NonStop. */
|
||||
#ifndef _TANDEM_SOURCE
|
||||
# undef _TANDEM_SOURCE
|
||||
#endif
|
||||
/* Enable general extensions on Solaris. */
|
||||
#ifndef __EXTENSIONS__
|
||||
# undef __EXTENSIONS__
|
||||
#endif
|
||||
|
||||
|
||||
/* deviant */
|
||||
#undef adjtimex
|
||||
|
||||
|
137
contrib/ntp/configure
vendored
137
contrib/ntp/configure
vendored
@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.69 for ntp 4.2.8p12.
|
||||
# Generated by GNU Autoconf 2.69 for ntp 4.2.8p13.
|
||||
#
|
||||
# Report bugs to <http://bugs.ntp.org./>.
|
||||
#
|
||||
@ -590,8 +590,8 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='ntp'
|
||||
PACKAGE_TARNAME='ntp'
|
||||
PACKAGE_VERSION='4.2.8p12'
|
||||
PACKAGE_STRING='ntp 4.2.8p12'
|
||||
PACKAGE_VERSION='4.2.8p13'
|
||||
PACKAGE_STRING='ntp 4.2.8p13'
|
||||
PACKAGE_BUGREPORT='http://bugs.ntp.org./'
|
||||
PACKAGE_URL='http://www.ntp.org./'
|
||||
|
||||
@ -969,6 +969,7 @@ enable_clockctl
|
||||
enable_linuxcaps
|
||||
enable_solarisprivs
|
||||
enable_trustedbsd_mac
|
||||
enable_signalled_io
|
||||
with_arlib
|
||||
with_net_snmp_config
|
||||
enable_libseccomp
|
||||
@ -1051,6 +1052,7 @@ enable_hourly_todr_sync
|
||||
enable_kernel_fll_bug
|
||||
enable_bug1243_fix
|
||||
enable_bug3020_fix
|
||||
enable_bug3527_fix
|
||||
enable_irig_sawtooth
|
||||
enable_nist
|
||||
enable_ntp_signd
|
||||
@ -1615,7 +1617,7 @@ if test "$ac_init_help" = "long"; then
|
||||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures ntp 4.2.8p12 to adapt to many kinds of systems.
|
||||
\`configure' configures ntp 4.2.8p13 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@ -1685,7 +1687,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of ntp 4.2.8p12:";;
|
||||
short | recursive ) echo "Configuration of ntp 4.2.8p13:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@ -1734,6 +1736,7 @@ Optional Features and Packages:
|
||||
--enable-solarisprivs + Use Solaris privileges for non-root clock control
|
||||
--enable-trustedbsd-mac s Use TrustedBSD MAC policy for non-root clock
|
||||
control
|
||||
--enable-signalled-io s Use signalled IO if we can
|
||||
--with-arlib - deprecated, arlib not distributed
|
||||
--with-net-snmp-config + =net-snmp-config
|
||||
--enable-libseccomp EXPERIMENTAL: enable support for libseccomp
|
||||
@ -1826,6 +1829,7 @@ Optional Features and Packages:
|
||||
--enable-kernel-fll-bug s if we should avoid a kernel FLL bug
|
||||
--enable-bug1243-fix + use unmodified autokey session keys
|
||||
--enable-bug3020-fix + Provide the explicit 127.0.0.0/8 martian filter
|
||||
--enable-bug3527-fix + provide correct mode7 fudgetime2 behavior
|
||||
--enable-irig-sawtooth s if we should enable the IRIG sawtooth filter
|
||||
--enable-nist - if we should enable the NIST lockclock scheme
|
||||
--enable-ntp-signd - Provide support for Samba's signing daemon,
|
||||
@ -1926,7 +1930,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
ntp configure 4.2.8p12
|
||||
ntp configure 4.2.8p13
|
||||
generated by GNU Autoconf 2.69
|
||||
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
@ -2635,7 +2639,7 @@ cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by ntp $as_me 4.2.8p12, which was
|
||||
It was created by ntp $as_me 4.2.8p13, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@ -3636,7 +3640,7 @@ fi
|
||||
|
||||
# Define the identity of the package.
|
||||
PACKAGE='ntp'
|
||||
VERSION='4.2.8p12'
|
||||
VERSION='4.2.8p13'
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
@ -5116,8 +5120,6 @@ done
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_minix_config_h" = xyes; then :
|
||||
MINIX=yes
|
||||
@ -5138,14 +5140,6 @@ $as_echo "#define _MINIX 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
|
||||
case "$host_os" in
|
||||
hpux*)
|
||||
|
||||
$as_echo "#define _XOPEN_SOURCE 500" >>confdefs.h
|
||||
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
|
||||
$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
|
||||
@ -24024,6 +24018,9 @@ case "$ntp_have_solarisprivs" in
|
||||
|
||||
$as_echo "#define HAVE_SOLARIS_PRIVS 1" >>confdefs.h
|
||||
|
||||
;;
|
||||
'') ntp_have_solarisprivs="no"
|
||||
;;
|
||||
esac
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ntp_have_solarisprivs" >&5
|
||||
@ -24057,6 +24054,9 @@ case "$ntp_use_trustedbsd_mac$ac_cv_header_sys_mac_h" in
|
||||
|
||||
$as_echo "#define HAVE_TRUSTEDBSD_MAC 1" >>confdefs.h
|
||||
|
||||
;;
|
||||
*) ntp_use_trustedbsd_mac="no";
|
||||
;;
|
||||
esac
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ntp_use_trustedbsd_mac" >&5
|
||||
@ -24576,6 +24576,16 @@ fi
|
||||
done
|
||||
|
||||
|
||||
# HMS: does this need to be a cached variable?
|
||||
# Check whether --enable-signalled-io was given.
|
||||
if test "${enable_signalled_io+set}" = set; then :
|
||||
enableval=$enable_signalled_io; use_signalled_io=$enableval
|
||||
else
|
||||
use_signalled_io=yes
|
||||
|
||||
fi
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIGIO" >&5
|
||||
$as_echo_n "checking for SIGIO... " >&6; }
|
||||
if ${ntp_cv_hdr_def_sigio+:} false; then :
|
||||
@ -24650,13 +24660,24 @@ case "$ntp_cv_hdr_def_sigio" in
|
||||
ans=no
|
||||
;;
|
||||
esac
|
||||
case "$ans" in
|
||||
no)
|
||||
ans="Possible for $host but disabled because of reported problems"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
case "$ans" in
|
||||
yes)
|
||||
case "$use_signalled_io" in
|
||||
yes)
|
||||
|
||||
$as_echo "#define HAVE_SIGNALED_IO 1" >>confdefs.h
|
||||
|
||||
;;
|
||||
*) ans="Allowed for $host but --disable-signalled-io was given"
|
||||
;;
|
||||
esac
|
||||
esac
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
|
||||
$as_echo "$ans" >&6; }
|
||||
@ -28663,6 +28684,62 @@ case "$ntp_ok" in
|
||||
|
||||
$as_echo "#define CLOCK_BANC 1" >>confdefs.h
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing bcStartPci" >&5
|
||||
$as_echo_n "checking for library containing bcStartPci... " >&6; }
|
||||
if ${ac_cv_search_bcStartPci+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_func_search_save_LIBS=$LIBS
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
/* Override any GCC internal prototype to avoid an error.
|
||||
Use char because int might match the return type of a GCC
|
||||
builtin and then its argument prototype would still apply. */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
char bcStartPci ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return bcStartPci ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
for ac_lib in '' bcsdk; do
|
||||
if test -z "$ac_lib"; then
|
||||
ac_res="none required"
|
||||
else
|
||||
ac_res=-l$ac_lib
|
||||
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
|
||||
fi
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
ac_cv_search_bcStartPci=$ac_res
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext
|
||||
if ${ac_cv_search_bcStartPci+:} false; then :
|
||||
break
|
||||
fi
|
||||
done
|
||||
if ${ac_cv_search_bcStartPci+:} false; then :
|
||||
|
||||
else
|
||||
ac_cv_search_bcStartPci=no
|
||||
fi
|
||||
rm conftest.$ac_ext
|
||||
LIBS=$ac_func_search_save_LIBS
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_bcStartPci" >&5
|
||||
$as_echo "$ac_cv_search_bcStartPci" >&6; }
|
||||
ac_res=$ac_cv_search_bcStartPci
|
||||
if test "$ac_res" != no; then :
|
||||
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
|
||||
|
||||
fi
|
||||
|
||||
;;
|
||||
esac
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
|
||||
@ -31999,6 +32076,26 @@ $as_echo "#define ENABLE_BUG3020_FIX 1" >>confdefs.h
|
||||
esac
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we want correct mode7 fudgetime2 behavior" >&5
|
||||
$as_echo_n "checking if we want correct mode7 fudgetime2 behavior... " >&6; }
|
||||
# Check whether --enable-bug3527-fix was given.
|
||||
if test "${enable_bug3527_fix+set}" = set; then :
|
||||
enableval=$enable_bug3527_fix; ans=$enableval
|
||||
else
|
||||
ans=yes
|
||||
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
|
||||
$as_echo "$ans" >&6; }
|
||||
case "$ans" in
|
||||
no)
|
||||
|
||||
$as_echo "#define DISABLE_BUG3527_FIX 1" >>confdefs.h
|
||||
|
||||
esac
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we should use the IRIG sawtooth filter" >&5
|
||||
$as_echo_n "checking if we should use the IRIG sawtooth filter... " >&6; }
|
||||
|
||||
@ -34054,7 +34151,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by ntp $as_me 4.2.8p12, which was
|
||||
This file was extended by ntp $as_me 4.2.8p13, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@ -34121,7 +34218,7 @@ _ACEOF
|
||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
ac_cs_version="\\
|
||||
ntp config.status 4.2.8p12
|
||||
ntp config.status 4.2.8p13
|
||||
configured by $0, generated by GNU Autoconf 2.69,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
@ -1749,6 +1749,7 @@ case "$ntp_ok" in
|
||||
yes)
|
||||
ntp_refclock=yes
|
||||
AC_DEFINE([CLOCK_BANC], [1], [Datum/Bancomm bc635/VME interface?])
|
||||
AC_SEARCH_LIBS([bcStartPci], [bcsdk], , , [])
|
||||
;;
|
||||
esac
|
||||
AC_MSG_RESULT([$ntp_ok])
|
||||
@ -4194,6 +4195,24 @@ case "$ans" in
|
||||
esac
|
||||
|
||||
|
||||
AC_MSG_CHECKING([if we want correct mode7 fudgetime2 behavior])
|
||||
AC_ARG_ENABLE(
|
||||
[bug3527-fix],
|
||||
[AS_HELP_STRING(
|
||||
[--enable-bug3527-fix],
|
||||
[+ provide correct mode7 fudgetime2 behavior]
|
||||
)],
|
||||
[ans=$enableval],
|
||||
[ans=yes]
|
||||
)
|
||||
AC_MSG_RESULT([$ans])
|
||||
case "$ans" in
|
||||
no)
|
||||
AC_DEFINE([DISABLE_BUG3527_FIX], [1],
|
||||
[use old autokey session key behavior?])
|
||||
esac
|
||||
|
||||
|
||||
AC_MSG_CHECKING([if we should use the IRIG sawtooth filter])
|
||||
|
||||
case "$host" in
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -93,6 +93,7 @@ extern systime_func_ptr ntpcal_set_timefunc(systime_func_ptr);
|
||||
#define SECSPERLEAPYEAR (366 * SECSPERDAY) /* leap year */
|
||||
#define SECSPERAVGYEAR 31556952 /* mean year length over 400yrs */
|
||||
|
||||
#define GPSWEEKS 1024 /* GPS week cycle */
|
||||
/*
|
||||
* Gross hacks. I have illicit knowlege that there won't be overflows
|
||||
* here, the compiler often can't tell this.
|
||||
@ -404,14 +405,21 @@ basedate_get_eracenter(void);
|
||||
extern time_t
|
||||
basedate_get_erabase(void);
|
||||
|
||||
extern uint32_t
|
||||
basedate_get_gpsweek(void);
|
||||
|
||||
extern uint32_t
|
||||
basedate_expand_gpsweek(unsigned short weekno);
|
||||
|
||||
/*
|
||||
* Additional support stuff for Ed Rheingold's calendrical calculations
|
||||
*/
|
||||
|
||||
/*
|
||||
* Start day of NTP time as days past the imaginary date 12/1/1 BC.
|
||||
* (This is the beginning of the Christian Era, or BCE.)
|
||||
* Start day of NTP time as days past 0000-12-31 in the proleptic
|
||||
* Gregorian calendar. (So 0001-01-01 is day number 1; this is the Rata
|
||||
* Die counting scheme used by Ed Rheingold in his book "Calendrical
|
||||
* Calculations".)
|
||||
*/
|
||||
#define DAY_NTP_STARTS 693596
|
||||
|
||||
@ -420,15 +428,25 @@ basedate_get_erabase(void);
|
||||
*/
|
||||
#define DAY_UNIX_STARTS 719163
|
||||
|
||||
/*
|
||||
* Start day of the GPS epoch. This is the Rata Die of 1980-01-06
|
||||
*/
|
||||
#define DAY_GPS_STARTS 722819
|
||||
|
||||
/*
|
||||
* Difference between UN*X and NTP epoch (25567).
|
||||
*/
|
||||
#define NTP_TO_UNIX_DAYS (DAY_UNIX_STARTS - DAY_NTP_STARTS)
|
||||
|
||||
/*
|
||||
* Difference between GPS and NTP epoch (29224)
|
||||
*/
|
||||
#define NTP_TO_GPS_DAYS (DAY_GPS_STARTS - DAY_NTP_STARTS)
|
||||
|
||||
/*
|
||||
* Days in a normal 4 year leap year calendar cycle (1461).
|
||||
*/
|
||||
#define GREGORIAN_NORMAL_LEAP_CYCLE_DAYS (3 * 365 + 366)
|
||||
#define GREGORIAN_NORMAL_LEAP_CYCLE_DAYS (4 * 365 + 1)
|
||||
|
||||
/*
|
||||
* Days in a normal 100 year leap year calendar (36524). We lose a
|
||||
|
@ -40,6 +40,9 @@ extern void setup_logfile (const char *);
|
||||
extern void errno_to_str(int, char *, size_t);
|
||||
#endif
|
||||
|
||||
extern int xvsbprintf(char**, char* const, char const*, va_list) NTP_PRINTF(3, 0);
|
||||
extern int xsbprintf(char**, char* const, char const*, ...) NTP_PRINTF(3, 4);
|
||||
|
||||
/*
|
||||
* When building without OpenSSL, use a few macros of theirs to
|
||||
* minimize source differences in NTP.
|
||||
|
@ -275,8 +275,8 @@ extern u_long orphwait; /* orphan wait time */
|
||||
extern char *sys_hostname; /* host name */
|
||||
extern char *sys_groupname; /* group name */
|
||||
extern char *group_name; /* group name */
|
||||
extern u_long sys_revoke; /* keys revoke timeout */
|
||||
extern u_long sys_automax; /* session key timeout */
|
||||
extern u_char sys_revoke; /* keys revoke timeout */
|
||||
extern u_char sys_automax; /* session key timeout */
|
||||
#endif /* AUTOKEY */
|
||||
|
||||
/* ntp_util.c */
|
||||
|
@ -108,7 +108,6 @@ extern unsigned int splclock (void);
|
||||
* some constants useful for GPS time conversion
|
||||
*/
|
||||
#define GPSORIGIN 2524953600UL /* NTP origin - GPS origin in seconds */
|
||||
#define GPSWRAP 990 /* assume week count less than this in the previous epoch */
|
||||
#define GPSWEEKS 1024 /* number of weeks until the GPS epch rolls over */
|
||||
|
||||
/*
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -110,6 +110,7 @@ libntp_a_SRCS = \
|
||||
vint64ops.c \
|
||||
work_fork.c \
|
||||
work_thread.c \
|
||||
xsbprintf.c \
|
||||
ymd2yd.c \
|
||||
$(libisc_SRCS) \
|
||||
$(NULL)
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -160,7 +160,7 @@ am__libntp_a_SOURCES_DIST = systime.c a_md5encrypt.c adjtime.c \
|
||||
snprintf.c socket.c socktoa.c socktohost.c ssl_init.c \
|
||||
statestr.c strdup.c strl_obsd.c syssignal.c timetoa.c \
|
||||
timevalops.c uglydate.c vint64ops.c work_fork.c work_thread.c \
|
||||
ymd2yd.c $(srcdir)/../lib/isc/assertions.c \
|
||||
xsbprintf.c ymd2yd.c $(srcdir)/../lib/isc/assertions.c \
|
||||
$(srcdir)/../lib/isc/buffer.c \
|
||||
$(srcdir)/../lib/isc/backtrace-emptytbl.c \
|
||||
$(srcdir)/../lib/isc/backtrace.c \
|
||||
@ -224,8 +224,8 @@ am__objects_4 = a_md5encrypt.$(OBJEXT) adjtime.$(OBJEXT) \
|
||||
ssl_init.$(OBJEXT) statestr.$(OBJEXT) strdup.$(OBJEXT) \
|
||||
strl_obsd.$(OBJEXT) syssignal.$(OBJEXT) timetoa.$(OBJEXT) \
|
||||
timevalops.$(OBJEXT) uglydate.$(OBJEXT) vint64ops.$(OBJEXT) \
|
||||
work_fork.$(OBJEXT) work_thread.$(OBJEXT) ymd2yd.$(OBJEXT) \
|
||||
$(am__objects_3) $(am__objects_1)
|
||||
work_fork.$(OBJEXT) work_thread.$(OBJEXT) xsbprintf.$(OBJEXT) \
|
||||
ymd2yd.$(OBJEXT) $(am__objects_3) $(am__objects_1)
|
||||
am_libntp_a_OBJECTS = systime.$(OBJEXT) $(am__objects_4)
|
||||
libntp_a_OBJECTS = $(am_libntp_a_OBJECTS)
|
||||
libntpsim_a_AR = $(AR) $(ARFLAGS)
|
||||
@ -244,7 +244,7 @@ am__libntpsim_a_SOURCES_DIST = systime_s.c a_md5encrypt.c adjtime.c \
|
||||
snprintf.c socket.c socktoa.c socktohost.c ssl_init.c \
|
||||
statestr.c strdup.c strl_obsd.c syssignal.c timetoa.c \
|
||||
timevalops.c uglydate.c vint64ops.c work_fork.c work_thread.c \
|
||||
ymd2yd.c $(srcdir)/../lib/isc/assertions.c \
|
||||
xsbprintf.c ymd2yd.c $(srcdir)/../lib/isc/assertions.c \
|
||||
$(srcdir)/../lib/isc/buffer.c \
|
||||
$(srcdir)/../lib/isc/backtrace-emptytbl.c \
|
||||
$(srcdir)/../lib/isc/backtrace.c \
|
||||
@ -704,6 +704,7 @@ libntp_a_SRCS = \
|
||||
vint64ops.c \
|
||||
work_fork.c \
|
||||
work_thread.c \
|
||||
xsbprintf.c \
|
||||
ymd2yd.c \
|
||||
$(libisc_SRCS) \
|
||||
$(NULL)
|
||||
@ -876,6 +877,7 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vint64ops.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/work_fork.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/work_thread.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xsbprintf.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ymd2yd.Po@am__quote@
|
||||
|
||||
.c.o:
|
||||
|
@ -221,12 +221,14 @@ authreadkeys(
|
||||
log_maybe(NULL,
|
||||
"authreadkeys: invalid type for key %d",
|
||||
keyno);
|
||||
# ifdef ENABLE_CMAC
|
||||
} else if (NID_cmac != keytype &&
|
||||
EVP_get_digestbynid(keytype) == NULL) {
|
||||
log_maybe(NULL,
|
||||
"authreadkeys: no algorithm for key %d",
|
||||
keyno);
|
||||
keytype = 0;
|
||||
# endif /* ENABLE_CMAC */
|
||||
}
|
||||
#else /* !OPENSSL follows */
|
||||
/*
|
||||
|
@ -54,7 +54,7 @@ calmonthstart(u_int32 ntptime, const time_t *pivot)
|
||||
}
|
||||
|
||||
/*
|
||||
* calweekstart - get NTP time at midnight of the last monday on or
|
||||
* calweekstart - get NTP time at midnight of the last Monday on or
|
||||
* before the current date.
|
||||
*/
|
||||
u_int32
|
||||
|
@ -1832,6 +1832,7 @@ isocal_date_to_ntp(
|
||||
*/
|
||||
|
||||
static int32_t s_baseday = NTP_TO_UNIX_DAYS;
|
||||
static int32_t s_gpsweek = 0;
|
||||
|
||||
int32_t
|
||||
basedate_eval_buildstamp(void)
|
||||
@ -1901,6 +1902,7 @@ basedate_set_day(
|
||||
struct calendar jd;
|
||||
int32_t retv;
|
||||
|
||||
/* set NTP base date for NTP era unfolding */
|
||||
if (day < NTP_TO_UNIX_DAYS) {
|
||||
msyslog(LOG_WARNING,
|
||||
"baseday_set_day: invalid day (%lu), UNIX epoch substituted",
|
||||
@ -1912,6 +1914,17 @@ basedate_set_day(
|
||||
ntpcal_rd_to_date(&jd, day + DAY_NTP_STARTS);
|
||||
msyslog(LOG_INFO, "basedate set to %04hu-%02hu-%02hu",
|
||||
jd.year, (u_short)jd.month, (u_short)jd.monthday);
|
||||
|
||||
/* set GPS base week for GPS week unfolding */
|
||||
day = ntpcal_weekday_ge(day + DAY_NTP_STARTS, CAL_SUNDAY)
|
||||
- DAY_NTP_STARTS;
|
||||
if (day < NTP_TO_GPS_DAYS)
|
||||
day = NTP_TO_GPS_DAYS;
|
||||
s_gpsweek = (day - NTP_TO_GPS_DAYS) / DAYSPERWEEK;
|
||||
ntpcal_rd_to_date(&jd, day + DAY_NTP_STARTS);
|
||||
msyslog(LOG_INFO, "gps base set to %04hu-%02hu-%02hu (week %d)",
|
||||
jd.year, (u_short)jd.month, (u_short)jd.monthday, s_gpsweek);
|
||||
|
||||
return retv;
|
||||
}
|
||||
|
||||
@ -1934,4 +1947,29 @@ basedate_get_erabase(void)
|
||||
return retv;
|
||||
}
|
||||
|
||||
uint32_t
|
||||
basedate_get_gpsweek(void)
|
||||
{
|
||||
return s_gpsweek;
|
||||
}
|
||||
|
||||
uint32_t
|
||||
basedate_expand_gpsweek(
|
||||
unsigned short weekno
|
||||
)
|
||||
{
|
||||
/* We do a fast modulus expansion here. Since all quantities are
|
||||
* unsigned and we cannot go before the start of the GPS epoch
|
||||
* anyway, and since the truncated GPS week number is 10 bit, the
|
||||
* expansion becomes a simple sub/and/add sequence.
|
||||
*/
|
||||
#if GPSWEEKS != 1024
|
||||
# error GPSWEEKS defined wrong -- should be 1024!
|
||||
#endif
|
||||
|
||||
uint32_t diff;
|
||||
diff = ((uint32_t)weekno - s_gpsweek) & (GPSWEEKS - 1);
|
||||
return s_gpsweek + diff;
|
||||
}
|
||||
|
||||
/* -*-EOF-*- */
|
||||
|
@ -89,7 +89,9 @@ netwrite(
|
||||
}
|
||||
|
||||
|
||||
int set_user_group_ids(void);
|
||||
#if defined(HAVE_DROPROOT)
|
||||
extern int set_user_group_ids(void);
|
||||
#endif
|
||||
|
||||
/* === functions === */
|
||||
/*
|
||||
@ -594,7 +596,9 @@ fork_blocking_child(
|
||||
init_logging("ntp_intres", 0, FALSE);
|
||||
setup_logfile(NULL);
|
||||
|
||||
#ifdef HAVE_DROPROOT
|
||||
(void) set_user_group_ids();
|
||||
#endif
|
||||
|
||||
/*
|
||||
* And now back to the portable code
|
||||
|
75
contrib/ntp/libntp/xsbprintf.c
Normal file
75
contrib/ntp/libntp/xsbprintf.c
Normal file
@ -0,0 +1,75 @@
|
||||
/*
|
||||
* xsbprintf.c - string buffer formatting helpers
|
||||
*
|
||||
* Written by Juergen Perlinger (perlinger@ntp.org) for the NTP project.
|
||||
* The contents of 'html/copyright.html' apply.
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include "ntp_stdlib.h"
|
||||
|
||||
/* eXtended Varlist String Buffer printf
|
||||
*
|
||||
* Formats via 'vsnprintf' into a string buffer, with some semantic
|
||||
* specialties:
|
||||
*
|
||||
* - The start of the buffer pointer is updated according to the number
|
||||
* of characters written.
|
||||
* - If the buffer is insufficient to format the number of charactes,
|
||||
* the partial result will be be discarded, and zero is returned to
|
||||
* indicate nothing was written to the buffer.
|
||||
* - On successful formatting, the return code is the return value of
|
||||
* the inner call to 'vsnprintf()'.
|
||||
* - If there is any error, the state of the buffer will not be
|
||||
* changed. (Bytes in the buffer might be smashed, but the buffer
|
||||
* position does not change, and the NUL marker stays in place at the
|
||||
* current buffer position.)
|
||||
* - If '(*ppbuf - pend) <= 0' (or ppbuf is NULL), fail with EINVAL.
|
||||
*/
|
||||
int
|
||||
xvsbprintf(
|
||||
char **ppbuf, /* pointer to buffer pointer (I/O) */
|
||||
char * const pend, /* buffer end (I) */
|
||||
char const *pfmt, /* printf-like format string */
|
||||
va_list va /* formatting args for above */
|
||||
)
|
||||
{
|
||||
char *pbuf = (ppbuf) ? *ppbuf : NULL;
|
||||
int rc = -1;
|
||||
if (pbuf && (pend - pbuf > 0)) {
|
||||
size_t blen = (size_t)(pend - pbuf);
|
||||
rc = vsnprintf(pbuf, blen, pfmt, va);
|
||||
if (rc > 0) {
|
||||
if ((size_t)rc >= blen)
|
||||
rc = 0;
|
||||
pbuf += rc;
|
||||
}
|
||||
*pbuf = '\0'; /* fear of bad vsnprintf */
|
||||
*ppbuf = pbuf;
|
||||
} else {
|
||||
errno = EINVAL;
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* variadic wrapper around the buffer string formatter */
|
||||
int
|
||||
xsbprintf(
|
||||
char **ppbuf, /* pointer to buffer pointer (I/O) */
|
||||
char * const pend, /* buffer end (I) */
|
||||
char const *pfmt, /* printf-like format string */
|
||||
... /* formatting args for above */
|
||||
)
|
||||
{
|
||||
va_list va;
|
||||
int rc;
|
||||
|
||||
va_start(va, pfmt);
|
||||
rc = xvsbprintf(ppbuf, pend, pfmt, va);
|
||||
va_end(va);
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* that's all folks! */
|
@ -1,7 +1,7 @@
|
||||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -265,9 +265,7 @@ cvt_trimtsip(
|
||||
clock_time->flags = PARSEB_POWERUP;
|
||||
return CVT_OK;
|
||||
}
|
||||
if (week < GPSWRAP) {
|
||||
week += GPSWEEKS;
|
||||
}
|
||||
week = basedate_expand_gpsweek(week);
|
||||
|
||||
/* time OK */
|
||||
|
||||
@ -351,14 +349,12 @@ cvt_trimtsip(
|
||||
int tls = t->t_gpsutc = (u_short) getshort((unsigned char *)&mb(12)); /* current leap correction (GPS-UTC) */
|
||||
int tlsf = t->t_gpsutcleap = (u_short) getshort((unsigned char *)&mb(24)); /* new leap correction */
|
||||
|
||||
t->t_weekleap = (u_short) getshort((unsigned char *)&mb(20)); /* week no of leap correction */
|
||||
if (t->t_weekleap < GPSWRAP)
|
||||
t->t_weekleap = (u_short)(t->t_weekleap + GPSWEEKS);
|
||||
t->t_weekleap = basedate_expand_gpsweek(
|
||||
(u_short) getshort((unsigned char *)&mb(20))); /* week no of leap correction */
|
||||
|
||||
t->t_dayleap = (u_short) getshort((unsigned char *)&mb(22)); /* day in week of leap correction */
|
||||
t->t_week = (u_short) getshort((unsigned char *)&mb(18)); /* current week no */
|
||||
if (t->t_week < GPSWRAP)
|
||||
t->t_week = (u_short)(t->t_weekleap + GPSWEEKS);
|
||||
t->t_week = basedate_expand_gpsweek(
|
||||
(u_short) getshort((unsigned char *)&mb(18))); /* current week no */
|
||||
|
||||
lbp = (unsigned char *)&mb(14); /* last update time */
|
||||
if (fetch_ieee754(&lbp, IEEE_SINGLE, &t0t, trim_offsets) != IEEE_OK)
|
||||
|
@ -45,11 +45,6 @@ gpstolfp(
|
||||
l_fp * lfp
|
||||
)
|
||||
{
|
||||
if (weeks < GPSWRAP)
|
||||
{
|
||||
weeks += GPSWEEKS;
|
||||
}
|
||||
|
||||
lfp->l_ui = (uint32_t)(weeks * SECSPERWEEK + days * SECSPERDAY + seconds + GPSORIGIN); /* convert to NTP time */
|
||||
lfp->l_uf = 0;
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -6,7 +6,7 @@
|
||||
#
|
||||
# EDIT THIS FILE WITH CAUTION (invoke-ntp.conf.texi)
|
||||
#
|
||||
# It has been AutoGen-ed August 14, 2018 at 08:29:07 AM by AutoGen 5.18.5
|
||||
# It has been AutoGen-ed February 20, 2019 at 09:56:39 AM by AutoGen 5.18.5
|
||||
# From the definitions ntp.conf.def
|
||||
# and the template file agtexi-file.tpl
|
||||
@end ignore
|
||||
|
@ -6,7 +6,7 @@
|
||||
#
|
||||
# EDIT THIS FILE WITH CAUTION (invoke-ntp.keys.texi)
|
||||
#
|
||||
# It has been AutoGen-ed August 14, 2018 at 08:29:10 AM by AutoGen 5.18.5
|
||||
# It has been AutoGen-ed February 20, 2019 at 09:56:41 AM by AutoGen 5.18.5
|
||||
# From the definitions ntp.keys.def
|
||||
# and the template file agtexi-file.tpl
|
||||
@end ignore
|
||||
|
@ -6,7 +6,7 @@
|
||||
#
|
||||
# EDIT THIS FILE WITH CAUTION (invoke-ntpd.texi)
|
||||
#
|
||||
# It has been AutoGen-ed August 14, 2018 at 08:29:12 AM by AutoGen 5.18.5
|
||||
# It has been AutoGen-ed February 20, 2019 at 09:56:42 AM by AutoGen 5.18.5
|
||||
# From the definitions ntpd-opts.def
|
||||
# and the template file agtexi-cmd.tpl
|
||||
@end ignore
|
||||
@ -142,7 +142,7 @@ with a status code of 0.
|
||||
|
||||
@exampleindent 0
|
||||
@example
|
||||
ntpd - NTP daemon program - Ver. 4.2.8p12
|
||||
ntpd - NTP daemon program - Ver. 4.2.8p13
|
||||
Usage: ntpd [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... \
|
||||
[ <server1> ... <serverN> ]
|
||||
Flg Arg Option-Name Description
|
||||
@ -164,7 +164,7 @@ Usage: ntpd [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... \
|
||||
-g no panicgate Allow the first adjustment to be Big
|
||||
- may appear multiple times
|
||||
-G no force-step-once Step any initial offset correction.
|
||||
-i Str jaildir Jail directory
|
||||
-i --- jaildir built without --enable-clockctl or --enable-linuxcaps or --enable-solarisprivs
|
||||
-I Str interface Listen on an interface name or address
|
||||
- may appear multiple times
|
||||
-k Str keyfile path to symmetric keys
|
||||
@ -187,7 +187,7 @@ Usage: ntpd [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... \
|
||||
-s Str statsdir Statistics file location
|
||||
-t Str trustedkey Trusted key number
|
||||
- may appear multiple times
|
||||
-u Str user Run as userid (or userid:groupid)
|
||||
-u --- user built without --enable-clockctl or --enable-linuxcaps or --enable-solarisprivs
|
||||
-U Num updateinterval interval in seconds between scans for new or dropped interfaces
|
||||
Str var make ARG an ntp variable (RW)
|
||||
- may appear multiple times
|
||||
|
@ -10,11 +10,11 @@
|
||||
.ds B-Font B
|
||||
.ds I-Font I
|
||||
.ds R-Font R
|
||||
.TH ntp.conf 5man "14 Aug 2018" "4.2.8p12" "File Formats"
|
||||
.TH ntp.conf 5man "20 Feb 2019" "4.2.8p13" "File Formats"
|
||||
.\"
|
||||
.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-2caiQA/ag-bdaaPA)
|
||||
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
|
||||
.\"
|
||||
.\" It has been AutoGen-ed August 14, 2018 at 08:28:54 AM by AutoGen 5.18.5
|
||||
.\" It has been AutoGen-ed February 20, 2019 at 09:56:43 AM by AutoGen 5.18.5
|
||||
.\" From the definitions ntp.conf.def
|
||||
.\" and the template file agman-cmd.tpl
|
||||
.SH NAME
|
||||
|
@ -1,9 +1,9 @@
|
||||
.Dd August 14 2018
|
||||
.Dd February 20 2019
|
||||
.Dt NTP_CONF 5mdoc File Formats
|
||||
.Os
|
||||
.\" EDIT THIS FILE WITH CAUTION (ntp.mdoc)
|
||||
.\"
|
||||
.\" It has been AutoGen-ed August 14, 2018 at 08:29:15 AM by AutoGen 5.18.5
|
||||
.\" It has been AutoGen-ed February 20, 2019 at 09:56:34 AM by AutoGen 5.18.5
|
||||
.\" From the definitions ntp.conf.def
|
||||
.\" and the template file agmdoc-cmd.tpl
|
||||
.Sh NAME
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -10,11 +10,11 @@
|
||||
.ds B-Font B
|
||||
.ds I-Font I
|
||||
.ds R-Font R
|
||||
.TH ntp.conf 5 "14 Aug 2018" "4.2.8p12" "File Formats"
|
||||
.TH ntp.conf 5 "20 Feb 2019" "4.2.8p13" "File Formats"
|
||||
.\"
|
||||
.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-2caiQA/ag-bdaaPA)
|
||||
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
|
||||
.\"
|
||||
.\" It has been AutoGen-ed August 14, 2018 at 08:28:54 AM by AutoGen 5.18.5
|
||||
.\" It has been AutoGen-ed February 20, 2019 at 09:56:43 AM by AutoGen 5.18.5
|
||||
.\" From the definitions ntp.conf.def
|
||||
.\" and the template file agman-cmd.tpl
|
||||
.SH NAME
|
||||
|
@ -1,9 +1,9 @@
|
||||
.Dd August 14 2018
|
||||
.Dd February 20 2019
|
||||
.Dt NTP_CONF 5 File Formats
|
||||
.Os
|
||||
.\" EDIT THIS FILE WITH CAUTION (ntp.mdoc)
|
||||
.\"
|
||||
.\" It has been AutoGen-ed August 14, 2018 at 08:29:15 AM by AutoGen 5.18.5
|
||||
.\" It has been AutoGen-ed February 20, 2019 at 09:56:34 AM by AutoGen 5.18.5
|
||||
.\" From the definitions ntp.conf.def
|
||||
.\" and the template file agmdoc-cmd.tpl
|
||||
.Sh NAME
|
||||
|
@ -1,8 +1,8 @@
|
||||
.TH ntp.keys 5man "14 Aug 2018" "4.2.8p12" "File Formats"
|
||||
.TH ntp.keys 5man "20 Feb 2019" "4.2.8p13" "File Formats"
|
||||
.\"
|
||||
.\" EDIT THIS FILE WITH CAUTION (ntp.man)
|
||||
.\"
|
||||
.\" It has been AutoGen-ed August 14, 2018 at 08:28:59 AM by AutoGen 5.18.5
|
||||
.\" It has been AutoGen-ed February 20, 2019 at 09:56:44 AM by AutoGen 5.18.5
|
||||
.\" From the definitions ntp.keys.def
|
||||
.\" and the template file agman-file.tpl
|
||||
.Sh NAME
|
||||
|
@ -1,9 +1,9 @@
|
||||
.Dd August 14 2018
|
||||
.Dd February 20 2019
|
||||
.Dt NTP_KEYS 5mdoc File Formats
|
||||
.Os SunOS 5.10
|
||||
.Os FreeBSD 11.2-RELEASE_SI
|
||||
.\" EDIT THIS FILE WITH CAUTION (ntp.mdoc)
|
||||
.\"
|
||||
.\" It has been AutoGen-ed August 14, 2018 at 08:29:18 AM by AutoGen 5.18.5
|
||||
.\" It has been AutoGen-ed February 20, 2019 at 09:56:35 AM by AutoGen 5.18.5
|
||||
.\" From the definitions ntp.keys.def
|
||||
.\" and the template file agmdoc-file.tpl
|
||||
.Sh NAME
|
||||
|
@ -1,82 +1,122 @@
|
||||
<html lang="en">
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>NTP Symmetric Key</title>
|
||||
<meta http-equiv="Content-Type" content="text/html">
|
||||
|
||||
<meta name="description" content="NTP Symmetric Key">
|
||||
<meta name="generator" content="makeinfo 4.7">
|
||||
<link title="Top" rel="top" href="#Top">
|
||||
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
|
||||
<meta http-equiv="Content-Style-Type" content="text/css">
|
||||
<style type="text/css"><!--
|
||||
<meta name="keywords" content="NTP Symmetric Key">
|
||||
<meta name="resource-type" content="document">
|
||||
<meta name="distribution" content="global">
|
||||
<meta name="Generator" content="makeinfo">
|
||||
<link href="#Top" rel="start" title="Top">
|
||||
<link href="dir.html#Top" rel="up" title="(dir)">
|
||||
<style type="text/css">
|
||||
<!--
|
||||
a.summary-letter {text-decoration: none}
|
||||
blockquote.indentedblock {margin-right: 0em}
|
||||
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
|
||||
blockquote.smallquotation {font-size: smaller}
|
||||
div.display {margin-left: 3.2em}
|
||||
div.example {margin-left: 3.2em}
|
||||
div.lisp {margin-left: 3.2em}
|
||||
div.smalldisplay {margin-left: 3.2em}
|
||||
div.smallexample {margin-left: 3.2em}
|
||||
div.smalllisp {margin-left: 3.2em}
|
||||
kbd {font-style: oblique}
|
||||
pre.display {font-family: inherit}
|
||||
pre.format {font-family: inherit}
|
||||
pre.menu-comment {font-family: serif}
|
||||
pre.menu-preformatted {font-family: serif}
|
||||
pre.smalldisplay {font-family: inherit; font-size: smaller}
|
||||
pre.smallformat { font-family:inherit; font-size:smaller }
|
||||
pre.smallexample {font-size: smaller}
|
||||
pre.smallformat {font-family: inherit; font-size: smaller}
|
||||
pre.smalllisp {font-size: smaller}
|
||||
span.sc { font-variant:small-caps }
|
||||
span.roman { font-family: serif; font-weight: normal; }
|
||||
--></style>
|
||||
span.nolinebreak {white-space: nowrap}
|
||||
span.roman {font-family: initial; font-weight: normal}
|
||||
span.sansserif {font-family: sans-serif; font-weight: normal}
|
||||
ul.no-bullet {list-style: none}
|
||||
-->
|
||||
</style>
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<h1 class="settitle">NTP Symmetric Key</h1>
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<a name="Top"></a>Next: <a rel="next" accesskey="n" href="#ntp_002ekeys-Description">ntp.keys Description</a>,
|
||||
Previous: <a rel="previous" accesskey="p" href="#dir">(dir)</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#dir">(dir)</a>
|
||||
<br>
|
||||
|
||||
<body lang="en">
|
||||
<h1 class="settitle" align="center">NTP Symmetric Key</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="Top"></a>
|
||||
<div class="header">
|
||||
<p>
|
||||
Next: <a href="#ntp_002ekeys-Description" accesskey="n" rel="next">ntp.keys Description</a>, Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> </p>
|
||||
</div>
|
||||
<a name="NTP_0027s-Symmetric-Key-File-User-Manual"></a>
|
||||
<h1 class="top">NTP’s Symmetric Key File User Manual</h1>
|
||||
|
||||
<h2 class="unnumbered">NTP's Symmetric Key File User Manual</h2>
|
||||
|
||||
<p>This document describes the symmetric key file for the NTP Project's
|
||||
<p>This document describes the symmetric key file for the NTP Project’s
|
||||
<code>ntpd</code> program.
|
||||
|
||||
<p>This document applies to version 4.2.8p12 of <code>ntp.keys</code>.
|
||||
</p>
|
||||
<p>This document applies to version 4.2.8p13 of <code>ntp.keys</code>.
|
||||
</p>
|
||||
<a name="SEC_Overview"></a>
|
||||
<h2 class="shortcontents-heading">Short Table of Contents</h2>
|
||||
|
||||
<div class="shortcontents">
|
||||
<h2>Short Contents</h2>
|
||||
<ul>
|
||||
<a href="#Top">NTP's Symmetric Key File User Manual</a>
|
||||
<ul class="no-bullet">
|
||||
<li><a name="stoc-Description" href="#toc-Description">1 Description</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<ul class="menu">
|
||||
<li><a accesskey="1" href="#ntp_002ekeys-Description">ntp.keys Description</a>
|
||||
<li><a accesskey="2" href="#ntp_002ekeys-Notes">ntp.keys Notes</a>
|
||||
</ul>
|
||||
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<a name="ntp_002ekeys-Description"></a>Previous: <a rel="previous" accesskey="p" href="#Top">Top</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#Top">Top</a>
|
||||
<br>
|
||||
<table class="menu" border="0" cellspacing="0">
|
||||
<tr><td align="left" valign="top">• <a href="#ntp_002ekeys-Description" accesskey="1">ntp.keys Description</a>:</td><td> </td><td align="left" valign="top">
|
||||
</td></tr>
|
||||
<tr><td align="left" valign="top">• <a href="#ntp_002ekeys-Notes" accesskey="2">ntp.keys Notes</a>:</td><td> </td><td align="left" valign="top">
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
<hr>
|
||||
<a name="ntp_002ekeys-Description"></a>
|
||||
<div class="header">
|
||||
<p>
|
||||
Previous: <a href="#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> </p>
|
||||
</div>
|
||||
|
||||
<!-- node-name, next, previous, up -->
|
||||
<h3 class="section">Description</h3>
|
||||
<a name="Description"></a>
|
||||
<h2 class="chapter">1 Description</h2>
|
||||
|
||||
<p>The name and location of the symmetric key file for <code>ntpd</code> can
|
||||
be specified in a configuration file, by default <code>/etc/ntp.keys</code>.
|
||||
</p>
|
||||
<table class="menu" border="0" cellspacing="0">
|
||||
<tr><td align="left" valign="top">• <a href="#ntp_002ekeys-Notes" accesskey="1">ntp.keys Notes</a>:</td><td> </td><td align="left" valign="top">
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<hr>
|
||||
<a name="ntp_002ekeys-Notes"></a>
|
||||
<br>
|
||||
<div class="header">
|
||||
<p>
|
||||
Previous: <a href="#ntp_002ekeys-See-Also" accesskey="p" rel="prev">ntp.keys See Also</a>, Up: <a href="#ntp_002ekeys-Description" accesskey="u" rel="up">ntp.keys Description</a> </p>
|
||||
</div>
|
||||
<a name="Notes-about-ntp_002ekeys"></a>
|
||||
<h3 class="section">1.1 Notes about ntp.keys</h3>
|
||||
<a name="index-ntp_002ekeys"></a>
|
||||
<a name="index-NTP-symmetric-key-file-format"></a>
|
||||
|
||||
<h3 class="section">Notes about ntp.keys</h3>
|
||||
|
||||
<p><a name="index-ntp_002ekeys-1"></a><a name="index-NTP-symmetric-key-file-format-2"></a>
|
||||
|
||||
<p>This document describes the format of an NTP symmetric key file.
|
||||
For a description of the use of this type of file, see the
|
||||
"Authentication Support"
|
||||
"Authentication Support"
|
||||
section of the
|
||||
<code>ntp.conf(5)</code>
|
||||
page.
|
||||
|
||||
</p>
|
||||
<p><code>ntpd(8)</code>
|
||||
reads its keys from a file specified using the
|
||||
<code>-k</code>
|
||||
@ -88,13 +128,15 @@ While key number 0 is fixed by the NTP standard
|
||||
and may not be changed,
|
||||
one or more keys numbered between 1 and 65535
|
||||
may be arbitrarily set in the keys file.
|
||||
|
||||
</p>
|
||||
<p>The key file uses the same comment conventions
|
||||
as the configuration file.
|
||||
Key entries use a fixed format of the form
|
||||
|
||||
</p>
|
||||
<div class="example">
|
||||
<pre class="example"><kbd>keyno</kbd> <kbd>type</kbd> <kbd>key</kbd> <kbd>opt_IP_list</kbd>
|
||||
</pre>
|
||||
</pre></div>
|
||||
|
||||
<p>where
|
||||
<kbd>keyno</kbd>
|
||||
is a positive integer (between 1 and 65535),
|
||||
@ -119,7 +161,7 @@ If
|
||||
is empty,
|
||||
any properly-authenticated message will be
|
||||
accepted.
|
||||
|
||||
</p>
|
||||
<p>The
|
||||
<kbd>key</kbd>
|
||||
may be given in a format
|
||||
@ -140,20 +182,26 @@ must be either
|
||||
<code>SHA</code>
|
||||
or
|
||||
<code>SHA1</code>.
|
||||
|
||||
</p>
|
||||
<p>What follows are some key types, and corresponding formats:
|
||||
|
||||
<dl>
|
||||
<dt><code>MD5</code><dd>The key is 1 to 16 printable characters terminated by
|
||||
</p>
|
||||
<dl compact="compact">
|
||||
<dt><code>MD5</code></dt>
|
||||
<dd><p>The key is 1 to 16 printable characters terminated by
|
||||
an EOL,
|
||||
whitespace,
|
||||
or
|
||||
a
|
||||
<code>#</code>
|
||||
(which is the "start of comment" character).
|
||||
|
||||
<br><dt><code>SHA</code><br><dt><code>SHA1</code><br><dt><code>RMD160</code><dd>The key is a hex-encoded ASCII string of 40 characters,
|
||||
(which is the "start of comment" character).
|
||||
</p>
|
||||
</dd>
|
||||
<dt><code>SHA</code></dt>
|
||||
<dt><code>SHA1</code></dt>
|
||||
<dt><code>RMD160</code></dt>
|
||||
<dd><p>The key is a hex-encoded ASCII string of 40 characters,
|
||||
which is truncated as necessary.
|
||||
</p></dd>
|
||||
</dl>
|
||||
|
||||
<p>Note that the keys used by the
|
||||
@ -163,54 +211,57 @@ and
|
||||
programs are checked against passwords
|
||||
requested by the programs and entered by hand,
|
||||
so it is generally appropriate to specify these keys in ASCII format.
|
||||
|
||||
</p>
|
||||
<p>This section was generated by <strong>AutoGen</strong>,
|
||||
using the <code>agtexi-cmd</code> template and the option descriptions for the <code>ntp.keys</code> program.
|
||||
This software is released under the NTP license, <http://ntp.org/license>.
|
||||
</p>
|
||||
<table class="menu" border="0" cellspacing="0">
|
||||
<tr><td align="left" valign="top">• <a href="#ntp_002ekeys-Files" accesskey="1">ntp.keys Files</a>:</td><td> </td><td align="left" valign="top">Files
|
||||
</td></tr>
|
||||
<tr><td align="left" valign="top">• <a href="#ntp_002ekeys-See-Also" accesskey="2">ntp.keys See Also</a>:</td><td> </td><td align="left" valign="top">See Also
|
||||
</td></tr>
|
||||
<tr><td align="left" valign="top">• <a href="#ntp_002ekeys-Notes" accesskey="3">ntp.keys Notes</a>:</td><td> </td><td align="left" valign="top">Notes
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
<ul class="menu">
|
||||
<li><a accesskey="1" href="#ntp_002ekeys-Files">ntp.keys Files</a>: Files
|
||||
<li><a accesskey="2" href="#ntp_002ekeys-See-Also">ntp.keys See Also</a>: See Also
|
||||
<li><a accesskey="3" href="#ntp_002ekeys-Notes">ntp.keys Notes</a>: Notes
|
||||
</ul>
|
||||
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<a name="ntp_002ekeys-Files"></a>Next: <a rel="next" accesskey="n" href="#ntp_002ekeys-See-Also">ntp.keys See Also</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#ntp_002ekeys-Notes">ntp.keys Notes</a>
|
||||
<br>
|
||||
<hr>
|
||||
<a name="ntp_002ekeys-Files"></a>
|
||||
<div class="header">
|
||||
<p>
|
||||
Next: <a href="#ntp_002ekeys-See-Also" accesskey="n" rel="next">ntp.keys See Also</a>, Up: <a href="#ntp_002ekeys-Notes" accesskey="u" rel="up">ntp.keys Notes</a> </p>
|
||||
</div>
|
||||
|
||||
<h4 class="subsection">ntp.keys Files</h4>
|
||||
|
||||
<dl>
|
||||
<dt><span class="file">/etc/ntp.keys</span><dd>the default name of the configuration file
|
||||
<a name="ntp_002ekeys-Files-1"></a>
|
||||
<h4 class="subsection">1.1.1 ntp.keys Files</h4>
|
||||
<dl compact="compact">
|
||||
<dt><samp>/etc/ntp.keys</samp></dt>
|
||||
<dd><p>the default name of the configuration file
|
||||
</p></dd>
|
||||
</dl>
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<a name="ntp_002ekeys-See-Also"></a>Next: <a rel="next" accesskey="n" href="#ntp_002ekeys-Notes">ntp.keys Notes</a>,
|
||||
Previous: <a rel="previous" accesskey="p" href="#ntp_002ekeys-Files">ntp.keys Files</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#ntp_002ekeys-Notes">ntp.keys Notes</a>
|
||||
<br>
|
||||
<hr>
|
||||
<a name="ntp_002ekeys-See-Also"></a>
|
||||
<div class="header">
|
||||
<p>
|
||||
Previous: <a href="#ntp_002ekeys-Files" accesskey="p" rel="prev">ntp.keys Files</a>, Up: <a href="#ntp_002ekeys-Notes" accesskey="u" rel="up">ntp.keys Notes</a> </p>
|
||||
</div>
|
||||
|
||||
<h4 class="subsection">ntp.keys See Also</h4>
|
||||
|
||||
<a name="ntp_002ekeys-See-Also-1"></a>
|
||||
<h4 class="subsection">1.1.2 ntp.keys See Also</h4>
|
||||
<p><code>ntp.conf(5)</code>,
|
||||
<code>ntpd(1ntpdmdoc)</code>,
|
||||
<code>ntpdate(1ntpdatemdoc)</code>,
|
||||
<code>ntpdc(1ntpdcmdoc)</code>,
|
||||
<code>sntp(1sntpmdoc)</code>
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<a name="ntp_002ekeys-Notes"></a>Previous: <a rel="previous" accesskey="p" href="#ntp_002ekeys-See-Also">ntp.keys See Also</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#ntp_002ekeys-Notes">ntp.keys Notes</a>
|
||||
<br>
|
||||
</p><hr>
|
||||
<div class="header">
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<h4 class="subsection">ntp.keys Notes</h4>
|
||||
|
||||
<a name="ntp_002ekeys-Notes-1"></a>
|
||||
<h4 class="subsection">1.1.3 ntp.keys Notes</h4>
|
||||
<p>This document was derived from FreeBSD.
|
||||
</p><hr>
|
||||
|
||||
</body></html>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,8 +1,8 @@
|
||||
.TH ntp.keys 5 "14 Aug 2018" "4.2.8p12" "File Formats"
|
||||
.TH ntp.keys 5 "20 Feb 2019" "4.2.8p13" "File Formats"
|
||||
.\"
|
||||
.\" EDIT THIS FILE WITH CAUTION (ntp.man)
|
||||
.\"
|
||||
.\" It has been AutoGen-ed August 14, 2018 at 08:28:59 AM by AutoGen 5.18.5
|
||||
.\" It has been AutoGen-ed February 20, 2019 at 09:56:44 AM by AutoGen 5.18.5
|
||||
.\" From the definitions ntp.keys.def
|
||||
.\" and the template file agman-file.tpl
|
||||
.Sh NAME
|
||||
|
@ -1,9 +1,9 @@
|
||||
.Dd August 14 2018
|
||||
.Dd February 20 2019
|
||||
.Dt NTP_KEYS 5 File Formats
|
||||
.Os SunOS 5.10
|
||||
.Os FreeBSD 11.2-RELEASE_SI
|
||||
.\" EDIT THIS FILE WITH CAUTION (ntp.mdoc)
|
||||
.\"
|
||||
.\" It has been AutoGen-ed August 14, 2018 at 08:29:18 AM by AutoGen 5.18.5
|
||||
.\" It has been AutoGen-ed February 20, 2019 at 09:56:35 AM by AutoGen 5.18.5
|
||||
.\" From the definitions ntp.keys.def
|
||||
.\" and the template file agmdoc-file.tpl
|
||||
.Sh NAME
|
||||
|
@ -2065,8 +2065,12 @@ config_auth(
|
||||
|
||||
#ifdef AUTOKEY
|
||||
/* crypto revoke command */
|
||||
if (ptree->auth.revoke)
|
||||
sys_revoke = 1UL << ptree->auth.revoke;
|
||||
if (ptree->auth.revoke > 2 && ptree->auth.revoke < 32)
|
||||
sys_revoke = (u_char)ptree->auth.revoke;
|
||||
else if (ptree->auth.revoke)
|
||||
msyslog(LOG_ERR,
|
||||
"'revoke' value %d ignored",
|
||||
ptree->auth.revoke);
|
||||
#endif /* AUTOKEY */
|
||||
}
|
||||
#endif /* !SIM */
|
||||
@ -2112,6 +2116,10 @@ config_tos_clock(
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (basedate_get_day() <= NTP_TO_UNIX_DAYS)
|
||||
basedate_set_day(basedate_eval_buildstamp() - 11);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -2194,8 +2202,8 @@ config_tos(
|
||||
|
||||
case T_Minsane:
|
||||
val = tos->value.d;
|
||||
if ((int)tos->value.d < 1)
|
||||
tos->value.d = 1;
|
||||
if ((int)tos->value.d < 0)
|
||||
tos->value.d = 0;
|
||||
l_minsane = (int)tos->value.d;
|
||||
break;
|
||||
}
|
||||
@ -3813,7 +3821,12 @@ config_vars(
|
||||
|
||||
case T_Automax:
|
||||
#ifdef AUTOKEY
|
||||
sys_automax = curr_var->value.i;
|
||||
if (curr_var->value.i > 2 && curr_var->value.i < 32)
|
||||
sys_automax = (u_char)curr_var->value.i;
|
||||
else
|
||||
msyslog(LOG_ERR,
|
||||
"'automax' value %d ignored",
|
||||
curr_var->value.i);
|
||||
#endif
|
||||
break;
|
||||
|
||||
|
@ -1910,11 +1910,13 @@ ctl_putsys(
|
||||
static struct timex ntx;
|
||||
static u_long ntp_adjtime_time;
|
||||
|
||||
static const double to_ms =
|
||||
static const double to_ms_usec =
|
||||
1.0e-3; /* usec to msec */
|
||||
static const double to_ms_nusec =
|
||||
# ifdef STA_NANO
|
||||
1.0e-6; /* nsec to msec */
|
||||
# else
|
||||
1.0e-3; /* usec to msec */
|
||||
to_ms_usec;
|
||||
# endif
|
||||
|
||||
/*
|
||||
@ -2319,7 +2321,7 @@ ctl_putsys(
|
||||
case CS_K_OFFSET:
|
||||
CTL_IF_KERNLOOP(
|
||||
ctl_putdblf,
|
||||
(sys_var[varid].text, 0, -1, to_ms * ntx.offset)
|
||||
(sys_var[varid].text, 0, -1, to_ms_nusec * ntx.offset)
|
||||
);
|
||||
break;
|
||||
|
||||
@ -2334,7 +2336,7 @@ ctl_putsys(
|
||||
CTL_IF_KERNLOOP(
|
||||
ctl_putdblf,
|
||||
(sys_var[varid].text, 0, 6,
|
||||
to_ms * ntx.maxerror)
|
||||
to_ms_usec * ntx.maxerror)
|
||||
);
|
||||
break;
|
||||
|
||||
@ -2342,7 +2344,7 @@ ctl_putsys(
|
||||
CTL_IF_KERNLOOP(
|
||||
ctl_putdblf,
|
||||
(sys_var[varid].text, 0, 6,
|
||||
to_ms * ntx.esterror)
|
||||
to_ms_usec * ntx.esterror)
|
||||
);
|
||||
break;
|
||||
|
||||
@ -2366,7 +2368,7 @@ ctl_putsys(
|
||||
CTL_IF_KERNLOOP(
|
||||
ctl_putdblf,
|
||||
(sys_var[varid].text, 0, 6,
|
||||
to_ms * ntx.precision)
|
||||
to_ms_usec * ntx.precision)
|
||||
);
|
||||
break;
|
||||
|
||||
@ -2394,7 +2396,7 @@ ctl_putsys(
|
||||
case CS_K_PPS_JITTER:
|
||||
CTL_IF_KERNPPS(
|
||||
ctl_putdbl,
|
||||
(sys_var[varid].text, to_ms * ntx.jitter)
|
||||
(sys_var[varid].text, to_ms_nusec * ntx.jitter)
|
||||
);
|
||||
break;
|
||||
|
||||
@ -3446,11 +3448,11 @@ write_variables(
|
||||
* Look through the variables. Dump out at the first sign of
|
||||
* trouble.
|
||||
*/
|
||||
while ((v = ctl_getitem(sys_var, &valuep)) != 0) {
|
||||
while ((v = ctl_getitem(sys_var, &valuep)) != NULL) {
|
||||
ext_var = 0;
|
||||
if (v->flags & EOV) {
|
||||
if ((v = ctl_getitem(ext_sys_var, &valuep)) !=
|
||||
0) {
|
||||
v = ctl_getitem(ext_sys_var, &valuep);
|
||||
if (v != NULL) {
|
||||
if (v->flags & EOV) {
|
||||
ctl_error(CERR_UNKNOWNVAR);
|
||||
return;
|
||||
@ -3464,15 +3466,23 @@ write_variables(
|
||||
ctl_error(CERR_PERMISSION);
|
||||
return;
|
||||
}
|
||||
if (!ext_var && (*valuep == '\0' || !atoint(valuep,
|
||||
&val))) {
|
||||
/* [bug 3565] writing makes sense only if we *have* a
|
||||
* value in the packet!
|
||||
*/
|
||||
if (valuep == NULL) {
|
||||
ctl_error(CERR_BADFMT);
|
||||
return;
|
||||
}
|
||||
if (!ext_var && (val & ~LEAP_NOTINSYNC) != 0) {
|
||||
if (!ext_var) {
|
||||
if ( !(*valuep && atoint(valuep, &val))) {
|
||||
ctl_error(CERR_BADFMT);
|
||||
return;
|
||||
}
|
||||
if ((val & ~LEAP_NOTINSYNC) != 0) {
|
||||
ctl_error(CERR_BADVALUE);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (ext_var) {
|
||||
octets = strlen(v->text) + strlen(valuep) + 2;
|
||||
|
@ -353,8 +353,8 @@ make_keylist(
|
||||
* included in the hash is zero if broadcast mode, the peer
|
||||
* cookie if client mode or the host cookie if symmetric modes.
|
||||
*/
|
||||
mpoll = 1 << min(peer->ppoll, peer->hpoll);
|
||||
lifetime = min(1U << sys_automax, NTP_MAXSESSION * mpoll);
|
||||
mpoll = 1U << min(peer->ppoll, peer->hpoll);
|
||||
lifetime = min((1UL << sys_automax), NTP_MAXSESSION * mpoll);
|
||||
if (peer->hmode == MODE_BROADCAST)
|
||||
cookie = 0;
|
||||
else
|
||||
@ -1486,7 +1486,8 @@ crypto_verify(
|
||||
return (XEVNT_LEN);
|
||||
|
||||
i = (vallen + 3) / 4;
|
||||
siglen = ntohl(ep->pkt[i++]);
|
||||
siglen = ntohl(ep->pkt[i]);
|
||||
++i;
|
||||
if ( siglen > MAX_VALLEN
|
||||
|| len - VALUE_LEN < ((vallen + 3) / 4) * 4
|
||||
|| len - VALUE_LEN - ((vallen + 3) / 4) * 4
|
||||
|
@ -246,6 +246,10 @@ ntp_adjtime_error_handler(
|
||||
)
|
||||
{
|
||||
char des[1024] = ""; /* Decoded Error Status */
|
||||
char *dbp, *ebp;
|
||||
|
||||
dbp = des;
|
||||
ebp = dbp + sizeof(des);
|
||||
|
||||
switch (ret) {
|
||||
case -1:
|
||||
@ -363,37 +367,37 @@ or, from ntp_adjtime():
|
||||
/* error (see status word) */
|
||||
|
||||
if (ptimex->status & STA_UNSYNC)
|
||||
snprintf(des, sizeof(des), "%s%sClock Unsynchronized",
|
||||
des, (*des) ? "; " : "");
|
||||
xsbprintf(&dbp, ebp, "%sClock Unsynchronized",
|
||||
(*des) ? "; " : "");
|
||||
|
||||
if (ptimex->status & STA_CLOCKERR)
|
||||
snprintf(des, sizeof(des), "%s%sClock Error",
|
||||
des, (*des) ? "; " : "");
|
||||
xsbprintf(&dbp, ebp, "%sClock Error",
|
||||
(*des) ? "; " : "");
|
||||
|
||||
if (!(ptimex->status & STA_PPSSIGNAL)
|
||||
&& ptimex->status & STA_PPSFREQ)
|
||||
snprintf(des, sizeof(des), "%s%sPPS Frequency Sync wanted but no PPS",
|
||||
des, (*des) ? "; " : "");
|
||||
xsbprintf(&dbp, ebp, "%sPPS Frequency Sync wanted but no PPS",
|
||||
(*des) ? "; " : "");
|
||||
|
||||
if (!(ptimex->status & STA_PPSSIGNAL)
|
||||
&& ptimex->status & STA_PPSTIME)
|
||||
snprintf(des, sizeof(des), "%s%sPPS Time Sync wanted but no PPS signal",
|
||||
des, (*des) ? "; " : "");
|
||||
xsbprintf(&dbp, ebp, "%sPPS Time Sync wanted but no PPS signal",
|
||||
(*des) ? "; " : "");
|
||||
|
||||
if ( ptimex->status & STA_PPSTIME
|
||||
&& ptimex->status & STA_PPSJITTER)
|
||||
snprintf(des, sizeof(des), "%s%sPPS Time Sync wanted but PPS Jitter exceeded",
|
||||
des, (*des) ? "; " : "");
|
||||
xsbprintf(&dbp, ebp, "%sPPS Time Sync wanted but PPS Jitter exceeded",
|
||||
(*des) ? "; " : "");
|
||||
|
||||
if ( ptimex->status & STA_PPSFREQ
|
||||
&& ptimex->status & STA_PPSWANDER)
|
||||
snprintf(des, sizeof(des), "%s%sPPS Frequency Sync wanted but PPS Wander exceeded",
|
||||
des, (*des) ? "; " : "");
|
||||
xsbprintf(&dbp, ebp, "%sPPS Frequency Sync wanted but PPS Wander exceeded",
|
||||
(*des) ? "; " : "");
|
||||
|
||||
if ( ptimex->status & STA_PPSFREQ
|
||||
&& ptimex->status & STA_PPSERROR)
|
||||
snprintf(des, sizeof(des), "%s%sPPS Frequency Sync wanted but Calibration error detected",
|
||||
des, (*des) ? "; " : "");
|
||||
xsbprintf(&dbp, ebp, "%sPPS Frequency Sync wanted but Calibration error detected",
|
||||
(*des) ? "; " : "");
|
||||
|
||||
if (pps_call && !(ptimex->status & STA_PPSSIGNAL))
|
||||
report_event(EVNT_KERN, NULL,
|
||||
|
@ -387,9 +387,9 @@ transmit(
|
||||
*/
|
||||
if (peer->cast_flags & (MDF_BCAST | MDF_MCAST)) {
|
||||
peer->outdate = current_time;
|
||||
poll_update(peer, hpoll);
|
||||
if (sys_leap != LEAP_NOTINSYNC)
|
||||
peer_xmit(peer);
|
||||
poll_update(peer, hpoll);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -408,6 +408,7 @@ transmit(
|
||||
*/
|
||||
if (peer->cast_flags & MDF_ACAST) {
|
||||
peer->outdate = current_time;
|
||||
poll_update(peer, hpoll);
|
||||
if (peer->unreach > sys_beacon) {
|
||||
peer->unreach = 0;
|
||||
peer->ttl = 0;
|
||||
@ -419,7 +420,6 @@ transmit(
|
||||
peer_xmit(peer);
|
||||
}
|
||||
peer->unreach++;
|
||||
poll_update(peer, hpoll);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -437,11 +437,11 @@ transmit(
|
||||
*/
|
||||
if (peer->cast_flags & MDF_POOL) {
|
||||
peer->outdate = current_time;
|
||||
poll_update(peer, hpoll);
|
||||
if ( (peer_associations <= 2 * sys_maxclock)
|
||||
&& ( peer_associations < sys_maxclock
|
||||
|| sys_survivors < sys_minclock))
|
||||
pool_xmit(peer);
|
||||
poll_update(peer, hpoll);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -549,9 +549,9 @@ transmit(
|
||||
/*
|
||||
* Do not transmit if in broadcast client mode.
|
||||
*/
|
||||
poll_update(peer, hpoll);
|
||||
if (peer->hmode != MODE_BCLIENT)
|
||||
peer_xmit(peer);
|
||||
poll_update(peer, hpoll);
|
||||
|
||||
return;
|
||||
}
|
||||
|
@ -2536,7 +2536,15 @@ get_clock_info(
|
||||
DTOLFP(clock_stat.fudgetime2, <mp);
|
||||
HTONL_FP(<mp, &ic->fudgetime2);
|
||||
ic->fudgeval1 = htonl((u_int32)clock_stat.fudgeval1);
|
||||
/* [Bug3527] Backward Incompatible: ic->fudgeval2 is
|
||||
* a string, instantiated via memcpy() so there is no
|
||||
* endian issue to correct.
|
||||
*/
|
||||
#ifdef DISABLE_BUG3527_FIX
|
||||
ic->fudgeval2 = htonl(clock_stat.fudgeval2);
|
||||
#else
|
||||
ic->fudgeval2 = clock_stat.fudgeval2;
|
||||
#endif
|
||||
|
||||
free_varlist(clock_stat.kv_list);
|
||||
|
||||
|
@ -82,8 +82,8 @@ u_long orphwait; /* orphan wait time */
|
||||
#ifdef AUTOKEY
|
||||
static u_long revoke_timer; /* keys revoke timer */
|
||||
static u_long keys_timer; /* session key timer */
|
||||
u_long sys_revoke = KEY_REVOKE; /* keys revoke timeout (log2 s) */
|
||||
u_long sys_automax = NTP_AUTOMAX; /* key list timeout (log2 s) */
|
||||
u_char sys_revoke = KEY_REVOKE; /* keys revoke timeout (log2 s) */
|
||||
u_char sys_automax = NTP_AUTOMAX; /* key list timeout (log2 s) */
|
||||
#endif /* AUTOKEY */
|
||||
|
||||
/*
|
||||
@ -404,7 +404,7 @@ timer(void)
|
||||
* Garbage collect expired keys.
|
||||
*/
|
||||
if (keys_timer <= current_time) {
|
||||
keys_timer += 1 << sys_automax;
|
||||
keys_timer += (1UL << sys_automax);
|
||||
auth_agekeys();
|
||||
}
|
||||
|
||||
@ -413,7 +413,7 @@ timer(void)
|
||||
* to regenerate cookies.
|
||||
*/
|
||||
if (revoke_timer && revoke_timer <= current_time) {
|
||||
revoke_timer += 1 << sys_revoke;
|
||||
revoke_timer += (1UL << sys_revoke);
|
||||
RAND_bytes((u_char *)&sys_private, 4);
|
||||
}
|
||||
#endif /* AUTOKEY */
|
||||
|
@ -1,11 +1,11 @@
|
||||
/*
|
||||
* EDIT THIS FILE WITH CAUTION (ntpd-opts.c)
|
||||
*
|
||||
* It has been AutoGen-ed August 14, 2018 at 08:27:45 AM by AutoGen 5.18.5
|
||||
* It has been AutoGen-ed February 20, 2019 at 09:56:15 AM by AutoGen 5.18.5
|
||||
* From the definitions ntpd-opts.def
|
||||
* and the template file options
|
||||
*
|
||||
* Generated from AutoOpts 41:0:16 templates.
|
||||
* Generated from AutoOpts 41:1:16 templates.
|
||||
*
|
||||
* AutoOpts is a copyrighted work. This source file is not encumbered
|
||||
* by AutoOpts licensing, but is provided under the licensing terms chosen
|
||||
@ -75,7 +75,7 @@ extern FILE * option_usage_fp;
|
||||
* static const strings for ntpd options
|
||||
*/
|
||||
static char const ntpd_opt_strs[3132] =
|
||||
/* 0 */ "ntpd 4.2.8p12\n"
|
||||
/* 0 */ "ntpd 4.2.8p13\n"
|
||||
"Copyright (C) 1992-2017 The University of Delaware and Network Time Foundation, all rights reserved.\n"
|
||||
"This is free software. It is licensed for use, modification and\n"
|
||||
"redistribution under the terms of the NTP License, copies of which\n"
|
||||
@ -205,12 +205,12 @@ static char const ntpd_opt_strs[3132] =
|
||||
/* 2901 */ "output version information and exit\0"
|
||||
/* 2937 */ "version\0"
|
||||
/* 2945 */ "NTPD\0"
|
||||
/* 2950 */ "ntpd - NTP daemon program - Ver. 4.2.8p12\n"
|
||||
/* 2950 */ "ntpd - NTP daemon program - Ver. 4.2.8p13\n"
|
||||
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n"
|
||||
"\t\t[ <server1> ... <serverN> ]\n\0"
|
||||
/* 3082 */ "http://bugs.ntp.org, bugs@ntp.org\0"
|
||||
/* 3116 */ "\n\0"
|
||||
/* 3118 */ "ntpd 4.2.8p12";
|
||||
/* 3118 */ "ntpd 4.2.8p13";
|
||||
|
||||
/**
|
||||
* ipv4 option description with
|
||||
@ -1529,7 +1529,7 @@ static void bogus_function(void) {
|
||||
translate option names.
|
||||
*/
|
||||
/* referenced via ntpdOptions.pzCopyright */
|
||||
puts(_("ntpd 4.2.8p12\n\
|
||||
puts(_("ntpd 4.2.8p13\n\
|
||||
Copyright (C) 1992-2017 The University of Delaware and Network Time Foundation, all rights reserved.\n\
|
||||
This is free software. It is licensed for use, modification and\n\
|
||||
redistribution under the terms of the NTP License, copies of which\n\
|
||||
@ -1670,7 +1670,7 @@ implied warranty.\n"));
|
||||
puts(_("output version information and exit"));
|
||||
|
||||
/* referenced via ntpdOptions.pzUsageTitle */
|
||||
puts(_("ntpd - NTP daemon program - Ver. 4.2.8p12\n\
|
||||
puts(_("ntpd - NTP daemon program - Ver. 4.2.8p13\n\
|
||||
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n\
|
||||
\t\t[ <server1> ... <serverN> ]\n"));
|
||||
|
||||
@ -1678,7 +1678,7 @@ Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n\
|
||||
puts(_("\n"));
|
||||
|
||||
/* referenced via ntpdOptions.pzFullVersion */
|
||||
puts(_("ntpd 4.2.8p12"));
|
||||
puts(_("ntpd 4.2.8p13"));
|
||||
|
||||
/* referenced via ntpdOptions.pzFullUsage */
|
||||
puts(_("<<<NOT-FOUND>>>"));
|
||||
|
@ -1,11 +1,11 @@
|
||||
/*
|
||||
* EDIT THIS FILE WITH CAUTION (ntpd-opts.h)
|
||||
*
|
||||
* It has been AutoGen-ed August 14, 2018 at 08:27:44 AM by AutoGen 5.18.5
|
||||
* It has been AutoGen-ed February 20, 2019 at 09:56:15 AM by AutoGen 5.18.5
|
||||
* From the definitions ntpd-opts.def
|
||||
* and the template file options
|
||||
*
|
||||
* Generated from AutoOpts 41:0:16 templates.
|
||||
* Generated from AutoOpts 41:1:16 templates.
|
||||
*
|
||||
* AutoOpts is a copyrighted work. This header file is not encumbered
|
||||
* by AutoOpts licensing, but is provided under the licensing terms chosen
|
||||
@ -53,7 +53,7 @@
|
||||
* tolerable version is at least as old as what was current when the header
|
||||
* template was released.
|
||||
*/
|
||||
#define AO_TEMPLATE_VERSION 167936
|
||||
#define AO_TEMPLATE_VERSION 167937
|
||||
#if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
|
||||
|| (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
|
||||
# error option template version mismatches autoopts/options.h header
|
||||
@ -106,9 +106,9 @@ typedef enum {
|
||||
/** count of all options for ntpd */
|
||||
#define OPTION_CT 38
|
||||
/** ntpd version */
|
||||
#define NTPD_VERSION "4.2.8p12"
|
||||
#define NTPD_VERSION "4.2.8p13"
|
||||
/** Full ntpd version text */
|
||||
#define NTPD_FULL_VERSION "ntpd 4.2.8p12"
|
||||
#define NTPD_FULL_VERSION "ntpd 4.2.8p13"
|
||||
|
||||
/**
|
||||
* Interface defines for all options. Replace "n" with the UPPER_CASED
|
||||
|
@ -10,11 +10,11 @@
|
||||
.ds B-Font B
|
||||
.ds I-Font I
|
||||
.ds R-Font R
|
||||
.TH ntpd 1ntpdman "14 Aug 2018" "4.2.8p12" "User Commands"
|
||||
.TH ntpd 1ntpdman "20 Feb 2019" "4.2.8p13" "User Commands"
|
||||
.\"
|
||||
.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-jbaWTB/ag-ubaOSB)
|
||||
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
|
||||
.\"
|
||||
.\" It has been AutoGen-ed August 14, 2018 at 08:29:02 AM by AutoGen 5.18.5
|
||||
.\" It has been AutoGen-ed February 20, 2019 at 09:56:46 AM by AutoGen 5.18.5
|
||||
.\" From the definitions ntpd-opts.def
|
||||
.\" and the template file agman-cmd.tpl
|
||||
.SH NAME
|
||||
|
@ -1,9 +1,9 @@
|
||||
.Dd August 14 2018
|
||||
.Dd February 20 2019
|
||||
.Dt NTPD 1ntpdmdoc User Commands
|
||||
.Os
|
||||
.\" EDIT THIS FILE WITH CAUTION (ntpd-opts.mdoc)
|
||||
.\"
|
||||
.\" It has been AutoGen-ed August 14, 2018 at 08:29:20 AM by AutoGen 5.18.5
|
||||
.\" It has been AutoGen-ed February 20, 2019 at 09:56:37 AM by AutoGen 5.18.5
|
||||
.\" From the definitions ntpd-opts.def
|
||||
.\" and the template file agmdoc-cmd.tpl
|
||||
.Sh NAME
|
||||
|
@ -534,6 +534,7 @@ set_process_priority(void)
|
||||
* Detach from terminal (much like daemon())
|
||||
* Nothe that this function calls exit()
|
||||
*/
|
||||
# ifdef HAVE_WORKING_FORK
|
||||
static void
|
||||
detach_from_terminal(
|
||||
int pipe_fds[2],
|
||||
@ -617,6 +618,7 @@ detach_from_terminal(
|
||||
|
||||
return;
|
||||
}
|
||||
# endif /* HAVE_WORKING_FORK */
|
||||
|
||||
#ifdef HAVE_DROPROOT
|
||||
/*
|
||||
@ -665,8 +667,7 @@ map_user(
|
||||
* Map group name/number to group ID
|
||||
*/
|
||||
static int
|
||||
map_group(
|
||||
)
|
||||
map_group(void)
|
||||
{
|
||||
char *endp;
|
||||
|
||||
@ -688,24 +689,9 @@ map_group(
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Change (effective) user and group IDs, also initialize the supplementary group access list
|
||||
*/
|
||||
int
|
||||
set_user_group_ids(
|
||||
)
|
||||
static int
|
||||
set_group_ids(void)
|
||||
{
|
||||
/* If the the user was already mapped, no need to map it again */
|
||||
if ((NULL != user) && (0 == sw_uid)) {
|
||||
if (0 == map_user())
|
||||
exit (-1);
|
||||
}
|
||||
/* same applies for the group */
|
||||
if ((NULL != group) && (0 == sw_gid)) {
|
||||
if (0 == map_group())
|
||||
exit (-1);
|
||||
}
|
||||
|
||||
if (user && initgroups(user, sw_gid)) {
|
||||
msyslog(LOG_ERR, "Cannot initgroups() to user `%s': %m", user);
|
||||
return 0;
|
||||
@ -729,6 +715,12 @@ set_user_group_ids(
|
||||
msyslog(LOG_ERR, "initgroups(<%s>, %d) filed: %m", pw->pw_name, pw->pw_gid);
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int
|
||||
set_user_ids(void)
|
||||
{
|
||||
if (user && setuid(sw_uid)) {
|
||||
msyslog(LOG_ERR, "Cannot setuid() to user `%s': %m", user);
|
||||
return 0;
|
||||
@ -737,6 +729,31 @@ set_user_group_ids(
|
||||
msyslog(LOG_ERR, "Cannot seteuid() to user `%s': %m", user);
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Change (effective) user and group IDs, also initialize the supplementary group access list
|
||||
*/
|
||||
int set_user_group_ids(void);
|
||||
int
|
||||
set_user_group_ids(void)
|
||||
{
|
||||
/* If the the user was already mapped, no need to map it again */
|
||||
if ((NULL != user) && (0 == sw_uid)) {
|
||||
if (0 == map_user())
|
||||
exit (-1);
|
||||
}
|
||||
/* same applies for the group */
|
||||
if ((NULL != group) && (0 == sw_gid)) {
|
||||
if (0 == map_group())
|
||||
exit (-1);
|
||||
}
|
||||
|
||||
if (getegid() != sw_gid && 0 == set_group_ids())
|
||||
return 0;
|
||||
if (geteuid() != sw_uid && 0 == set_user_ids())
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -10,11 +10,11 @@
|
||||
.ds B-Font B
|
||||
.ds I-Font I
|
||||
.ds R-Font R
|
||||
.TH ntpd @NTPD_MS@ "14 Aug 2018" "4.2.8p12" "User Commands"
|
||||
.TH ntpd @NTPD_MS@ "20 Feb 2019" "4.2.8p13" "User Commands"
|
||||
.\"
|
||||
.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-jbaWTB/ag-ubaOSB)
|
||||
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
|
||||
.\"
|
||||
.\" It has been AutoGen-ed August 14, 2018 at 08:29:02 AM by AutoGen 5.18.5
|
||||
.\" It has been AutoGen-ed February 20, 2019 at 09:56:46 AM by AutoGen 5.18.5
|
||||
.\" From the definitions ntpd-opts.def
|
||||
.\" and the template file agman-cmd.tpl
|
||||
.SH NAME
|
||||
|
@ -1,9 +1,9 @@
|
||||
.Dd August 14 2018
|
||||
.Dd February 20 2019
|
||||
.Dt NTPD @NTPD_MS@ User Commands
|
||||
.Os
|
||||
.\" EDIT THIS FILE WITH CAUTION (ntpd-opts.mdoc)
|
||||
.\"
|
||||
.\" It has been AutoGen-ed August 14, 2018 at 08:29:20 AM by AutoGen 5.18.5
|
||||
.\" It has been AutoGen-ed February 20, 2019 at 09:56:37 AM by AutoGen 5.18.5
|
||||
.\" From the definitions ntpd-opts.def
|
||||
.\" and the template file agmdoc-cmd.tpl
|
||||
.Sh NAME
|
||||
|
@ -60,6 +60,9 @@
|
||||
#include <stdio.h>
|
||||
#include <syslog.h>
|
||||
#include <ctype.h>
|
||||
#ifdef HAVE_SYS_IOCTL_H
|
||||
# include <sys/ioctl.h>
|
||||
#endif
|
||||
|
||||
struct btfp_time /* Structure for reading 5 time words */
|
||||
/* in one ioctl(2) operation. */
|
||||
@ -80,11 +83,10 @@ struct btfp_time /* Structure for reading 5 time words */
|
||||
/***** Compound ioctl commands *****/
|
||||
|
||||
/* Read all 5 time words in one call. */
|
||||
#define READTIME IOCIORN(b, 32, sizeof( struct btfp_time ))
|
||||
|
||||
#if defined(__FreeBSD__)
|
||||
#undef READTIME
|
||||
# define READTIME _IOR('u', 5, struct btfp_time )
|
||||
#else
|
||||
# define READTIME IOCIORN(b, 32, sizeof( struct btfp_time ))
|
||||
#endif
|
||||
|
||||
/* Solaris specific section */
|
||||
@ -165,18 +167,76 @@ static void vme_poll (int unit, struct peer *);
|
||||
struct vmedate *get_datumtime(struct vmedate *);
|
||||
void tvme_fill(struct vmedate *, uint32_t btm[2]);
|
||||
void stfp_time2tvme(struct vmedate *time_vme, struct stfp_time *stfp);
|
||||
inline const char *DEVICE_NAME(int n);
|
||||
static const char *get_devicename(int n);
|
||||
|
||||
/* [Bug 3558] and [Bug 1674] perlinger@ntp.org says:
|
||||
*
|
||||
* bcReadBinTime() is defined to use two DWORD pointers on Windows and
|
||||
* Linux in the BANCOMM SDK. DWORD is of course Windows-specific
|
||||
* (*shudder*), and it is defined as 'unsigned long' under
|
||||
* Linux/Unix. (*sigh*)
|
||||
*
|
||||
* This creates quite some headache. The size of 'unsigned long' is
|
||||
* platform/compiler/memory-model dependent (LP32 vs LP64 vs LLP64),
|
||||
* while the card itself always creates 32bit time stamps. What a
|
||||
* bummer. And DWORD has tendency to contain 64bit on Win64 (which is
|
||||
* why we have a DWORD32 defined on Win64) so it can be used as
|
||||
* substitute for 'UINT_PTR' in Windows API headers. I won't even try
|
||||
* to comment on that, because anything I have to say will not be civil.
|
||||
*
|
||||
* We work around this by possibly using a wrapper function that makes
|
||||
* the necessary conversions/casts. It might be a bit tricky to
|
||||
* maintain the conditional logic below, but any lingering disease needs
|
||||
* constant care to avoid a breakout.
|
||||
*/
|
||||
#if defined(__linux__)
|
||||
typedef unsigned long bcBinTimeT;
|
||||
# if SIZEOF_LONG == 4
|
||||
# define safeReadBinTime bcReadBinTime
|
||||
# endif
|
||||
#elif defined(SYS_WINNT)
|
||||
typedef DWORD bcBinTimeT;
|
||||
# if !defined(_WIN64) || _WIN64 == 0
|
||||
# define safeReadBinTime bcReadBinTime
|
||||
# endif
|
||||
#else
|
||||
typedef uint32_t bcBinTimeT;
|
||||
# define safeReadBinTime bcReadBinTime
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Define the bc*() functions as weak so we can compile/link without them.
|
||||
* Only clients with the card will have the proprietary vendor device driver
|
||||
* and interface library needed for use on Linux/Windows platforms.
|
||||
*/
|
||||
extern uint32_t __attribute__ ((weak)) bcReadBinTime(SYMMT_PCI_HANDLE, uint32_t *, uint32_t*, uint8_t*);
|
||||
extern uint32_t __attribute__ ((weak)) bcReadBinTime(SYMMT_PCI_HANDLE, bcBinTimeT*, bcBinTimeT*, uint8_t*);
|
||||
extern SYMMT_PCI_HANDLE __attribute__ ((weak)) bcStartPci(void);
|
||||
extern void __attribute__ ((weak)) bcStopPci(SYMMT_PCI_HANDLE);
|
||||
|
||||
/* This is the conversion wrapper for the long/DWORD/uint32_t clash in
|
||||
* reading binary times.
|
||||
*/
|
||||
#ifndef safeReadBinTime
|
||||
static uint32_t
|
||||
safeReadBinTime(
|
||||
SYMMT_PCI_HANDLE hnd,
|
||||
uint32_t *pt1,
|
||||
uint32_t *pt2,
|
||||
uint8_t *p3
|
||||
)
|
||||
{
|
||||
bcBinTimeT t1, t2;
|
||||
uint32_t rc;
|
||||
|
||||
rc = bcReadBinTime(hnd, &t1, &t2, p3);
|
||||
if (rc != 0) {
|
||||
*pt1 = (uint32_t)t1;
|
||||
*pt2 = (uint32_t)t2;
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
#endif /* !defined(safeReadBinTime) */
|
||||
|
||||
/*
|
||||
* Transfer vector
|
||||
*/
|
||||
@ -195,15 +255,27 @@ int regvalue;
|
||||
int tfp_type; /* mode selector, indicate platform and driver interface */
|
||||
SYMMT_PCI_HANDLE stfp_handle;
|
||||
|
||||
/**
|
||||
* this macro returns the device name based on
|
||||
* the platform we are running on and the device number
|
||||
/* This helper function returns the device name based on the platform we
|
||||
* are running on and the device number.
|
||||
*
|
||||
* Uses a static buffer, so the result is valid only to the next call of
|
||||
* this function!
|
||||
*/
|
||||
static const char*
|
||||
get_devicename(int n)
|
||||
{
|
||||
|
||||
# if defined(__sun__)
|
||||
inline const char *DEVICE_NAME(int n) {static char s[20]={0}; snprintf(s,19,"/dev/stfp%d",n);return s;}
|
||||
static const char * const template ="/dev/stfp%d";
|
||||
# else
|
||||
inline const char* DEVICE_NAME(int n) {static char s[20]={0}; snprintf(s,19,"/dev/btfp%d",n);return s;}
|
||||
#endif /**__sun__**/
|
||||
static const char * const template ="/dev/btfp%d";
|
||||
# endif
|
||||
static char namebuf[20];
|
||||
|
||||
snprintf(namebuf, sizeof(namebuf), template, n);
|
||||
namebuf[sizeof(namebuf)-1] = '\0'; /* paranoia rulez! */
|
||||
return namebuf;
|
||||
}
|
||||
|
||||
/*
|
||||
* vme_start - open the VME device and initialize data for processing
|
||||
@ -235,9 +307,9 @@ vme_start(
|
||||
*/
|
||||
#ifdef DEBUG
|
||||
|
||||
printf("Opening DATUM DEVICE %s\n",DEVICE_NAME(peer->refclkunit));
|
||||
printf("Opening DATUM DEVICE %s\n",get_devicename(peer->refclkunit));
|
||||
#endif
|
||||
if ( (fd_vme = open(DEVICE_NAME(peer->refclkunit), O_RDWR)) < 0) {
|
||||
if ( (fd_vme = open(get_devicename(peer->refclkunit), O_RDWR)) < 0) {
|
||||
msyslog(LOG_ERR, "vme_start: failed open of %s: %m", vmedev);
|
||||
return (0);
|
||||
}
|
||||
@ -433,7 +505,7 @@ get_datumtime(struct vmedate *time_vme)
|
||||
break;
|
||||
|
||||
case 2: /* Linux/Windows, PCI, 2 32bit time words */
|
||||
if (bcReadBinTime(stfp_handle, &btm[1], &btm[0], &dmy) == 0) {
|
||||
if (safeReadBinTime(stfp_handle, &btm[1], &btm[0], &dmy) == 0) {
|
||||
msyslog(LOG_ERR, "get_datumtime error: %m");
|
||||
return(NULL);
|
||||
}
|
||||
@ -512,10 +584,11 @@ void
|
||||
tvme_fill(struct vmedate *time_vme, uint32_t btm[2])
|
||||
{
|
||||
struct tm maj;
|
||||
uint32_t dmaj, dmin;
|
||||
time_t dmaj;
|
||||
uint32_t dmin;
|
||||
|
||||
dmaj = btm[1]; /* syntax sugar */
|
||||
dmin = btm[0];
|
||||
dmaj = btm[1]; /* syntax sugar & expansion */
|
||||
dmin = btm[0]; /* just syntax sugar */
|
||||
|
||||
gmtime_r(&dmaj, &maj);
|
||||
time_vme->day = maj.tm_yday+1;
|
||||
|
@ -158,10 +158,6 @@ static char * jupiter_send (struct instance *, struct jheader *);
|
||||
static void jupiter_shutdown(int, struct peer *);
|
||||
static int jupiter_start (int, struct peer *);
|
||||
|
||||
static u_int get_full_week(u_int base_week, u_int gpos_week);
|
||||
static u_int get_base_week(void);
|
||||
|
||||
|
||||
/*
|
||||
* Transfer vector
|
||||
*/
|
||||
@ -855,8 +851,7 @@ jupiter_parse_gpos(struct instance *instance, u_short *sp)
|
||||
}
|
||||
|
||||
instance->gpos_sweek = DS2UI(jg->sweek);
|
||||
instance->gpos_gweek = get_full_week(get_base_week(),
|
||||
getshort(jg->gweek));
|
||||
instance->gpos_gweek = basedate_expand_gpsweek(getshort(jg->gweek));
|
||||
|
||||
/* according to the protocol spec, the seconds-in-week cannot
|
||||
* exceed the nominal value: Is it really necessary to normalise
|
||||
@ -1129,56 +1124,6 @@ jupiter_recv(struct instance *instance)
|
||||
return (cc);
|
||||
}
|
||||
|
||||
static u_int
|
||||
get_base_week(void)
|
||||
{
|
||||
static int init_done /* = 0 */;
|
||||
static u_int base_week;
|
||||
|
||||
/* Get the build date, convert to days since GPS epoch and
|
||||
* finally weeks since GPS epoch. Note that the build stamp is
|
||||
* trusted once it is fetched -- only dates before the GPS epoch
|
||||
* are not permitted. This will permit proper synchronisation
|
||||
* for a time range of 1024 weeks starting with 00:00:00 of the
|
||||
* last Sunday on or before the build time.
|
||||
*
|
||||
* If the impossible happens and fetching the build date fails,
|
||||
* a 1024-week cycle starting with 2016-01-03 is assumed to
|
||||
* avoid catastropic errors. This will work until 2035-08-19.
|
||||
*/
|
||||
if (!init_done) {
|
||||
struct calendar bd;
|
||||
if (ntpcal_get_build_date(&bd)) {
|
||||
int32_t days = ntpcal_date_to_rd(&bd);
|
||||
if (days > RDN_GPS_EPOCH)
|
||||
days -= RDN_GPS_EPOCH;
|
||||
else
|
||||
days = 0;
|
||||
base_week = days / 7;
|
||||
} else {
|
||||
base_week = 1878; /* 2016-01-03, Sunday */
|
||||
msyslog(LOG_ERR,
|
||||
"refclock_jupiter: ntpcal_get_build_date() failed: %s",
|
||||
"using 2016-01-03 as GPS base!");
|
||||
}
|
||||
init_done = 1;
|
||||
}
|
||||
return base_week;
|
||||
}
|
||||
|
||||
static u_int
|
||||
get_full_week(
|
||||
u_int base_week,
|
||||
u_int gpos_week
|
||||
)
|
||||
{
|
||||
/* Periodic extension on base week. Since the period is 1024
|
||||
* weeks and we do unsigned arithmetic here, we can do wonderful
|
||||
* things with masks and the well-defined overflow behaviour.
|
||||
*/
|
||||
return base_week + ((gpos_week - base_week) & 1023);
|
||||
}
|
||||
|
||||
#else /* not (REFCLOCK && CLOCK_JUPITER && HAVE_PPSAPI) */
|
||||
int refclock_jupiter_bs;
|
||||
#endif /* not (REFCLOCK && CLOCK_JUPITER && HAVE_PPSAPI) */
|
||||
|
@ -4256,8 +4256,7 @@ mk_utcinfo(
|
||||
struct tm *tm;
|
||||
int nc;
|
||||
|
||||
if (wnlsf < GPSWRAP)
|
||||
wnlsf += GPSWEEKS;
|
||||
wnlsf = basedate_expand_gpsweek(wnlsf);
|
||||
/* 'wnt' not used here: would need the same treatment as 'wnlsf */
|
||||
|
||||
t_ls = (time_t) wnlsf * SECSPERWEEK
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -2176,6 +2176,7 @@ print_server(
|
||||
str, fptoa((s_fp)pp->rootdelay, 6),
|
||||
ufptoa(pp->rootdisp, 6));
|
||||
|
||||
if (pp->xmtcnt != pp->filter_nextpt)
|
||||
(void) fprintf(fp, "transmitted %d, in filter %d\n",
|
||||
pp->xmtcnt, pp->filter_nextpt);
|
||||
|
||||
@ -2189,22 +2190,24 @@ print_server(
|
||||
if (sys_samples > 1) {
|
||||
(void) fprintf(fp, "filter delay: ");
|
||||
for (i = 0; i < NTP_SHIFT; i++) {
|
||||
(void) fprintf(fp, " %-8.8s", fptoa(pp->filter_delay[i], 5));
|
||||
if (i == (NTP_SHIFT>>1)-1)
|
||||
if (i == (NTP_SHIFT>>1))
|
||||
(void) fprintf(fp, "\n ");
|
||||
(void) fprintf(fp, " %-10.10s",
|
||||
(i<sys_samples ? fptoa(pp->filter_delay[i], 5) : "----"));
|
||||
}
|
||||
(void) fprintf(fp, "\n");
|
||||
|
||||
(void) fprintf(fp, "filter offset:");
|
||||
for (i = 0; i < PEER_SHIFT; i++) {
|
||||
(void) fprintf(fp, " %-8.8s", lfptoa(&pp->filter_offset[i], 6));
|
||||
if (i == (PEER_SHIFT>>1)-1)
|
||||
if (i == (PEER_SHIFT>>1))
|
||||
(void) fprintf(fp, "\n ");
|
||||
(void) fprintf(fp, " %-10.10s",
|
||||
(i<sys_samples ? lfptoa(&pp->filter_offset[i], 6): "----"));
|
||||
}
|
||||
(void) fprintf(fp, "\n");
|
||||
}
|
||||
|
||||
(void) fprintf(fp, "delay %s, dispersion %s\n",
|
||||
(void) fprintf(fp, "delay %s, dispersion %s, ",
|
||||
fptoa((s_fp)pp->delay, 5), ufptoa(pp->dispersion, 5));
|
||||
|
||||
(void) fprintf(fp, "offset %s\n\n",
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -6,7 +6,7 @@
|
||||
#
|
||||
# EDIT THIS FILE WITH CAUTION (invoke-ntpdc.texi)
|
||||
#
|
||||
# It has been AutoGen-ed August 14, 2018 at 08:29:40 AM by AutoGen 5.18.5
|
||||
# It has been AutoGen-ed February 20, 2019 at 09:56:51 AM by AutoGen 5.18.5
|
||||
# From the definitions ntpdc-opts.def
|
||||
# and the template file agtexi-cmd.tpl
|
||||
@end ignore
|
||||
@ -76,7 +76,7 @@ with a status code of 0.
|
||||
|
||||
@exampleindent 0
|
||||
@example
|
||||
ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p12
|
||||
ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p13
|
||||
Usage: ntpdc [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [ host ...]
|
||||
Flg Arg Option-Name Description
|
||||
-4 no ipv4 Force IPv4 DNS name resolution
|
||||
|
@ -1,4 +1,4 @@
|
||||
#! /usr/local/bin/perl -w
|
||||
#! /ntpbuild/bin/perl -w
|
||||
|
||||
$found = 0;
|
||||
$last = 0;
|
||||
|
@ -1,11 +1,11 @@
|
||||
/*
|
||||
* EDIT THIS FILE WITH CAUTION (ntpdc-opts.c)
|
||||
*
|
||||
* It has been AutoGen-ed August 14, 2018 at 08:29:29 AM by AutoGen 5.18.5
|
||||
* It has been AutoGen-ed February 20, 2019 at 09:56:48 AM by AutoGen 5.18.5
|
||||
* From the definitions ntpdc-opts.def
|
||||
* and the template file options
|
||||
*
|
||||
* Generated from AutoOpts 41:0:16 templates.
|
||||
* Generated from AutoOpts 41:1:16 templates.
|
||||
*
|
||||
* AutoOpts is a copyrighted work. This source file is not encumbered
|
||||
* by AutoOpts licensing, but is provided under the licensing terms chosen
|
||||
@ -69,7 +69,7 @@ extern FILE * option_usage_fp;
|
||||
* static const strings for ntpdc options
|
||||
*/
|
||||
static char const ntpdc_opt_strs[1914] =
|
||||
/* 0 */ "ntpdc 4.2.8p12\n"
|
||||
/* 0 */ "ntpdc 4.2.8p13\n"
|
||||
"Copyright (C) 1992-2017 The University of Delaware and Network Time Foundation, all rights reserved.\n"
|
||||
"This is free software. It is licensed for use, modification and\n"
|
||||
"redistribution under the terms of the NTP License, copies of which\n"
|
||||
@ -128,14 +128,14 @@ static char const ntpdc_opt_strs[1914] =
|
||||
/* 1695 */ "no-load-opts\0"
|
||||
/* 1708 */ "no\0"
|
||||
/* 1711 */ "NTPDC\0"
|
||||
/* 1717 */ "ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p12\n"
|
||||
/* 1717 */ "ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p13\n"
|
||||
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n\0"
|
||||
/* 1848 */ "$HOME\0"
|
||||
/* 1854 */ ".\0"
|
||||
/* 1856 */ ".ntprc\0"
|
||||
/* 1863 */ "http://bugs.ntp.org, bugs@ntp.org\0"
|
||||
/* 1897 */ "\n\0"
|
||||
/* 1899 */ "ntpdc 4.2.8p12";
|
||||
/* 1899 */ "ntpdc 4.2.8p13";
|
||||
|
||||
/**
|
||||
* ipv4 option description with
|
||||
@ -796,7 +796,7 @@ static void bogus_function(void) {
|
||||
translate option names.
|
||||
*/
|
||||
/* referenced via ntpdcOptions.pzCopyright */
|
||||
puts(_("ntpdc 4.2.8p12\n\
|
||||
puts(_("ntpdc 4.2.8p13\n\
|
||||
Copyright (C) 1992-2017 The University of Delaware and Network Time Foundation, all rights reserved.\n\
|
||||
This is free software. It is licensed for use, modification and\n\
|
||||
redistribution under the terms of the NTP License, copies of which\n\
|
||||
@ -862,14 +862,14 @@ implied warranty.\n"));
|
||||
puts(_("load options from a config file"));
|
||||
|
||||
/* referenced via ntpdcOptions.pzUsageTitle */
|
||||
puts(_("ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p12\n\
|
||||
puts(_("ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p13\n\
|
||||
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n"));
|
||||
|
||||
/* referenced via ntpdcOptions.pzExplain */
|
||||
puts(_("\n"));
|
||||
|
||||
/* referenced via ntpdcOptions.pzFullVersion */
|
||||
puts(_("ntpdc 4.2.8p12"));
|
||||
puts(_("ntpdc 4.2.8p13"));
|
||||
|
||||
/* referenced via ntpdcOptions.pzFullUsage */
|
||||
puts(_("<<<NOT-FOUND>>>"));
|
||||
|
@ -1,11 +1,11 @@
|
||||
/*
|
||||
* EDIT THIS FILE WITH CAUTION (ntpdc-opts.h)
|
||||
*
|
||||
* It has been AutoGen-ed August 14, 2018 at 08:29:28 AM by AutoGen 5.18.5
|
||||
* It has been AutoGen-ed February 20, 2019 at 09:56:48 AM by AutoGen 5.18.5
|
||||
* From the definitions ntpdc-opts.def
|
||||
* and the template file options
|
||||
*
|
||||
* Generated from AutoOpts 41:0:16 templates.
|
||||
* Generated from AutoOpts 41:1:16 templates.
|
||||
*
|
||||
* AutoOpts is a copyrighted work. This header file is not encumbered
|
||||
* by AutoOpts licensing, but is provided under the licensing terms chosen
|
||||
@ -53,7 +53,7 @@
|
||||
* tolerable version is at least as old as what was current when the header
|
||||
* template was released.
|
||||
*/
|
||||
#define AO_TEMPLATE_VERSION 167936
|
||||
#define AO_TEMPLATE_VERSION 167937
|
||||
#if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
|
||||
|| (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
|
||||
# error option template version mismatches autoopts/options.h header
|
||||
@ -83,9 +83,9 @@ typedef enum {
|
||||
/** count of all options for ntpdc */
|
||||
#define OPTION_CT 15
|
||||
/** ntpdc version */
|
||||
#define NTPDC_VERSION "4.2.8p12"
|
||||
#define NTPDC_VERSION "4.2.8p13"
|
||||
/** Full ntpdc version text */
|
||||
#define NTPDC_FULL_VERSION "ntpdc 4.2.8p12"
|
||||
#define NTPDC_FULL_VERSION "ntpdc 4.2.8p13"
|
||||
|
||||
/**
|
||||
* Interface defines for all options. Replace "n" with the UPPER_CASED
|
||||
|
@ -10,11 +10,11 @@
|
||||
.ds B-Font B
|
||||
.ds I-Font I
|
||||
.ds R-Font R
|
||||
.TH ntpdc 1ntpdcman "14 Aug 2018" "4.2.8p12" "User Commands"
|
||||
.TH ntpdc 1ntpdcman "20 Feb 2019" "4.2.8p13" "User Commands"
|
||||
.\"
|
||||
.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-uwaqJD/ag-GwaiID)
|
||||
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
|
||||
.\"
|
||||
.\" It has been AutoGen-ed August 14, 2018 at 08:29:36 AM by AutoGen 5.18.5
|
||||
.\" It has been AutoGen-ed February 20, 2019 at 09:56:53 AM by AutoGen 5.18.5
|
||||
.\" From the definitions ntpdc-opts.def
|
||||
.\" and the template file agman-cmd.tpl
|
||||
.SH NAME
|
||||
|
@ -1,9 +1,9 @@
|
||||
.Dd August 14 2018
|
||||
.Dd February 20 2019
|
||||
.Dt NTPDC 1ntpdcmdoc User Commands
|
||||
.Os
|
||||
.\" EDIT THIS FILE WITH CAUTION (ntpdc-opts.mdoc)
|
||||
.\"
|
||||
.\" It has been AutoGen-ed August 14, 2018 at 08:29:43 AM by AutoGen 5.18.5
|
||||
.\" It has been AutoGen-ed February 20, 2019 at 09:56:50 AM by AutoGen 5.18.5
|
||||
.\" From the definitions ntpdc-opts.def
|
||||
.\" and the template file agmdoc-cmd.tpl
|
||||
.Sh NAME
|
||||
|
@ -1,89 +1,135 @@
|
||||
<html lang="en">
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
|
||||
<head>
|
||||
<title>ntpdc: NTPD Control User's Manual</title>
|
||||
<meta http-equiv="Content-Type" content="text/html">
|
||||
<meta name="description" content="ntpdc: NTPD Control User's Manual">
|
||||
<meta name="generator" content="makeinfo 4.7">
|
||||
<link title="Top" rel="top" href="#Top">
|
||||
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
|
||||
<meta http-equiv="Content-Style-Type" content="text/css">
|
||||
<style type="text/css"><!--
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>ntpdc: NTPD Control User’s Manual</title>
|
||||
|
||||
<meta name="description" content="ntpdc: NTPD Control User’s Manual">
|
||||
<meta name="keywords" content="ntpdc: NTPD Control User’s Manual">
|
||||
<meta name="resource-type" content="document">
|
||||
<meta name="distribution" content="global">
|
||||
<meta name="Generator" content="makeinfo">
|
||||
<link href="#Top" rel="start" title="Top">
|
||||
<link href="dir.html#Top" rel="up" title="(dir)">
|
||||
<style type="text/css">
|
||||
<!--
|
||||
a.summary-letter {text-decoration: none}
|
||||
blockquote.indentedblock {margin-right: 0em}
|
||||
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
|
||||
blockquote.smallquotation {font-size: smaller}
|
||||
div.display {margin-left: 3.2em}
|
||||
div.example {margin-left: 3.2em}
|
||||
div.lisp {margin-left: 3.2em}
|
||||
div.smalldisplay {margin-left: 3.2em}
|
||||
div.smallexample {margin-left: 3.2em}
|
||||
div.smalllisp {margin-left: 3.2em}
|
||||
kbd {font-style: oblique}
|
||||
pre.display {font-family: inherit}
|
||||
pre.format {font-family: inherit}
|
||||
pre.menu-comment {font-family: serif}
|
||||
pre.menu-preformatted {font-family: serif}
|
||||
pre.smalldisplay {font-family: inherit; font-size: smaller}
|
||||
pre.smallformat { font-family:inherit; font-size:smaller }
|
||||
pre.smallexample {font-size: smaller}
|
||||
pre.smallformat {font-family: inherit; font-size: smaller}
|
||||
pre.smalllisp {font-size: smaller}
|
||||
span.sc { font-variant:small-caps }
|
||||
span.roman { font-family: serif; font-weight: normal; }
|
||||
--></style>
|
||||
span.nolinebreak {white-space: nowrap}
|
||||
span.roman {font-family: initial; font-weight: normal}
|
||||
span.sansserif {font-family: sans-serif; font-weight: normal}
|
||||
ul.no-bullet {list-style: none}
|
||||
-->
|
||||
</style>
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<h1 class="settitle">ntpdc: NTPD Control User's Manual</h1>
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<a name="Top"></a>Next: <a rel="next" accesskey="n" href="#ntpdc-Description">ntpdc Description</a>,
|
||||
Previous: <a rel="previous" accesskey="p" href="#dir">(dir)</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#dir">(dir)</a>
|
||||
<br>
|
||||
|
||||
<body lang="en">
|
||||
<h1 class="settitle" align="center">ntpdc: NTPD Control User’s Manual</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="Top"></a>
|
||||
<div class="header">
|
||||
<p>
|
||||
Next: <a href="#ntpdc-Description" accesskey="n" rel="next">ntpdc Description</a>, Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> </p>
|
||||
</div>
|
||||
<a name="ntpdc_003a-NTPD-Control-User-Manual"></a>
|
||||
<h1 class="top">ntpdc: NTPD Control User Manual</h1>
|
||||
|
||||
<h2 class="unnumbered">ntpdc: NTPD Control User Manual</h2>
|
||||
|
||||
<p>This document describes the use of the NTP Project's <code>ntpdc</code> program,
|
||||
<p>This document describes the use of the NTP Project’s <code>ntpdc</code> program,
|
||||
that can be used to query a Network Time Protocol (NTP) server and
|
||||
display the time offset of the system clock relative to the server
|
||||
clock. Run as root, it can correct the system clock to this offset as
|
||||
well. It can be run as an interactive command or from a cron job.
|
||||
|
||||
<p>This document applies to version 4.2.8p12 of <code>ntpdc</code>.
|
||||
|
||||
</p>
|
||||
<p>This document applies to version 4.2.8p13 of <code>ntpdc</code>.
|
||||
</p>
|
||||
<p>The program implements the SNTP protocol as defined by RFC 5905, the NTPv4
|
||||
IETF specification.
|
||||
</p>
|
||||
<a name="SEC_Overview"></a>
|
||||
<h2 class="shortcontents-heading">Short Table of Contents</h2>
|
||||
|
||||
<div class="shortcontents">
|
||||
<h2>Short Contents</h2>
|
||||
<ul>
|
||||
<a href="#Top">ntpdc: NTPD Control User Manual</a>
|
||||
<ul class="no-bullet">
|
||||
<li><a name="stoc-Description" href="#toc-Description">1 Description</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<ul class="menu">
|
||||
<li><a accesskey="1" href="#ntpdc-Description">ntpdc Description</a>: Description
|
||||
<li><a accesskey="2" href="#ntpdc-Invocation">ntpdc Invocation</a>: Invoking ntpdc
|
||||
<li><a accesskey="3" href="#Usage">Usage</a>: Usage
|
||||
</ul>
|
||||
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<table class="menu" border="0" cellspacing="0">
|
||||
<tr><td align="left" valign="top">• <a href="#ntpdc-Description" accesskey="1">ntpdc Description</a>:</td><td> </td><td align="left" valign="top">Description
|
||||
</td></tr>
|
||||
<tr><td align="left" valign="top">• <a href="#ntpdc-Invocation" accesskey="2">ntpdc Invocation</a>:</td><td> </td><td align="left" valign="top">Invoking ntpdc
|
||||
</td></tr>
|
||||
<tr><td align="left" valign="top">• <a href="#Usage" accesskey="3">Usage</a>:</td><td> </td><td align="left" valign="top">Usage
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
<hr>
|
||||
<a name="ntpdc-Description"></a>
|
||||
<br>
|
||||
<div class="header">
|
||||
<p>
|
||||
Next: <a href="#ntpdc-Invocation" accesskey="n" rel="next">ntpdc Invocation</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> </p>
|
||||
</div>
|
||||
|
||||
<!-- node-name, next, previous, up -->
|
||||
<h3 class="section">Description</h3>
|
||||
<a name="Description"></a>
|
||||
<h2 class="chapter">1 Description</h2>
|
||||
|
||||
<p>By default, <code>ntpdc</code> writes the local data and time (i.e., not UTC) to the
|
||||
standard output in the format:
|
||||
|
||||
</p>
|
||||
<div class="example">
|
||||
<pre class="example">1996-10-15 20:17:25.123 (+0800) +4.567 +/- 0.089 secs
|
||||
</pre>
|
||||
</pre></div>
|
||||
|
||||
<p>where
|
||||
YYYY-MM-DD HH:MM:SS.SUBSEC is the local date and time,
|
||||
(+0800) is the local timezone adjustment (so we would add 8 hours and 0 minutes to convert the reported local time to UTC),
|
||||
and
|
||||
the +4.567 +/- 0.089 secs indicates the time offset and
|
||||
error bound of the system clock relative to the server clock.
|
||||
</p>
|
||||
<table class="menu" border="0" cellspacing="0">
|
||||
<tr><td align="left" valign="top">• <a href="#ntpdc-Invocation" accesskey="1">ntpdc Invocation</a>:</td><td> </td><td align="left" valign="top">
|
||||
</td></tr>
|
||||
<tr><td align="left" valign="top">• <a href="#Usage" accesskey="2">Usage</a>:</td><td> </td><td align="left" valign="top">
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<hr>
|
||||
<a name="ntpdc-Invocation"></a>
|
||||
<br>
|
||||
<div class="header">
|
||||
<p>
|
||||
Next: <a href="#Usage" accesskey="n" rel="next">Usage</a>, Previous: <a href="#ntpdc-Description" accesskey="p" rel="prev">ntpdc Description</a>, Up: <a href="#ntpdc-Description" accesskey="u" rel="up">ntpdc Description</a> </p>
|
||||
</div>
|
||||
<a name="Invoking-ntpdc"></a>
|
||||
<h3 class="section">1.1 Invoking ntpdc</h3>
|
||||
<a name="index-ntpdc"></a>
|
||||
<a name="index-vendor_002dspecific-NTPD-control-program"></a>
|
||||
|
||||
<h3 class="section">Invoking ntpdc</h3>
|
||||
|
||||
<p><a name="index-ntpdc-1"></a><a name="index-vendor_002dspecific-NTPD-control-program-2"></a>
|
||||
|
||||
<p><code>ntpdc</code>
|
||||
is deprecated.
|
||||
@ -91,7 +137,7 @@ Please use
|
||||
<code>ntpq(1ntpqmdoc)</code> instead - it can do everything
|
||||
<code>ntpdc</code>
|
||||
used to do, and it does so using a much more sane interface.
|
||||
|
||||
</p>
|
||||
<p><code>ntpdc</code>
|
||||
is a utility program used to query
|
||||
<code>ntpd(1ntpdmdoc)</code>
|
||||
@ -107,52 +153,68 @@ through the
|
||||
interface.
|
||||
In addition, nearly all the
|
||||
configuration options which can be specified at startup using
|
||||
ntpd's configuration file may also be specified at run time using
|
||||
ntpd’s configuration file may also be specified at run time using
|
||||
<code>ntpdc</code>
|
||||
|
||||
</p>
|
||||
<p>This section was generated by <strong>AutoGen</strong>,
|
||||
using the <code>agtexi-cmd</code> template and the option descriptions for the <code>ntpdc</code> program.
|
||||
This software is released under the NTP license, <http://ntp.org/license>.
|
||||
</p>
|
||||
<table class="menu" border="0" cellspacing="0">
|
||||
<tr><td align="left" valign="top">• <a href="#ntpdc-usage" accesskey="1">ntpdc usage</a>:</td><td> </td><td align="left" valign="top">ntpdc help/usage (<samp>--help</samp>)
|
||||
</td></tr>
|
||||
<tr><td align="left" valign="top">• <a href="#ntpdc-ipv4" accesskey="2">ntpdc ipv4</a>:</td><td> </td><td align="left" valign="top">ipv4 option (-4)
|
||||
</td></tr>
|
||||
<tr><td align="left" valign="top">• <a href="#ntpdc-ipv6" accesskey="3">ntpdc ipv6</a>:</td><td> </td><td align="left" valign="top">ipv6 option (-6)
|
||||
</td></tr>
|
||||
<tr><td align="left" valign="top">• <a href="#ntpdc-command" accesskey="4">ntpdc command</a>:</td><td> </td><td align="left" valign="top">command option (-c)
|
||||
</td></tr>
|
||||
<tr><td align="left" valign="top">• <a href="#ntpdc-interactive" accesskey="5">ntpdc interactive</a>:</td><td> </td><td align="left" valign="top">interactive option (-i)
|
||||
</td></tr>
|
||||
<tr><td align="left" valign="top">• <a href="#ntpdc-listpeers" accesskey="6">ntpdc listpeers</a>:</td><td> </td><td align="left" valign="top">listpeers option (-l)
|
||||
</td></tr>
|
||||
<tr><td align="left" valign="top">• <a href="#ntpdc-numeric" accesskey="7">ntpdc numeric</a>:</td><td> </td><td align="left" valign="top">numeric option (-n)
|
||||
</td></tr>
|
||||
<tr><td align="left" valign="top">• <a href="#ntpdc-peers" accesskey="8">ntpdc peers</a>:</td><td> </td><td align="left" valign="top">peers option (-p)
|
||||
</td></tr>
|
||||
<tr><td align="left" valign="top">• <a href="#ntpdc-showpeers" accesskey="9">ntpdc showpeers</a>:</td><td> </td><td align="left" valign="top">showpeers option (-s)
|
||||
</td></tr>
|
||||
<tr><td align="left" valign="top">• <a href="#ntpdc-config">ntpdc config</a>:</td><td> </td><td align="left" valign="top">presetting/configuring ntpdc
|
||||
</td></tr>
|
||||
<tr><td align="left" valign="top">• <a href="#ntpdc-exit-status">ntpdc exit status</a>:</td><td> </td><td align="left" valign="top">exit status
|
||||
</td></tr>
|
||||
<tr><td align="left" valign="top">• <a href="#ntpdc-Usage">ntpdc Usage</a>:</td><td> </td><td align="left" valign="top">Usage
|
||||
</td></tr>
|
||||
<tr><td align="left" valign="top">• <a href="#ntpdc-See-Also">ntpdc See Also</a>:</td><td> </td><td align="left" valign="top">See Also
|
||||
</td></tr>
|
||||
<tr><td align="left" valign="top">• <a href="#ntpdc-Authors">ntpdc Authors</a>:</td><td> </td><td align="left" valign="top">Authors
|
||||
</td></tr>
|
||||
<tr><td align="left" valign="top">• <a href="#ntpdc-Bugs">ntpdc Bugs</a>:</td><td> </td><td align="left" valign="top">Bugs
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
<ul class="menu">
|
||||
<li><a accesskey="1" href="#ntpdc-usage">ntpdc usage</a>: ntpdc help/usage (<span class="option">--help</span>)
|
||||
<li><a accesskey="2" href="#ntpdc-ipv4">ntpdc ipv4</a>: ipv4 option (-4)
|
||||
<li><a accesskey="3" href="#ntpdc-ipv6">ntpdc ipv6</a>: ipv6 option (-6)
|
||||
<li><a accesskey="4" href="#ntpdc-command">ntpdc command</a>: command option (-c)
|
||||
<li><a accesskey="5" href="#ntpdc-interactive">ntpdc interactive</a>: interactive option (-i)
|
||||
<li><a accesskey="6" href="#ntpdc-listpeers">ntpdc listpeers</a>: listpeers option (-l)
|
||||
<li><a accesskey="7" href="#ntpdc-numeric">ntpdc numeric</a>: numeric option (-n)
|
||||
<li><a accesskey="8" href="#ntpdc-peers">ntpdc peers</a>: peers option (-p)
|
||||
<li><a accesskey="9" href="#ntpdc-showpeers">ntpdc showpeers</a>: showpeers option (-s)
|
||||
<li><a href="#ntpdc-config">ntpdc config</a>: presetting/configuring ntpdc
|
||||
<li><a href="#ntpdc-exit-status">ntpdc exit status</a>: exit status
|
||||
<li><a href="#ntpdc-Usage">ntpdc Usage</a>: Usage
|
||||
<li><a href="#ntpdc-See-Also">ntpdc See Also</a>: See Also
|
||||
<li><a href="#ntpdc-Authors">ntpdc Authors</a>: Authors
|
||||
<li><a href="#ntpdc-Bugs">ntpdc Bugs</a>: Bugs
|
||||
</ul>
|
||||
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<a name="ntpdc-usage"></a>Next: <a rel="next" accesskey="n" href="#ntpdc-ipv4">ntpdc ipv4</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#ntpdc-Invocation">ntpdc Invocation</a>
|
||||
<br>
|
||||
<hr>
|
||||
<a name="ntpdc-usage"></a>
|
||||
<div class="header">
|
||||
<p>
|
||||
Next: <a href="#ntpdc-ipv4" accesskey="n" rel="next">ntpdc ipv4</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> </p>
|
||||
</div>
|
||||
<a name="ntpdc-help_002fusage-_0028_002d_002dhelp_0029"></a>
|
||||
<h4 class="subsection">1.1.1 ntpdc help/usage (<samp>--help</samp>)</h4>
|
||||
<a name="index-ntpdc-help"></a>
|
||||
|
||||
<h4 class="subsection">ntpdc help/usage (<span class="option">--help</span>)</h4>
|
||||
|
||||
<p><a name="index-ntpdc-help-3"></a>
|
||||
This is the automatically generated usage text for ntpdc.
|
||||
|
||||
<p>This is the automatically generated usage text for ntpdc.
|
||||
</p>
|
||||
<p>The text printed is the same whether selected with the <code>help</code> option
|
||||
(<span class="option">--help</span>) or the <code>more-help</code> option (<span class="option">--more-help</span>). <code>more-help</code> will print
|
||||
(<samp>--help</samp>) or the <code>more-help</code> option (<samp>--more-help</samp>). <code>more-help</code> will print
|
||||
the usage text by passing it through a pager program.
|
||||
<code>more-help</code> is disabled on platforms without a working
|
||||
<code>fork(2)</code> function. The <code>PAGER</code> environment variable is
|
||||
used to select the program, defaulting to <span class="file">more</span>. Both will exit
|
||||
used to select the program, defaulting to <samp>more</samp>. Both will exit
|
||||
with a status code of 0.
|
||||
|
||||
<pre class="example">ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p12
|
||||
</p>
|
||||
<div class="example">
|
||||
<pre class="example">ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p13
|
||||
Usage: ntpdc [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]
|
||||
Flg Arg Option-Name Description
|
||||
-4 no ipv4 Force IPv4 DNS name resolution
|
||||
@ -196,320 +258,333 @@ The following option preset mechanisms are supported:
|
||||
- examining environment variables named NTPDC_*
|
||||
|
||||
Please send bug reports to: <http://bugs.ntp.org, bugs@ntp.org>
|
||||
</pre>
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<a name="ntpdc-ipv4"></a>Next: <a rel="next" accesskey="n" href="#ntpdc-ipv6">ntpdc ipv6</a>,
|
||||
Previous: <a rel="previous" accesskey="p" href="#ntpdc-usage">ntpdc usage</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#ntpdc-Invocation">ntpdc Invocation</a>
|
||||
<br>
|
||||
</pre></div>
|
||||
|
||||
<hr>
|
||||
<a name="ntpdc-ipv4"></a>
|
||||
<div class="header">
|
||||
<p>
|
||||
Next: <a href="#ntpdc-ipv6" accesskey="n" rel="next">ntpdc ipv6</a>, Previous: <a href="#ntpdc-usage" accesskey="p" rel="prev">ntpdc usage</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> </p>
|
||||
</div>
|
||||
<a name="ipv4-option-_0028_002d4_0029"></a>
|
||||
<h4 class="subsection">1.1.2 ipv4 option (-4)</h4>
|
||||
<a name="index-ntpdc_002dipv4"></a>
|
||||
|
||||
<h4 class="subsection">ipv4 option (-4)</h4>
|
||||
|
||||
<p><a name="index-ntpdc_002dipv4-4"></a>
|
||||
This is the “force ipv4 dns name resolution” option.
|
||||
|
||||
<p class="noindent">This option has some usage constraints. It:
|
||||
<ul>
|
||||
<p>This is the “force ipv4 dns name resolution” option.
|
||||
</p>
|
||||
<p>This option has some usage constraints. It:
|
||||
</p><ul>
|
||||
<li> must not appear in combination with any of the following options:
|
||||
ipv6.
|
||||
</ul>
|
||||
</li></ul>
|
||||
|
||||
<p>Force DNS resolution of following host names on the command line
|
||||
to the IPv4 namespace.
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<a name="ntpdc-ipv6"></a>Next: <a rel="next" accesskey="n" href="#ntpdc-command">ntpdc command</a>,
|
||||
Previous: <a rel="previous" accesskey="p" href="#ntpdc-ipv4">ntpdc ipv4</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#ntpdc-Invocation">ntpdc Invocation</a>
|
||||
<br>
|
||||
</p><hr>
|
||||
<a name="ntpdc-ipv6"></a>
|
||||
<div class="header">
|
||||
<p>
|
||||
Next: <a href="#ntpdc-command" accesskey="n" rel="next">ntpdc command</a>, Previous: <a href="#ntpdc-ipv4" accesskey="p" rel="prev">ntpdc ipv4</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> </p>
|
||||
</div>
|
||||
<a name="ipv6-option-_0028_002d6_0029"></a>
|
||||
<h4 class="subsection">1.1.3 ipv6 option (-6)</h4>
|
||||
<a name="index-ntpdc_002dipv6"></a>
|
||||
|
||||
<h4 class="subsection">ipv6 option (-6)</h4>
|
||||
|
||||
<p><a name="index-ntpdc_002dipv6-5"></a>
|
||||
This is the “force ipv6 dns name resolution” option.
|
||||
|
||||
<p class="noindent">This option has some usage constraints. It:
|
||||
<ul>
|
||||
<p>This is the “force ipv6 dns name resolution” option.
|
||||
</p>
|
||||
<p>This option has some usage constraints. It:
|
||||
</p><ul>
|
||||
<li> must not appear in combination with any of the following options:
|
||||
ipv4.
|
||||
</ul>
|
||||
</li></ul>
|
||||
|
||||
<p>Force DNS resolution of following host names on the command line
|
||||
to the IPv6 namespace.
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<a name="ntpdc-command"></a>Next: <a rel="next" accesskey="n" href="#ntpdc-interactive">ntpdc interactive</a>,
|
||||
Previous: <a rel="previous" accesskey="p" href="#ntpdc-ipv6">ntpdc ipv6</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#ntpdc-Invocation">ntpdc Invocation</a>
|
||||
<br>
|
||||
</p><hr>
|
||||
<a name="ntpdc-command"></a>
|
||||
<div class="header">
|
||||
<p>
|
||||
Next: <a href="#ntpdc-interactive" accesskey="n" rel="next">ntpdc interactive</a>, Previous: <a href="#ntpdc-ipv6" accesskey="p" rel="prev">ntpdc ipv6</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> </p>
|
||||
</div>
|
||||
<a name="command-option-_0028_002dc_0029"></a>
|
||||
<h4 class="subsection">1.1.4 command option (-c)</h4>
|
||||
<a name="index-ntpdc_002dcommand"></a>
|
||||
|
||||
<h4 class="subsection">command option (-c)</h4>
|
||||
|
||||
<p><a name="index-ntpdc_002dcommand-6"></a>
|
||||
This is the “run a command and exit” option.
|
||||
This option takes a string argument <span class="file">cmd</span>.
|
||||
|
||||
<p class="noindent">This option has some usage constraints. It:
|
||||
<ul>
|
||||
<p>This is the “run a command and exit” option.
|
||||
This option takes a string argument <samp>cmd</samp>.
|
||||
</p>
|
||||
<p>This option has some usage constraints. It:
|
||||
</p><ul>
|
||||
<li> may appear an unlimited number of times.
|
||||
</ul>
|
||||
</li></ul>
|
||||
|
||||
<p>The following argument is interpreted as an interactive format command
|
||||
and is added to the list of commands to be executed on the specified
|
||||
host(s).
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<a name="ntpdc-interactive"></a>Next: <a rel="next" accesskey="n" href="#ntpdc-listpeers">ntpdc listpeers</a>,
|
||||
Previous: <a rel="previous" accesskey="p" href="#ntpdc-command">ntpdc command</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#ntpdc-Invocation">ntpdc Invocation</a>
|
||||
<br>
|
||||
</p><hr>
|
||||
<a name="ntpdc-interactive"></a>
|
||||
<div class="header">
|
||||
<p>
|
||||
Next: <a href="#ntpdc-listpeers" accesskey="n" rel="next">ntpdc listpeers</a>, Previous: <a href="#ntpdc-command" accesskey="p" rel="prev">ntpdc command</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> </p>
|
||||
</div>
|
||||
<a name="interactive-option-_0028_002di_0029"></a>
|
||||
<h4 class="subsection">1.1.5 interactive option (-i)</h4>
|
||||
<a name="index-ntpdc_002dinteractive"></a>
|
||||
|
||||
<h4 class="subsection">interactive option (-i)</h4>
|
||||
|
||||
<p><a name="index-ntpdc_002dinteractive-7"></a>
|
||||
This is the “force ntpq to operate in interactive mode” option.
|
||||
|
||||
<p class="noindent">This option has some usage constraints. It:
|
||||
<ul>
|
||||
<p>This is the “force ntpq to operate in interactive mode” option.
|
||||
</p>
|
||||
<p>This option has some usage constraints. It:
|
||||
</p><ul>
|
||||
<li> must not appear in combination with any of the following options:
|
||||
command, listpeers, peers, showpeers.
|
||||
</ul>
|
||||
</li></ul>
|
||||
|
||||
<p>Force ntpq to operate in interactive mode. Prompts will be written
|
||||
to the standard output and commands read from the standard input.
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<a name="ntpdc-listpeers"></a>Next: <a rel="next" accesskey="n" href="#ntpdc-numeric">ntpdc numeric</a>,
|
||||
Previous: <a rel="previous" accesskey="p" href="#ntpdc-interactive">ntpdc interactive</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#ntpdc-Invocation">ntpdc Invocation</a>
|
||||
<br>
|
||||
</p><hr>
|
||||
<a name="ntpdc-listpeers"></a>
|
||||
<div class="header">
|
||||
<p>
|
||||
Next: <a href="#ntpdc-numeric" accesskey="n" rel="next">ntpdc numeric</a>, Previous: <a href="#ntpdc-interactive" accesskey="p" rel="prev">ntpdc interactive</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> </p>
|
||||
</div>
|
||||
<a name="listpeers-option-_0028_002dl_0029"></a>
|
||||
<h4 class="subsection">1.1.6 listpeers option (-l)</h4>
|
||||
<a name="index-ntpdc_002dlistpeers"></a>
|
||||
|
||||
<h4 class="subsection">listpeers option (-l)</h4>
|
||||
|
||||
<p><a name="index-ntpdc_002dlistpeers-8"></a>
|
||||
This is the “print a list of the peers” option.
|
||||
|
||||
<p class="noindent">This option has some usage constraints. It:
|
||||
<ul>
|
||||
<p>This is the “print a list of the peers” option.
|
||||
</p>
|
||||
<p>This option has some usage constraints. It:
|
||||
</p><ul>
|
||||
<li> must not appear in combination with any of the following options:
|
||||
command.
|
||||
</ul>
|
||||
</li></ul>
|
||||
|
||||
<p>Print a list of the peers known to the server as well as a summary of
|
||||
their state. This is equivalent to the 'listpeers' interactive command.
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<a name="ntpdc-numeric"></a>Next: <a rel="next" accesskey="n" href="#ntpdc-peers">ntpdc peers</a>,
|
||||
Previous: <a rel="previous" accesskey="p" href="#ntpdc-listpeers">ntpdc listpeers</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#ntpdc-Invocation">ntpdc Invocation</a>
|
||||
<br>
|
||||
their state. This is equivalent to the ’listpeers’ interactive command.
|
||||
</p><hr>
|
||||
<a name="ntpdc-numeric"></a>
|
||||
<div class="header">
|
||||
<p>
|
||||
Next: <a href="#ntpdc-peers" accesskey="n" rel="next">ntpdc peers</a>, Previous: <a href="#ntpdc-listpeers" accesskey="p" rel="prev">ntpdc listpeers</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> </p>
|
||||
</div>
|
||||
<a name="numeric-option-_0028_002dn_0029"></a>
|
||||
<h4 class="subsection">1.1.7 numeric option (-n)</h4>
|
||||
<a name="index-ntpdc_002dnumeric"></a>
|
||||
|
||||
<h4 class="subsection">numeric option (-n)</h4>
|
||||
|
||||
<p><a name="index-ntpdc_002dnumeric-9"></a>
|
||||
This is the “numeric host addresses” option.
|
||||
<p>This is the “numeric host addresses” option.
|
||||
Output all host addresses in dotted-quad numeric format rather than
|
||||
converting to the canonical host names.
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<a name="ntpdc-peers"></a>Next: <a rel="next" accesskey="n" href="#ntpdc-showpeers">ntpdc showpeers</a>,
|
||||
Previous: <a rel="previous" accesskey="p" href="#ntpdc-numeric">ntpdc numeric</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#ntpdc-Invocation">ntpdc Invocation</a>
|
||||
<br>
|
||||
</p><hr>
|
||||
<a name="ntpdc-peers"></a>
|
||||
<div class="header">
|
||||
<p>
|
||||
Next: <a href="#ntpdc-showpeers" accesskey="n" rel="next">ntpdc showpeers</a>, Previous: <a href="#ntpdc-numeric" accesskey="p" rel="prev">ntpdc numeric</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> </p>
|
||||
</div>
|
||||
<a name="peers-option-_0028_002dp_0029"></a>
|
||||
<h4 class="subsection">1.1.8 peers option (-p)</h4>
|
||||
<a name="index-ntpdc_002dpeers"></a>
|
||||
|
||||
<h4 class="subsection">peers option (-p)</h4>
|
||||
|
||||
<p><a name="index-ntpdc_002dpeers-10"></a>
|
||||
This is the “print a list of the peers” option.
|
||||
|
||||
<p class="noindent">This option has some usage constraints. It:
|
||||
<ul>
|
||||
<p>This is the “print a list of the peers” option.
|
||||
</p>
|
||||
<p>This option has some usage constraints. It:
|
||||
</p><ul>
|
||||
<li> must not appear in combination with any of the following options:
|
||||
command.
|
||||
</ul>
|
||||
</li></ul>
|
||||
|
||||
<p>Print a list of the peers known to the server as well as a summary
|
||||
of their state. This is equivalent to the 'peers' interactive command.
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<a name="ntpdc-showpeers"></a>Next: <a rel="next" accesskey="n" href="#ntpdc-config">ntpdc config</a>,
|
||||
Previous: <a rel="previous" accesskey="p" href="#ntpdc-peers">ntpdc peers</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#ntpdc-Invocation">ntpdc Invocation</a>
|
||||
<br>
|
||||
of their state. This is equivalent to the ’peers’ interactive command.
|
||||
</p><hr>
|
||||
<a name="ntpdc-showpeers"></a>
|
||||
<div class="header">
|
||||
<p>
|
||||
Next: <a href="#ntpdc-config" accesskey="n" rel="next">ntpdc config</a>, Previous: <a href="#ntpdc-peers" accesskey="p" rel="prev">ntpdc peers</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> </p>
|
||||
</div>
|
||||
<a name="showpeers-option-_0028_002ds_0029"></a>
|
||||
<h4 class="subsection">1.1.9 showpeers option (-s)</h4>
|
||||
<a name="index-ntpdc_002dshowpeers"></a>
|
||||
|
||||
<h4 class="subsection">showpeers option (-s)</h4>
|
||||
|
||||
<p><a name="index-ntpdc_002dshowpeers-11"></a>
|
||||
This is the “show a list of the peers” option.
|
||||
|
||||
<p class="noindent">This option has some usage constraints. It:
|
||||
<ul>
|
||||
<p>This is the “show a list of the peers” option.
|
||||
</p>
|
||||
<p>This option has some usage constraints. It:
|
||||
</p><ul>
|
||||
<li> must not appear in combination with any of the following options:
|
||||
command.
|
||||
</ul>
|
||||
</li></ul>
|
||||
|
||||
<p>Print a list of the peers known to the server as well as a summary
|
||||
of their state. This is equivalent to the 'dmpeers' interactive command.
|
||||
of their state. This is equivalent to the ’dmpeers’ interactive command.
|
||||
</p>
|
||||
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<a name="ntpdc-config"></a>Next: <a rel="next" accesskey="n" href="#ntpdc-exit-status">ntpdc exit status</a>,
|
||||
Previous: <a rel="previous" accesskey="p" href="#ntpdc-showpeers">ntpdc showpeers</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#ntpdc-Invocation">ntpdc Invocation</a>
|
||||
<br>
|
||||
<hr>
|
||||
<a name="ntpdc-config"></a>
|
||||
<div class="header">
|
||||
<p>
|
||||
Next: <a href="#ntpdc-exit-status" accesskey="n" rel="next">ntpdc exit status</a>, Previous: <a href="#ntpdc-showpeers" accesskey="p" rel="prev">ntpdc showpeers</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> </p>
|
||||
</div>
|
||||
|
||||
<h4 class="subsection">presetting/configuring ntpdc</h4>
|
||||
<a name="presetting_002fconfiguring-ntpdc"></a>
|
||||
<h4 class="subsection">1.1.10 presetting/configuring ntpdc</h4>
|
||||
|
||||
<p>Any option that is not marked as <i>not presettable</i> may be preset by
|
||||
loading values from configuration ("rc" or "ini") files, and values from environment variables named <code>NTPDC</code> and <code>NTPDC_<OPTION_NAME></code>. <code><OPTION_NAME></code> must be one of
|
||||
loading values from configuration ("rc" or "ini") files, and values from environment variables named <code>NTPDC</code> and <code>NTPDC_<OPTION_NAME></code>. <code><OPTION_NAME></code> must be one of
|
||||
the options listed above in upper case and segmented with underscores.
|
||||
The <code>NTPDC</code> variable will be tokenized and parsed like
|
||||
the command line. The remaining variables are tested for existence and their
|
||||
values are treated like option arguments.
|
||||
</p>
|
||||
|
||||
<p class="noindent"><code>libopts</code> will search in 2 places for configuration files:
|
||||
<ul>
|
||||
<p><code>libopts</code> will search in 2 places for configuration files:
|
||||
</p><ul>
|
||||
<li> $HOME
|
||||
<li>$PWD
|
||||
</ul>
|
||||
The environment variables <code>HOME</code>, and <code>PWD</code>
|
||||
are expanded and replaced when <span class="file">ntpdc</span> runs.
|
||||
</li><li> $PWD
|
||||
</li></ul>
|
||||
<p>The environment variables <code>HOME</code>, and <code>PWD</code>
|
||||
are expanded and replaced when <samp>ntpdc</samp> runs.
|
||||
For any of these that are plain files, they are simply processed.
|
||||
For any that are directories, then a file named <span class="file">.ntprc</span> is searched for
|
||||
For any that are directories, then a file named <samp>.ntprc</samp> is searched for
|
||||
within that directory and processed.
|
||||
|
||||
</p>
|
||||
<p>Configuration files may be in a wide variety of formats.
|
||||
The basic format is an option name followed by a value (argument) on the
|
||||
same line. Values may be separated from the option name with a colon,
|
||||
equal sign or simply white space. Values may be continued across multiple
|
||||
lines by escaping the newline with a backslash.
|
||||
|
||||
</p>
|
||||
<p>Multiple programs may also share the same initialization file.
|
||||
Common options are collected at the top, followed by program specific
|
||||
segments. The segments are separated by lines like:
|
||||
</p><div class="example">
|
||||
<pre class="example">[NTPDC]
|
||||
</pre>
|
||||
<p class="noindent">or by
|
||||
</pre></div>
|
||||
<p>or by
|
||||
</p><div class="example">
|
||||
<pre class="example"><?program ntpdc>
|
||||
</pre>
|
||||
<p class="noindent">Do not mix these styles within one configuration file.
|
||||
|
||||
</pre></div>
|
||||
<p>Do not mix these styles within one configuration file.
|
||||
</p>
|
||||
<p>Compound values and carefully constructed string values may also be
|
||||
specified using XML syntax:
|
||||
</p><div class="example">
|
||||
<pre class="example"><option-name>
|
||||
<sub-opt>...&lt;...&gt;...</sub-opt>
|
||||
</option-name>
|
||||
</pre>
|
||||
<p class="noindent">yielding an <code>option-name.sub-opt</code> string value of
|
||||
<pre class="example"> "...<...>..."
|
||||
</pre>
|
||||
</pre></div>
|
||||
<p>yielding an <code>option-name.sub-opt</code> string value of
|
||||
</p><div class="example">
|
||||
<pre class="example">"...<...>..."
|
||||
</pre></div>
|
||||
<p><code>AutoOpts</code> does not track suboptions. You simply note that it is a
|
||||
hierarchicly valued option. <code>AutoOpts</code> does provide a means for searching
|
||||
the associated name/value pair list (see: optionFindValue).
|
||||
|
||||
</p>
|
||||
<p>The command line options relating to configuration and/or usage help are:
|
||||
|
||||
<h5 class="subsubheading">version (-)</h5>
|
||||
</p>
|
||||
<a name="version-_0028_002d_0029"></a>
|
||||
<h4 class="subsubheading">version (-)</h4>
|
||||
|
||||
<p>Print the program version to standard out, optionally with licensing
|
||||
information, then exit 0. The optional argument specifies how much licensing
|
||||
detail to provide. The default is to print just the version. The licensing infomation may be selected with an option argument.
|
||||
Only the first letter of the argument is examined:
|
||||
|
||||
<dl>
|
||||
<dt><span class="samp">version</span><dd>Only print the version. This is the default.
|
||||
<br><dt><span class="samp">copyright</span><dd>Name the copyright usage licensing terms.
|
||||
<br><dt><span class="samp">verbose</span><dd>Print the full copyright usage licensing terms.
|
||||
</p>
|
||||
<dl compact="compact">
|
||||
<dt>‘<samp>version</samp>’</dt>
|
||||
<dd><p>Only print the version. This is the default.
|
||||
</p></dd>
|
||||
<dt>‘<samp>copyright</samp>’</dt>
|
||||
<dd><p>Name the copyright usage licensing terms.
|
||||
</p></dd>
|
||||
<dt>‘<samp>verbose</samp>’</dt>
|
||||
<dd><p>Print the full copyright usage licensing terms.
|
||||
</p></dd>
|
||||
</dl>
|
||||
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<a name="ntpdc-exit-status"></a>Next: <a rel="next" accesskey="n" href="#ntpdc-Usage">ntpdc Usage</a>,
|
||||
Previous: <a rel="previous" accesskey="p" href="#ntpdc-config">ntpdc config</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#ntpdc-Invocation">ntpdc Invocation</a>
|
||||
<br>
|
||||
<hr>
|
||||
<a name="ntpdc-exit-status"></a>
|
||||
<div class="header">
|
||||
<p>
|
||||
Next: <a href="#ntpdc-Usage" accesskey="n" rel="next">ntpdc Usage</a>, Previous: <a href="#ntpdc-config" accesskey="p" rel="prev">ntpdc config</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> </p>
|
||||
</div>
|
||||
|
||||
<h4 class="subsection">ntpdc exit status</h4>
|
||||
<a name="ntpdc-exit-status-1"></a>
|
||||
<h4 class="subsection">1.1.11 ntpdc exit status</h4>
|
||||
|
||||
<p>One of the following exit values will be returned:
|
||||
<dl>
|
||||
<dt><span class="samp">0 (EXIT_SUCCESS)</span><dd>Successful program execution.
|
||||
<br><dt><span class="samp">1 (EXIT_FAILURE)</span><dd>The operation failed or the command syntax was not valid.
|
||||
<br><dt><span class="samp">66 (EX_NOINPUT)</span><dd>A specified configuration file could not be loaded.
|
||||
<br><dt><span class="samp">70 (EX_SOFTWARE)</span><dd>libopts had an internal operational error. Please report
|
||||
</p><dl compact="compact">
|
||||
<dt>‘<samp>0 (EXIT_SUCCESS)</samp>’</dt>
|
||||
<dd><p>Successful program execution.
|
||||
</p></dd>
|
||||
<dt>‘<samp>1 (EXIT_FAILURE)</samp>’</dt>
|
||||
<dd><p>The operation failed or the command syntax was not valid.
|
||||
</p></dd>
|
||||
<dt>‘<samp>66 (EX_NOINPUT)</samp>’</dt>
|
||||
<dd><p>A specified configuration file could not be loaded.
|
||||
</p></dd>
|
||||
<dt>‘<samp>70 (EX_SOFTWARE)</samp>’</dt>
|
||||
<dd><p>libopts had an internal operational error. Please report
|
||||
it to autogen-users@lists.sourceforge.net. Thank you.
|
||||
</p></dd>
|
||||
</dl>
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<a name="ntpdc-Usage"></a>Next: <a rel="next" accesskey="n" href="#ntpdc-See-Also">ntpdc See Also</a>,
|
||||
Previous: <a rel="previous" accesskey="p" href="#ntpdc-exit-status">ntpdc exit status</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#ntpdc-Invocation">ntpdc Invocation</a>
|
||||
<br>
|
||||
<hr>
|
||||
<a name="ntpdc-Usage"></a>
|
||||
<div class="header">
|
||||
<p>
|
||||
Next: <a href="#ntpdc-See-Also" accesskey="n" rel="next">ntpdc See Also</a>, Previous: <a href="#ntpdc-exit-status" accesskey="p" rel="prev">ntpdc exit status</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> </p>
|
||||
</div>
|
||||
|
||||
<h4 class="subsection">ntpdc Usage</h4>
|
||||
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<a name="ntpdc-See-Also"></a>Next: <a rel="next" accesskey="n" href="#ntpdc-Authors">ntpdc Authors</a>,
|
||||
Previous: <a rel="previous" accesskey="p" href="#ntpdc-Usage">ntpdc Usage</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#ntpdc-Invocation">ntpdc Invocation</a>
|
||||
<br>
|
||||
<a name="ntpdc-Usage-1"></a>
|
||||
<h4 class="subsection">1.1.12 ntpdc Usage</h4>
|
||||
<hr>
|
||||
<a name="ntpdc-See-Also"></a>
|
||||
<div class="header">
|
||||
<p>
|
||||
Next: <a href="#ntpdc-Authors" accesskey="n" rel="next">ntpdc Authors</a>, Previous: <a href="#ntpdc-Usage" accesskey="p" rel="prev">ntpdc Usage</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> </p>
|
||||
</div>
|
||||
|
||||
<h4 class="subsection">ntpdc See Also</h4>
|
||||
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<a name="ntpdc-Authors"></a>Next: <a rel="next" accesskey="n" href="#ntpdc-Bugs">ntpdc Bugs</a>,
|
||||
Previous: <a rel="previous" accesskey="p" href="#ntpdc-See-Also">ntpdc See Also</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#ntpdc-Invocation">ntpdc Invocation</a>
|
||||
<br>
|
||||
<a name="ntpdc-See-Also-1"></a>
|
||||
<h4 class="subsection">1.1.13 ntpdc See Also</h4>
|
||||
<hr>
|
||||
<a name="ntpdc-Authors"></a>
|
||||
<div class="header">
|
||||
<p>
|
||||
Next: <a href="#ntpdc-Bugs" accesskey="n" rel="next">ntpdc Bugs</a>, Previous: <a href="#ntpdc-See-Also" accesskey="p" rel="prev">ntpdc See Also</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> </p>
|
||||
</div>
|
||||
|
||||
<h4 class="subsection">ntpdc Authors</h4>
|
||||
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<a name="ntpdc-Bugs"></a>Previous: <a rel="previous" accesskey="p" href="#ntpdc-Authors">ntpdc Authors</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#ntpdc-Invocation">ntpdc Invocation</a>
|
||||
<br>
|
||||
<a name="ntpdc-Authors-1"></a>
|
||||
<h4 class="subsection">1.1.14 ntpdc Authors</h4>
|
||||
<hr>
|
||||
<a name="ntpdc-Bugs"></a>
|
||||
<div class="header">
|
||||
<p>
|
||||
Previous: <a href="#ntpdc-Authors" accesskey="p" rel="prev">ntpdc Authors</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> </p>
|
||||
</div>
|
||||
<a name="ntpdc-Bugs-1"></a>
|
||||
<h4 class="subsection">1.1.15 ntpdc Bugs</h4>
|
||||
|
||||
<h4 class="subsection">ntpdc Bugs</h4>
|
||||
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<hr>
|
||||
<a name="Usage"></a>
|
||||
<br>
|
||||
<div class="header">
|
||||
<p>
|
||||
Previous: <a href="#ntpdc-Invocation" accesskey="p" rel="prev">ntpdc Invocation</a>, Up: <a href="#ntpdc-Description" accesskey="u" rel="up">ntpdc Description</a> </p>
|
||||
</div>
|
||||
|
||||
<!-- node-name, next, previous, up -->
|
||||
<h3 class="section">Usage</h3>
|
||||
<a name="Usage-1"></a>
|
||||
<h3 class="section">1.2 Usage</h3>
|
||||
|
||||
<p>The simplest use of this program is as an unprivileged command to
|
||||
check the current time, offset, and error in the local clock.
|
||||
For example:
|
||||
|
||||
</p>
|
||||
<div class="example">
|
||||
<pre class="example">ntpdc ntpserver.somewhere
|
||||
</pre>
|
||||
</pre></div>
|
||||
|
||||
<p>With suitable privilege, it can be run as a command or in a
|
||||
<code>cron</code> job to reset the local clock from a reliable server, like
|
||||
the <code>ntpdate</code> and <code>rdate</code> commands.
|
||||
For example:
|
||||
|
||||
</p>
|
||||
<div class="example">
|
||||
<pre class="example">ntpdc -a ntpserver.somewhere
|
||||
</pre>
|
||||
</body></html>
|
||||
</pre></div>
|
||||
<hr>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
@ -10,11 +10,11 @@
|
||||
.ds B-Font B
|
||||
.ds I-Font I
|
||||
.ds R-Font R
|
||||
.TH ntpdc @NTPDC_MS@ "14 Aug 2018" "4.2.8p12" "User Commands"
|
||||
.TH ntpdc @NTPDC_MS@ "20 Feb 2019" "4.2.8p13" "User Commands"
|
||||
.\"
|
||||
.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-uwaqJD/ag-GwaiID)
|
||||
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
|
||||
.\"
|
||||
.\" It has been AutoGen-ed August 14, 2018 at 08:29:36 AM by AutoGen 5.18.5
|
||||
.\" It has been AutoGen-ed February 20, 2019 at 09:56:53 AM by AutoGen 5.18.5
|
||||
.\" From the definitions ntpdc-opts.def
|
||||
.\" and the template file agman-cmd.tpl
|
||||
.SH NAME
|
||||
|
@ -1,9 +1,9 @@
|
||||
.Dd August 14 2018
|
||||
.Dd February 20 2019
|
||||
.Dt NTPDC @NTPDC_MS@ User Commands
|
||||
.Os
|
||||
.\" EDIT THIS FILE WITH CAUTION (ntpdc-opts.mdoc)
|
||||
.\"
|
||||
.\" It has been AutoGen-ed August 14, 2018 at 08:29:43 AM by AutoGen 5.18.5
|
||||
.\" It has been AutoGen-ed February 20, 2019 at 09:56:50 AM by AutoGen 5.18.5
|
||||
.\" From the definitions ntpdc-opts.def
|
||||
.\" and the template file agmdoc-cmd.tpl
|
||||
.Sh NAME
|
||||
|
@ -2713,8 +2713,17 @@ clockstat(
|
||||
lfptoa(&ts, 6));
|
||||
(void) fprintf(fp, "stratum: %ld\n",
|
||||
(u_long)ntohl(cl->fudgeval1));
|
||||
/* [Bug3527] Backward Incompatible: cl->fudgeval2 is
|
||||
* a string, instantiated via memcpy() so there is no
|
||||
* endian issue to correct.
|
||||
*/
|
||||
#ifdef DISABLE_BUG3527_FIX
|
||||
(void) fprintf(fp, "reference ID: %s\n",
|
||||
refid_string(ntohl(cl->fudgeval2), 0));
|
||||
#else
|
||||
(void) fprintf(fp, "reference ID: %s\n",
|
||||
refid_string(cl->fudgeval2, 0));
|
||||
#endif
|
||||
(void) fprintf(fp, "fudge flags: 0x%x\n",
|
||||
cl->flags);
|
||||
|
||||
@ -2920,7 +2929,7 @@ kerninfo(
|
||||
size_t itemsize;
|
||||
int res;
|
||||
unsigned status;
|
||||
double tscale = 1e-6;
|
||||
double tscale_usec = 1e-6, tscale_unano = 1e-6;
|
||||
|
||||
again:
|
||||
res = doquery(impl_ver, REQ_GET_KERNEL, 0, 0, 0, (char *)NULL,
|
||||
@ -2945,16 +2954,16 @@ kerninfo(
|
||||
*/
|
||||
#ifdef STA_NANO
|
||||
if (status & STA_NANO)
|
||||
tscale = 1e-9;
|
||||
tscale_unano = 1e-9;
|
||||
#endif
|
||||
(void)fprintf(fp, "pll offset: %g s\n",
|
||||
(int32)ntohl(ik->offset) * tscale);
|
||||
(int32)ntohl(ik->offset) * tscale_unano);
|
||||
(void)fprintf(fp, "pll frequency: %s ppm\n",
|
||||
fptoa((s_fp)ntohl(ik->freq), 3));
|
||||
(void)fprintf(fp, "maximum error: %g s\n",
|
||||
(u_long)ntohl(ik->maxerror) * tscale);
|
||||
(u_long)ntohl(ik->maxerror) * tscale_usec);
|
||||
(void)fprintf(fp, "estimated error: %g s\n",
|
||||
(u_long)ntohl(ik->esterror) * tscale);
|
||||
(u_long)ntohl(ik->esterror) * tscale_usec);
|
||||
(void)fprintf(fp, "status: %04x ", status);
|
||||
#ifdef STA_PLL
|
||||
if (status & STA_PLL) (void)fprintf(fp, " pll");
|
||||
@ -3008,7 +3017,7 @@ kerninfo(
|
||||
(void)fprintf(fp, "pll time constant: %ld\n",
|
||||
(u_long)ntohl(ik->constant));
|
||||
(void)fprintf(fp, "precision: %g s\n",
|
||||
(u_long)ntohl(ik->precision) * tscale);
|
||||
(u_long)ntohl(ik->precision) * tscale_usec);
|
||||
(void)fprintf(fp, "frequency tolerance: %s ppm\n",
|
||||
fptoa((s_fp)ntohl(ik->tolerance), 0));
|
||||
|
||||
@ -3027,7 +3036,7 @@ kerninfo(
|
||||
(void)fprintf(fp, "pps stability: %s ppm\n",
|
||||
fptoa((s_fp)ntohl(ik->stabil), 3));
|
||||
(void)fprintf(fp, "pps jitter: %g s\n",
|
||||
(u_long)ntohl(ik->jitter) * tscale);
|
||||
(u_long)ntohl(ik->jitter) * tscale_unano);
|
||||
(void)fprintf(fp, "calibration interval: %d s\n",
|
||||
1 << ntohs(ik->shift));
|
||||
(void)fprintf(fp, "calibration cycles: %ld\n",
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -6,7 +6,7 @@
|
||||
#
|
||||
# EDIT THIS FILE WITH CAUTION (invoke-ntpq.texi)
|
||||
#
|
||||
# It has been AutoGen-ed August 14, 2018 at 08:30:02 AM by AutoGen 5.18.5
|
||||
# It has been AutoGen-ed February 20, 2019 at 09:57:01 AM by AutoGen 5.18.5
|
||||
# From the definitions ntpq-opts.def
|
||||
# and the template file agtexi-cmd.tpl
|
||||
@end ignore
|
||||
@ -944,7 +944,7 @@ with a status code of 0.
|
||||
|
||||
@exampleindent 0
|
||||
@example
|
||||
ntpq - standard NTP query program - Ver. 4.2.8p12
|
||||
ntpq - standard NTP query program - Ver. 4.2.8p13
|
||||
Usage: ntpq [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [ host ...]
|
||||
Flg Arg Option-Name Description
|
||||
-4 no ipv4 Force IPv4 name resolution
|
||||
|
@ -1,11 +1,11 @@
|
||||
/*
|
||||
* EDIT THIS FILE WITH CAUTION (ntpq-opts.c)
|
||||
*
|
||||
* It has been AutoGen-ed August 14, 2018 at 08:29:47 AM by AutoGen 5.18.5
|
||||
* It has been AutoGen-ed February 20, 2019 at 09:56:54 AM by AutoGen 5.18.5
|
||||
* From the definitions ntpq-opts.def
|
||||
* and the template file options
|
||||
*
|
||||
* Generated from AutoOpts 41:0:16 templates.
|
||||
* Generated from AutoOpts 41:1:16 templates.
|
||||
*
|
||||
* AutoOpts is a copyrighted work. This source file is not encumbered
|
||||
* by AutoOpts licensing, but is provided under the licensing terms chosen
|
||||
@ -69,7 +69,7 @@ extern FILE * option_usage_fp;
|
||||
* static const strings for ntpq options
|
||||
*/
|
||||
static char const ntpq_opt_strs[1977] =
|
||||
/* 0 */ "ntpq 4.2.8p12\n"
|
||||
/* 0 */ "ntpq 4.2.8p13\n"
|
||||
"Copyright (C) 1992-2017 The University of Delaware and Network Time Foundation, all rights reserved.\n"
|
||||
"This is free software. It is licensed for use, modification and\n"
|
||||
"redistribution under the terms of the NTP License, copies of which\n"
|
||||
@ -132,13 +132,13 @@ static char const ntpq_opt_strs[1977] =
|
||||
/* 1768 */ "no-load-opts\0"
|
||||
/* 1781 */ "no\0"
|
||||
/* 1784 */ "NTPQ\0"
|
||||
/* 1789 */ "ntpq - standard NTP query program - Ver. 4.2.8p12\n"
|
||||
/* 1789 */ "ntpq - standard NTP query program - Ver. 4.2.8p13\n"
|
||||
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n\0"
|
||||
/* 1909 */ "$HOME\0"
|
||||
/* 1915 */ ".\0"
|
||||
/* 1917 */ ".ntprc\0"
|
||||
/* 1924 */ "http://bugs.ntp.org, bugs@ntp.org\0"
|
||||
/* 1958 */ "ntpq 4.2.8p12\0"
|
||||
/* 1958 */ "ntpq 4.2.8p13\0"
|
||||
/* 1972 */ "hash";
|
||||
|
||||
/**
|
||||
@ -841,7 +841,7 @@ static void bogus_function(void) {
|
||||
translate option names.
|
||||
*/
|
||||
/* referenced via ntpqOptions.pzCopyright */
|
||||
puts(_("ntpq 4.2.8p12\n\
|
||||
puts(_("ntpq 4.2.8p13\n\
|
||||
Copyright (C) 1992-2017 The University of Delaware and Network Time Foundation, all rights reserved.\n\
|
||||
This is free software. It is licensed for use, modification and\n\
|
||||
redistribution under the terms of the NTP License, copies of which\n\
|
||||
@ -910,11 +910,11 @@ implied warranty.\n"));
|
||||
puts(_("load options from a config file"));
|
||||
|
||||
/* referenced via ntpqOptions.pzUsageTitle */
|
||||
puts(_("ntpq - standard NTP query program - Ver. 4.2.8p12\n\
|
||||
puts(_("ntpq - standard NTP query program - Ver. 4.2.8p13\n\
|
||||
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n"));
|
||||
|
||||
/* referenced via ntpqOptions.pzFullVersion */
|
||||
puts(_("ntpq 4.2.8p12"));
|
||||
puts(_("ntpq 4.2.8p13"));
|
||||
|
||||
/* referenced via ntpqOptions.pzFullUsage */
|
||||
puts(_("<<<NOT-FOUND>>>"));
|
||||
|
@ -1,11 +1,11 @@
|
||||
/*
|
||||
* EDIT THIS FILE WITH CAUTION (ntpq-opts.h)
|
||||
*
|
||||
* It has been AutoGen-ed August 14, 2018 at 08:29:47 AM by AutoGen 5.18.5
|
||||
* It has been AutoGen-ed February 20, 2019 at 09:56:54 AM by AutoGen 5.18.5
|
||||
* From the definitions ntpq-opts.def
|
||||
* and the template file options
|
||||
*
|
||||
* Generated from AutoOpts 41:0:16 templates.
|
||||
* Generated from AutoOpts 41:1:16 templates.
|
||||
*
|
||||
* AutoOpts is a copyrighted work. This header file is not encumbered
|
||||
* by AutoOpts licensing, but is provided under the licensing terms chosen
|
||||
@ -53,7 +53,7 @@
|
||||
* tolerable version is at least as old as what was current when the header
|
||||
* template was released.
|
||||
*/
|
||||
#define AO_TEMPLATE_VERSION 167936
|
||||
#define AO_TEMPLATE_VERSION 167937
|
||||
#if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
|
||||
|| (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
|
||||
# error option template version mismatches autoopts/options.h header
|
||||
@ -84,9 +84,9 @@ typedef enum {
|
||||
/** count of all options for ntpq */
|
||||
#define OPTION_CT 16
|
||||
/** ntpq version */
|
||||
#define NTPQ_VERSION "4.2.8p12"
|
||||
#define NTPQ_VERSION "4.2.8p13"
|
||||
/** Full ntpq version text */
|
||||
#define NTPQ_FULL_VERSION "ntpq 4.2.8p12"
|
||||
#define NTPQ_FULL_VERSION "ntpq 4.2.8p13"
|
||||
|
||||
/**
|
||||
* Interface defines for all options. Replace "n" with the UPPER_CASED
|
||||
|
@ -10,11 +10,11 @@
|
||||
.ds B-Font B
|
||||
.ds I-Font I
|
||||
.ds R-Font R
|
||||
.TH ntpq 1ntpqman "14 Aug 2018" "4.2.8p12" "User Commands"
|
||||
.TH ntpq 1ntpqman "20 Feb 2019" "4.2.8p13" "User Commands"
|
||||
.\"
|
||||
.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-_XaWRE/ag-lYaOQE)
|
||||
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
|
||||
.\"
|
||||
.\" It has been AutoGen-ed August 14, 2018 at 08:29:58 AM by AutoGen 5.18.5
|
||||
.\" It has been AutoGen-ed February 20, 2019 at 09:57:02 AM by AutoGen 5.18.5
|
||||
.\" From the definitions ntpq-opts.def
|
||||
.\" and the template file agman-cmd.tpl
|
||||
.SH NAME
|
||||
|
@ -1,9 +1,9 @@
|
||||
.Dd August 14 2018
|
||||
.Dd February 20 2019
|
||||
.Dt NTPQ 1ntpqmdoc User Commands
|
||||
.Os
|
||||
.\" EDIT THIS FILE WITH CAUTION (ntpq-opts.mdoc)
|
||||
.\"
|
||||
.\" It has been AutoGen-ed August 14, 2018 at 08:30:05 AM by AutoGen 5.18.5
|
||||
.\" It has been AutoGen-ed February 20, 2019 at 09:56:59 AM by AutoGen 5.18.5
|
||||
.\" From the definitions ntpq-opts.def
|
||||
.\" and the template file agmdoc-cmd.tpl
|
||||
.Sh NAME
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -10,11 +10,11 @@
|
||||
.ds B-Font B
|
||||
.ds I-Font I
|
||||
.ds R-Font R
|
||||
.TH ntpq @NTPQ_MS@ "14 Aug 2018" "4.2.8p12" "User Commands"
|
||||
.TH ntpq @NTPQ_MS@ "20 Feb 2019" "4.2.8p13" "User Commands"
|
||||
.\"
|
||||
.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-_XaWRE/ag-lYaOQE)
|
||||
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
|
||||
.\"
|
||||
.\" It has been AutoGen-ed August 14, 2018 at 08:29:58 AM by AutoGen 5.18.5
|
||||
.\" It has been AutoGen-ed February 20, 2019 at 09:57:02 AM by AutoGen 5.18.5
|
||||
.\" From the definitions ntpq-opts.def
|
||||
.\" and the template file agman-cmd.tpl
|
||||
.SH NAME
|
||||
|
@ -1,9 +1,9 @@
|
||||
.Dd August 14 2018
|
||||
.Dd February 20 2019
|
||||
.Dt NTPQ @NTPQ_MS@ User Commands
|
||||
.Os
|
||||
.\" EDIT THIS FILE WITH CAUTION (ntpq-opts.mdoc)
|
||||
.\"
|
||||
.\" It has been AutoGen-ed August 14, 2018 at 08:30:05 AM by AutoGen 5.18.5
|
||||
.\" It has been AutoGen-ed February 20, 2019 at 09:56:59 AM by AutoGen 5.18.5
|
||||
.\" From the definitions ntpq-opts.def
|
||||
.\" and the template file agmdoc-cmd.tpl
|
||||
.Sh NAME
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user