mirror of
https://github.com/reactos/reactos.git
synced 2024-07-21 11:48:04 +00:00
InsertAscendingList adaption
KiAcquire/ReleaseSpinLock adaption svn path=/trunk/; revision=7755
This commit is contained in:
parent
01b8638f08
commit
6c37271fd5
|
@ -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
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
|
@ -225,6 +225,7 @@ KeQueryInterruptTime(PLARGE_INTEGER CurrentTime)
|
||||||
CurrentTime->u.LowPart = SharedUserData->InterruptTime.LowPart;
|
CurrentTime->u.LowPart = SharedUserData->InterruptTime.LowPart;
|
||||||
}
|
}
|
||||||
while (CurrentTime->u.HighPart != SharedUserData->InterruptTime.High2Part);
|
while (CurrentTime->u.HighPart != SharedUserData->InterruptTime.High2Part);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -327,13 +328,21 @@ KeSetTimerEx (PKTIMER Timer,
|
||||||
}
|
}
|
||||||
if (Timer->Header.Absolute)
|
if (Timer->Header.Absolute)
|
||||||
{
|
{
|
||||||
InsertAscendingList(&AbsoluteTimerListHead, &Timer->TimerListEntry,
|
InsertAscendingList(&AbsoluteTimerListHead,
|
||||||
KTIMER, TimerListEntry, DueTime.QuadPart);
|
KTIMER,
|
||||||
|
TimerListEntry,
|
||||||
|
Timer,
|
||||||
|
DueTime.QuadPart);
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
InsertAscendingList(&RelativeTimerListHead, &Timer->TimerListEntry,
|
InsertAscendingList(&RelativeTimerListHead,
|
||||||
KTIMER, TimerListEntry, DueTime.QuadPart);
|
KTIMER,
|
||||||
|
TimerListEntry,
|
||||||
|
Timer,
|
||||||
|
DueTime.QuadPart);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
KeReleaseSpinLock(&TimerListLock, oldlvl);
|
KeReleaseSpinLock(&TimerListLock, oldlvl);
|
||||||
|
@ -490,13 +499,19 @@ HandleExpiredTimer(PKTIMER Timer)
|
||||||
Timer->Period * SYSTEM_TIME_UNITS_PER_MSEC;
|
Timer->Period * SYSTEM_TIME_UNITS_PER_MSEC;
|
||||||
if (Timer->Header.Absolute)
|
if (Timer->Header.Absolute)
|
||||||
{
|
{
|
||||||
InsertAscendingList(&AbsoluteTimerListHead, &Timer->TimerListEntry,
|
InsertAscendingList(&AbsoluteTimerListHead,
|
||||||
KTIMER, TimerListEntry, DueTime.QuadPart);
|
KTIMER,
|
||||||
|
TimerListEntry,
|
||||||
|
Timer,
|
||||||
|
DueTime.QuadPart);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
InsertAscendingList(&RelativeTimerListHead, &Timer->TimerListEntry,
|
InsertAscendingList(&RelativeTimerListHead,
|
||||||
KTIMER, TimerListEntry, DueTime.QuadPart);
|
KTIMER,
|
||||||
|
TimerListEntry,
|
||||||
|
Timer,
|
||||||
|
DueTime.QuadPart);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -595,7 +610,7 @@ KiUpdateSystemTime(KIRQL oldIrql,
|
||||||
KeTickCount++;
|
KeTickCount++;
|
||||||
SharedUserData->TickCountLow++;
|
SharedUserData->TickCountLow++;
|
||||||
|
|
||||||
KeAcquireSpinLockAtDpcLevel(&TimerValueLock);
|
KiAcquireSpinLock(&TimerValueLock);
|
||||||
|
|
||||||
Time.u.LowPart = SharedUserData->InterruptTime.LowPart;
|
Time.u.LowPart = SharedUserData->InterruptTime.LowPart;
|
||||||
Time.u.HighPart = SharedUserData->InterruptTime.High1Part;
|
Time.u.HighPart = SharedUserData->InterruptTime.High1Part;
|
||||||
|
@ -611,7 +626,7 @@ KiUpdateSystemTime(KIRQL oldIrql,
|
||||||
SharedUserData->SystemTime.LowPart = Time.u.LowPart;
|
SharedUserData->SystemTime.LowPart = Time.u.LowPart;
|
||||||
SharedUserData->SystemTime.High1Part = Time.u.HighPart;
|
SharedUserData->SystemTime.High1Part = Time.u.HighPart;
|
||||||
|
|
||||||
KeReleaseSpinLockFromDpcLevel(&TimerValueLock);
|
KiReleaseSpinLock(&TimerValueLock);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Queue a DPC that will expire timers
|
* Queue a DPC that will expire timers
|
||||||
|
|
Loading…
Reference in a new issue