Author: ros-arm-bringup
Date: Sun Jul 13 22:17:57 2008
New Revision: 34491
URL:
http://svn.reactos.org/svn/reactos?rev=34491&view=rev
Log:
- Enable timer expiration code.
- Timers now work, along with full scheduling, dispatching and context switching, so our 5
second wait in init.c allows other threads to runs, then completes appropriately.
Modified:
trunk/reactos/ntoskrnl/ke/arm/time.c
Modified: trunk/reactos/ntoskrnl/ke/arm/time.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/time.c?rev…
==============================================================================
--- trunk/reactos/ntoskrnl/ke/arm/time.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ke/arm/time.c [iso-8859-1] Sun Jul 13 22:17:57 2008
@@ -109,13 +109,17 @@
if (KiTimerTableListHead[Hand].Time.QuadPart <= InterruptTime.QuadPart)
{
//
- // Timer has expired!
- //
- DPRINT1("hand: %d\n", Hand);
- DPRINT1("Interrupt time: %I64x\n", InterruptTime.QuadPart);
- DPRINT1("TIMER EXPIRATION: %I64x!!!\n",
- KiTimerTableListHead[Hand].Time.QuadPart);
- while (TRUE);
+ // Check if we are already doing expiration
+ //
+ if (!Prcb->TimerRequest)
+ {
+ //
+ // Request a DPC to handle this
+ //
+ Prcb->TimerRequest = TrapFrame->SvcSp;
+ Prcb->TimerHand = Hand;
+ HalRequestSoftwareInterrupt(DISPATCH_LEVEL);
+ }
}
//