cvs commit: src/sys/i386/i386 src/sys/i386/isa src/sys/kern src/sys/sys

Matthew Dillon dillon at crater.dragonflybsd.org
Sat Nov 20 12:26:13 PST 2004


dillon      2004/11/20 12:25:13 PST

DragonFly src repository

  Modified files:
    sys/i386/i386        vm86.c 
    sys/i386/isa         clock.c 
    sys/kern             kern_clock.c kern_systimer.c 
    sys/sys              systimer.h time.h 
  Log:
  Add code to the BIOS VM86 emulator to detect writes to the 8254.  If a
  write is detected the 8254 is reset after the bios call returns and the
  event is reported.  Some bioses, in particular video bioses, uses timer 2
  for timing things.  We need timer 2 for our master clock.
  
  Remove restoreclocks().  This was causing gd_cpuclock_base to reverse index
  and jump the time ahead an hour with a flurry of hardclock interrupts.
  
  Introduce a new systimer API call, systimer_init_periodic_nq(), which
  installs a non-queued periodic systimer.  Non-queued means that if multiple
  events built-up (due to an 8254 glitch, sleep, or other event), only one
  event will be reported.
  
  This should fix the BIOS/8254 glitching, the 'hour jump' problem, and
  hopefully other timer jumping issues as well.
  
  Bugs-reported-by: Andreas Hauser <andy at xxxxxxxxxxxxxxx>,
  		Jonathon McKitrick <jcm at xxxxxxxxxxxxxxxxx>,
  		and others
  
  Revision  Changes    Path
  1.12      +93 -22    src/sys/i386/i386/vm86.c
  1.20      +6 -5      src/sys/i386/isa/clock.c
  1.27      +10 -33    src/sys/kern/kern_clock.c
  1.5       +30 -1     src/sys/kern/kern_systimer.c
  1.3       +2 -0      src/sys/sys/systimer.h
  1.10      +0 -1      src/sys/sys/time.h


http://www.dragonflybsd.org/cvsweb/src/sys/i386/i386/vm86.c.diff?r1=1.11&r2=1.12&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/isa/clock.c.diff?r1=1.19&r2=1.20&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_clock.c.diff?r1=1.26&r2=1.27&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_systimer.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/systimer.h.diff?r1=1.2&r2=1.3&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/time.h.diff?r1=1.9&r2=1.10&f=u





More information about the Commits mailing list