/* FUNCTIONS ******************************************************************/
-VOID
FORCEINLINE
+VOID
KiWriteSystemTime(volatile KSYSTEM_TIME *SystemTime, ULARGE_INTEGER NewTime)
{
#ifdef _WIN64
#endif
}
-VOID
FORCEINLINE
+VOID
KiCheckForTimerExpiration(
PKPRCB Prcb,
PKTRAP_FRAME TrapFrame,
/* Increase interrupt count and end the interrupt */
Prcb->InterruptCount++;
KiEndInterrupt(Irql, TrapFrame);
+
+ /* Note: non-x86 return back to the caller! */
+ return;
}
/* Add the increment time to the shared data */
/* Check if we came from user mode */
#ifndef _M_ARM
- if ((TrapFrame->SegCs & MODE_MASK) || (TrapFrame->EFlags & EFLAGS_V86_MASK))
+ if (KiUserTrap(TrapFrame) || (TrapFrame->EFlags & EFLAGS_V86_MASK))
#else
if (TrapFrame->PreviousMode == UserMode)
#endif
/* Handle being in a DPC */
Prcb->DpcTime++;
-#if 0 //DBG
+#if DBG
/* Update the DPC time */
Prcb->DebugDpcTime++;
/* Check if we have timed out */
- if (Prcb->DebugDpcTime == KiDPCTimeout);
+ if (Prcb->DebugDpcTime == KiDPCTimeout)
{
/* We did! */
DbgPrint("*** DPC routine > 1 sec --- This is not a break in KeUpdateSystemTime\n");