Hal Murray <hmur...@megapathdsl.net>: > ../../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. -- <a href="http://www.catb.org/~esr/">Eric S. Raymond</a> _______________________________________________ devel mailing list devel@ntpsec.org http://lists.ntpsec.org/mailman/listinfo/devel