The daemon's clock adjustment algorithms depend (too) strongly
on the internals of the kernel adjtime() call, and expect it to
match that which comes with Berkeley-flavour operating systems.
The daemon actually reads a couple of values from your kernel
using /dev/kmem (ugh!), the value of `tick' and the value of `tickadj'.
`tick' is expected to be the number of microseconds which are
added to the system time on timer interrupts when the clock isn't
being slewed.  `tickadj' is the number of microseconds which are
added or subtracted from tick when the clock is being slewed.

The program tickadj mimics the daemon's handling of these variables.
If you run it (as root) and it fails or produces bizarre looking
values you may have to torque ntp_unixclock.c in the daemon code.

You can also use tickadj -a to set tickadj in the running kernel.
In addition, tickadj -A will compute the value to set based on the
kernel's value of tick, while the -t flag allows one to set the
value of tick and the -s flag will set the value of dosynctodr
to zero.  This is an alternative for people who can't change the
values in the kernel's disk image.

In addition, the -p flag will set the noprintf variable. This will
suppress any kernel messages. Kernel message can then only be seen via
syslog(3). This inhibits clockhopping due to kernel printf's.

