Re: Build broken on NetBSD and FreeBSD
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
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
> 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
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