Re: Build broken on NetBSD and FreeBSD

2016-10-17 Thread Hal Murray

e...@thyrsus.com said:
> Maybe not any more; OpenBSD manual search didn't find it.
...
> But something is screwy here.  OpenBSD URL, but FreeBSD banner on the page.
> Methinks I smell bit-rot.

Looks clean on my system:

 int
 adjfreq(const int64_t *freq, int64_t *oldfreq);

DESCRIPTION
 adjfreq() adjusts the rate in which time progresses if freq is non-null.
 The unit of the rate of adjustment is nanoseconds per second, shifted
 left 32 bits to allow for fractional values.

 If oldfreq is non-null, the current value is returned.

...
 The adjfreq() function call first appeared in OpenBSD 4.0.

OpenBSD 6.0   September 10, 2015   OpenBSD 6.0


-- 
These are my opinions.  I hate spam.



___
devel mailing list
devel@ntpsec.org
http://lists.ntpsec.org/mailman/listinfo/devel


Re: Build broken on NetBSD and FreeBSD

2016-10-17 Thread Eric S. Raymond
Hal Murray :
> OpenBSD has an adjfreq similar to adjtime.

/me looks.

Maybe not any more; OpenBSD manual search didn't find it.

I did find this with a more general search:

http://www.manualpages.de/OpenBSD/OpenBSD-5.0/man2/adjfreq.2.html

But something is screwy here.  OpenBSD URL, but FreeBSD banner on the
page.  Methinks I smell bit-rot.
-- 
http://www.catb.org/~esr/;>Eric S. Raymond
___
devel mailing list
devel@ntpsec.org
http://lists.ntpsec.org/mailman/listinfo/devel


Re: Build broken on NetBSD and FreeBSD

2016-10-17 Thread Hal Murray

> Fixed, I think.  I don't have a *BSD test system.

Seems happy.  Thanks.


> But in ntpd, the ntp_adjtime() calls never touch the time member.  The minor
> mistake I made in introducing ntp_adjtime_ns() was to try to scale the
> Linux-specific time member as though it exists portably and ntpd uses it.
> Neither is the case.  When ntpd needs to bump time (as opposed to changing
> the tick rate to slew it) it calls adjtime(2), which may call adjtimex()
> under the covers. 

For your collection... :)

OpenBSD has an adjfreq similar to adjtime.



-- 
These are my opinions.  I hate spam.



___
devel mailing list
devel@ntpsec.org
http://lists.ntpsec.org/mailman/listinfo/devel


Re: Build broken on NetBSD and FreeBSD

2016-10-16 Thread Eric S. Raymond
Hal Murray :
> ../../libntp/machines.c:92:5: error: 'struct timex' has no member named 'time'
> ../../libntp/machines.c:101:5: error: 'struct timex' has no member named 
> 'time'

Fixed, I think.  I don't have a *BSD test system.  Sorry about the
belated response, my meatspace life has been sistracting this week.

And now I think I fully understand the ntpd system-call interface,
finally.  Your bug report caused the last piece to fall into place.
Here's the explanation for the record.

Under Linux, adjtimex(2) can be and is used to implement both ntp_adjtime()
and BSD-style adjtime(). The former is done directly through struct timex
members by defining ADJ_* mode masks to be identical to the corresponding,
more portable, MOD_* mode masks.  The latter is done with the 'time' member
(which don't exist in the *BSD versions of struct timex) and the ADJ_SETOFFSET
mode mask.

But in ntpd, the ntp_adjtime() calls never touch the time member.  The
minor mistake I made in introducing ntp_adjtime_ns() was to try to
scale the Linux-specific time member as though it exists portably and
ntpd uses it.  Neither is the case.  When ntpd needs to bump time (as
opposed to changing the tick rate to slew it) it calls adjtime(2),
which may call adjtimex() under the covers.

You are lost in a maze of twisty, poorly-documented system calls, all different.
-- 
http://www.catb.org/~esr/;>Eric S. Raymond
___
devel mailing list
devel@ntpsec.org
http://lists.ntpsec.org/mailman/listinfo/devel