[Git][NTPsec/ntpsec][master] 4 commits: Improve documentation of the system call interface.
Eric S. Raymond
gitlab at mg.gitlab.com
Sun Oct 16 11:26:30 UTC 2016
Eric S. Raymond pushed to branch master at NTPsec / ntpsec
2bd45c41 by Eric S. Raymond at 2016-10-16T07:22:00-04:00
Improve documentation of the system call interface.
- - - - -
9ebbab74 by Matt Selsky at 2016-10-16T07:26:15-04:00
Remove waf references to libntpsim
- - - - -
eefd6dd5 by Matt Selsky at 2016-10-16T07:26:15-04:00
Add missing 'import sys' and import core modules before other modules.
- - - - -
fe3ef0e5 by Matt Selsky at 2016-10-16T07:26:15-04:00
- - - - -
4 changed files:
@@ -3,10 +3,11 @@
from __future__ import print_function
-from gps import *
from datetime import datetime
+from gps import *
gpsd = None #seting the global variable
@@ -50,9 +50,9 @@ You can view POSIX-1.2001, with 2004 Corrigendum, online for free here:
POSIX threads *are* considered part of the standardized API and may be used.
-Here are the non-standardized AIs that may be used:
+Here are the non-standardized APIs that may be used:
-* Eother ntp_adjtime() or the older BSD adjtime(2).
+* Either ntp_adjtime() or the older BSD adjtime(2).
* Berkeley sockets and the IPv6 API defined in RFC2493 and RFC2553.
@@ -167,15 +167,21 @@ quite a while before NTPsec removed it.
== System call interface and the PLL ==
All of ntpd's clock management is done through four system calls:
-clock_gettime(2), clock_settime(2), and either ntp_adjtime(2) or (on
-some systems, including Linux) adjtimex(2), or the older BSD
+clock_gettime(2), clock_settime(2), and either ntp_adjtime(2) or the
+older BSD adjtime(2) call. For ntp_adjtime(), ntpd actually uses a
+thin wrapper that hides the difference between systems with
+nanosecond-precision and those with only microsecond precision;
+internally, ntpd does all its calculations with nanosecond precision.
The clock_gettime(2) and clock_settime(2) calls are standardized in
-POSIX; ntp_adjtime(2) and adjtimex(2) are not, exhibiting some
-variability in behavior across platforms. Where adjtimex(2) exists
-(notably under Linux), ntp_adjtime(2) is implemented as a thin
-userspace wrapper around it.
+POSIX; ntp_adjtime(2) is not not, exhibiting some variability in
+behavior across platforms (in particular as to whether it supports
+nanosecond or microsecond precision).
+Where adjtimex(2) exists (notably under Linux), both ntp_adjtime()
+and adjtime() are implemented as library wrappers around it. The
+need to implement adjtime() is why the Linux version of struct timex
+has a (non-portable) 'time' member;
There is some confusion abroad about this interface because it has
left a trail of abandoned experiments behind it.
@@ -46,10 +46,6 @@ def build(ctx):
- source_libntpsim = [
libntp_source_systime = [
View it on GitLab: https://gitlab.com/NTPsec/ntpsec/compare/84c31bb5dedc528fe14d7c18346068bf32b99989...fe3ef0e56ac867e45312ad3b2dc1ebde9365e404
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the vc