[ros-diffs] [ros-arm-bringup] 34087: - Fix totally broken KeUpdateSystemRuntime code... please at least read your code once before committing.

ros-arm-bringup at svn.reactos.org ros-arm-bringup at svn.reactos.org
Thu Jun 26 07:26:11 CEST 2008


Author: ros-arm-bringup
Date: Thu Jun 26 00:26:10 2008
New Revision: 34087

URL: http://svn.reactos.org/svn/reactos?rev=34087&view=rev
Log:
- Fix totally broken KeUpdateSystemRuntime code... please at least read your code once before committing.

Modified:
    trunk/reactos/ntoskrnl/ke/arm/stubs.c

Modified: trunk/reactos/ntoskrnl/ke/arm/stubs.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/stubs.c?rev=34087&r1=34086&r2=34087&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/ke/arm/stubs.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ke/arm/stubs.c [iso-8859-1] Thu Jun 26 00:26:10 2008
@@ -37,8 +37,12 @@
                    IN ULONG Increment)
 {
     PKPRCB Prcb = KeGetPcr()->Prcb;
-    LARGE_INTEGER SystemTime, InterruptTime;
+    ULARGE_INTEGER SystemTime, InterruptTime;
     ULONG Hand;
+    DPRINT1("TIMEBASE: %I64d %I64d %I64d\n",
+            *(PLARGE_INTEGER)&SharedUserData->InterruptTime,
+            *(PLARGE_INTEGER)&SharedUserData->SystemTime,
+            *(PLARGE_INTEGER)&SharedUserData->TickCount);
     
     //
     // Do nothing if this tick is being skipped
@@ -70,11 +74,7 @@
     //
     // Check for incomplete tick
     //
-    if (KiTickOffset > 0)
-    {
-        
-    }
-    else
+    if (KiTickOffset <= 0)
     {
         //
         // Update the system time
@@ -107,14 +107,15 @@
     //
     // Check for timer expiration
     //
-    Hand = KeTickCount.LowPart & (TIMER_TABLE_SIZE - 1);
-    Hand <<= 4;
-    if (KiTimerTableListHead[Hand].Time.QuadPart > InterruptTime.QuadPart)
+    Hand = KeTickCount.LowPart % TIMER_TABLE_SIZE;
+    if (KiTimerTableListHead[Hand].Time.QuadPart <= InterruptTime.QuadPart)
     {
         //
         // Timer has expired!
         //
-        DPRINT1("TIMER EXPIRATION!!!\n");
+        DPRINT1("hand: %d\n", Hand);
+        DPRINT1("Interrupt time: %I64x\n",  InterruptTime.QuadPart);
+        DPRINT1("TIMER EXPIRATION: %I64x!!!\n", KiTimerTableListHead[Hand].Time.QuadPart);
         while (TRUE);
     }
     



More information about the Ros-diffs mailing list