andy@jhunix.HCF.JHU.EDU (Andy S Poling) (02/06/91)
I'm attempting to impliment NTP on our 3b4000 and I'm having some trouble figuring out how to twiddle the clock in teeny weeny little incriments. The ntpd sources for BSD-based systems use adjtime() which essentially changes the ticks required to make one second up and down - essentially minutely slowing or speeding up the clock. Needless to say, we have no adjtime() call (that I know of). What I have found are some interesting kernel symbols and an interesting ABUS ioctl. The kernel symbols are lticks varies between 99 and 100 (indicating to me that something is already wiggling it) ticspersec value is 100 one_sec counts from 0 to 100, apparently for each second The ABUS ioctl is C_EPOCH which TFM says "toggles the epoch bit so that the system time can be set backwards". Isn't that a lucid explanation? Since AT&T has refused us kernel source, I can only guess at what the above kernel symbols really are. Since the available ntpd sources are designed to fudge the clock in very little pieces (like a couple ms) at a time, I find twiddling a value in the kernel a more attractive option. Otherwise I'll have to extensively modify the ntpd sources to intentionally make them less accurate (a shame, really) and do repeated stime()s to slowly approach the correct time. I'm also assuming that the clock on the MP is the one that matters and that I would only have to twiddle values in the MP's kernel. Stupid assumption? Any suggestions or ideas? Anybody done this before/already? I would appreciate any help at all. -Andy -- Andy Poling Internet: andy@gollum.hcf.jhu.edu UNIX Systems Programmer Bitnet: ANDY@JHUNIX Homewood Academic Computing Voice: (301)338-8096 Johns Hopkins University UUCP: uunet!mimsy!aplcen!jhunix!andy