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... ============================================================================== --- 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); }