summaryrefslogtreecommitdiffstats
path: root/sys/isa/atrtc.c
diff options
context:
space:
mode:
authorwollman <wollman@FreeBSD.org>1994-09-18 20:40:01 +0000
committerwollman <wollman@FreeBSD.org>1994-09-18 20:40:01 +0000
commit9028bd50ffd972e1a3b8145652ee9287ebd2f680 (patch)
tree0542820657279835e2be295c7ffed111332b0a03 /sys/isa/atrtc.c
parent5de9aa67de26f3a6ec87731670b4bd6c04d312c3 (diff)
downloadFreeBSD-src-9028bd50ffd972e1a3b8145652ee9287ebd2f680.zip
FreeBSD-src-9028bd50ffd972e1a3b8145652ee9287ebd2f680.tar.gz
Redo Kernel NTP PLL support, kernel side.
This code is mostly taken from the 1.1 port (which was in turn taken from Dave Mills's kern.tar.Z example). A few significant differences: 1) ntp_gettime() is now a MIB variable rather than a system call. A few fiddles are done in libc to make it behave the same. 2) mono_time does not participate in the PLL adjustments. 3) A new interface has been defined (in <machine/clock.h>) for doing possibly machine-dependent things around the time of the clock update. This is used in Pentium kernels to disable interrupts, set `time', and reset the CPU cycle counter as quickly as possible to avoid jitter in microtime(). Measurements show an apparent resolution of a bit more than 8.14usec, which is reasonable given system-call overhead.
Diffstat (limited to 'sys/isa/atrtc.c')
-rw-r--r--sys/isa/atrtc.c23
1 files changed, 1 insertions, 22 deletions
diff --git a/sys/isa/atrtc.c b/sys/isa/atrtc.c
index 88942db..b762442 100644
--- a/sys/isa/atrtc.c
+++ b/sys/isa/atrtc.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)clock.c 7.2 (Berkeley) 5/12/91
- * $Id: clock.c,v 1.16 1994/08/18 22:34:50 wollman Exp $
+ * $Id: clock.c,v 1.17 1994/09/14 23:09:06 ache Exp $
*/
/*
@@ -79,27 +79,6 @@ void
clkintr(frame)
struct clockframe frame;
{
-#ifdef I586_CPU
- /*
- * This resets the CPU cycle counter to zero, to make our
- * job easier in microtime(). Some fancy ifdefs could speed
- * this up for Pentium-only kernels.
- * We want this to be done as close as possible to the actual
- * timer incrementing in hardclock(), because there is a window
- * between the two where the value is no longer valid. Experimentation
- * may reveal a good precompensation to apply in microtime().
- */
- if(pentium_mhz) {
- __asm __volatile("movl $0x10,%%ecx\n"
- "xorl %%eax,%%eax\n"
- "movl %%eax,%%edx\n"
- ".byte 0x0f, 0x30\n"
- "#%0%1"
- : "=m"(frame) /* no outputs */
- : "b"(&frame) /* fake input */
- : "ax", "cx", "dx");
- }
-#endif
hardclock(&frame);
}
OpenPOWER on IntegriCloud