Author: fireball
Date: Fri Sep 10 13:15:51 2010
New Revision: 48731
URL:
http://svn.reactos.org/svn/reactos?rev=48731&view=rev
Log:
[HAL]
- Stub support for future timer latency watchdog.
- Change older-style comments to standard ReactOS commenting style.
Modified:
trunk/reactos/hal/halx86/generic/i386/systimer.S
trunk/reactos/hal/halx86/generic/timer.c
Modified: trunk/reactos/hal/halx86/generic/i386/systimer.S
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/generic/i386/sy…
==============================================================================
--- trunk/reactos/hal/halx86/generic/i386/systimer.S [iso-8859-1] (original)
+++ trunk/reactos/hal/halx86/generic/i386/systimer.S [iso-8859-1] Fri Sep 10 13:15:51
2010
@@ -20,9 +20,6 @@
_HalpPerfCounterHigh: .long 0
_HalpSystemHardwareFlags: .long 0
-_UnhandledMsg:
- .asciz "\n\x7\x7!!! Unhandled or Unexpected Code at line: %lx!!!\n"
-
/* FUNCTIONS *****************************************************************/
.global _HalpCalibrateStallExecution@0
@@ -389,6 +386,9 @@
/* Read 8254 timer */
mov al, 0
out 0x43, al
+ in al, 0x92
+ or al, _HalpPerfCounterCutoff
+ out 0x92, al
jmp $+2
in al, 0x40
jmp $+2
Modified: trunk/reactos/hal/halx86/generic/timer.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/generic/timer.c…
==============================================================================
--- trunk/reactos/hal/halx86/generic/timer.c [iso-8859-1] (original)
+++ trunk/reactos/hal/halx86/generic/timer.c [iso-8859-1] Fri Sep 10 13:15:51 2010
@@ -14,6 +14,7 @@
/* GLOBALS *******************************************************************/
+ULONG HalpPerfCounterCutoff;
BOOLEAN HalpClockSetMSRate;
ULONG HalpCurrentTimeIncrement;
ULONG HalpCurrentRollOver;
@@ -71,34 +72,26 @@
Flags = __readeflags();
_disable();
- //
- // Program the PIT for binary mode
- //
+ /* Program the PIT for binary mode */
TimerControl.BcdMode = FALSE;
- //
- // Program the PIT to generate a normal rate wave (Mode 3) on channel 0.
- // Channel 0 is used for the IRQ0 clock interval timer, and channel
- // 1 is used for DRAM refresh.
- //
- // Mode 2 gives much better accuracy than Mode 3.
- //
+ /*
+ * Program the PIT to generate a normal rate wave (Mode 3) on channel 0.
+ * Channel 0 is used for the IRQ0 clock interval timer, and channel
+ * 1 is used for DRAM refresh.
+ *
+ * Mode 2 gives much better accuracy than Mode 3.
+ */
TimerControl.OperatingMode = PitOperatingMode2;
TimerControl.Channel = PitChannel0;
- //
- // Set the access mode that we'll use to program the reload value.
- //
+ /* Set the access mode that we'll use to program the reload value */
TimerControl.AccessMode = PitAccessModeLowHigh;
- //
- // Now write the programming bits
- //
+ /* Now write the programming bits */
__outbyte(TIMER_CONTROL_PORT, TimerControl.Bits);
- //
- // Next we write the reload value for channel 0
- //
+ /* Next we write the reload value for channel 0 */
__outbyte(TIMER_CHANNEL0_DATA_PORT, RollOver & 0xFF);
__outbyte(TIMER_CHANNEL0_DATA_PORT, RollOver >> 8);
@@ -125,6 +118,7 @@
{
/* Update the performance counter */
HalpPerfCounter.QuadPart += HalpCurrentRollOver;
+ HalpPerfCounterCutoff = KiEnableTimerWatchdog;
/* Check if someone changed the time rate */
if (HalpClockSetMSRate)