mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 00:45:24 +00:00
InsertAscendingList adaption
KiAcquire/ReleaseSpinLock adaption svn path=/trunk/; revision=7755
This commit is contained in:
parent
01b8638f08
commit
6c37271fd5
1 changed files with 26 additions and 11 deletions
|
@ -1,4 +1,4 @@
|
|||
/* $Id: timer.c,v 1.66 2004/01/05 14:28:21 weiden Exp $
|
||||
/* $Id: timer.c,v 1.67 2004/01/18 22:32:47 gdalsnes Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -225,6 +225,7 @@ KeQueryInterruptTime(PLARGE_INTEGER CurrentTime)
|
|||
CurrentTime->u.LowPart = SharedUserData->InterruptTime.LowPart;
|
||||
}
|
||||
while (CurrentTime->u.HighPart != SharedUserData->InterruptTime.High2Part);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -327,13 +328,21 @@ KeSetTimerEx (PKTIMER Timer,
|
|||
}
|
||||
if (Timer->Header.Absolute)
|
||||
{
|
||||
InsertAscendingList(&AbsoluteTimerListHead, &Timer->TimerListEntry,
|
||||
KTIMER, TimerListEntry, DueTime.QuadPart);
|
||||
InsertAscendingList(&AbsoluteTimerListHead,
|
||||
KTIMER,
|
||||
TimerListEntry,
|
||||
Timer,
|
||||
DueTime.QuadPart);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
InsertAscendingList(&RelativeTimerListHead, &Timer->TimerListEntry,
|
||||
KTIMER, TimerListEntry, DueTime.QuadPart);
|
||||
InsertAscendingList(&RelativeTimerListHead,
|
||||
KTIMER,
|
||||
TimerListEntry,
|
||||
Timer,
|
||||
DueTime.QuadPart);
|
||||
|
||||
}
|
||||
|
||||
KeReleaseSpinLock(&TimerListLock, oldlvl);
|
||||
|
@ -490,13 +499,19 @@ HandleExpiredTimer(PKTIMER Timer)
|
|||
Timer->Period * SYSTEM_TIME_UNITS_PER_MSEC;
|
||||
if (Timer->Header.Absolute)
|
||||
{
|
||||
InsertAscendingList(&AbsoluteTimerListHead, &Timer->TimerListEntry,
|
||||
KTIMER, TimerListEntry, DueTime.QuadPart);
|
||||
InsertAscendingList(&AbsoluteTimerListHead,
|
||||
KTIMER,
|
||||
TimerListEntry,
|
||||
Timer,
|
||||
DueTime.QuadPart);
|
||||
}
|
||||
else
|
||||
{
|
||||
InsertAscendingList(&RelativeTimerListHead, &Timer->TimerListEntry,
|
||||
KTIMER, TimerListEntry, DueTime.QuadPart);
|
||||
InsertAscendingList(&RelativeTimerListHead,
|
||||
KTIMER,
|
||||
TimerListEntry,
|
||||
Timer,
|
||||
DueTime.QuadPart);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -595,7 +610,7 @@ KiUpdateSystemTime(KIRQL oldIrql,
|
|||
KeTickCount++;
|
||||
SharedUserData->TickCountLow++;
|
||||
|
||||
KeAcquireSpinLockAtDpcLevel(&TimerValueLock);
|
||||
KiAcquireSpinLock(&TimerValueLock);
|
||||
|
||||
Time.u.LowPart = SharedUserData->InterruptTime.LowPart;
|
||||
Time.u.HighPart = SharedUserData->InterruptTime.High1Part;
|
||||
|
@ -611,7 +626,7 @@ KiUpdateSystemTime(KIRQL oldIrql,
|
|||
SharedUserData->SystemTime.LowPart = Time.u.LowPart;
|
||||
SharedUserData->SystemTime.High1Part = Time.u.HighPart;
|
||||
|
||||
KeReleaseSpinLockFromDpcLevel(&TimerValueLock);
|
||||
KiReleaseSpinLock(&TimerValueLock);
|
||||
|
||||
/*
|
||||
* Queue a DPC that will expire timers
|
||||
|
|
Loading…
Reference in a new issue