mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-31 04:13:37 +00:00
[PSDK/NDK]: Fix KPCR/KIPCR for ARM to match x86 more closely. Add KeGetTickCount for ARM.
svn path=/trunk/; revision=49773
This commit is contained in:
@@ -473,8 +473,13 @@ typedef struct _KIPCR
|
||||
ULONG StallScaleFactor;
|
||||
UCHAR SpareUnused;
|
||||
UCHAR Number;
|
||||
UCHAR Spare0;
|
||||
UCHAR SecondLevelCacheAssociativity;
|
||||
ULONG VdmAlert;
|
||||
ULONG KernelReserved[14];
|
||||
ULONG SecondLevelCacheSize;
|
||||
ULONG HalReserved[16];
|
||||
// arm part
|
||||
UCHAR Spare0[2];
|
||||
UCHAR IrqlMask[32];
|
||||
ULONG IrqlTable[32];
|
||||
PKINTERRUPT_ROUTINE InterruptRoutine[32];
|
||||
|
||||
@@ -173,6 +173,12 @@ typedef struct _KPCR
|
||||
ULONG StallScaleFactor;
|
||||
UCHAR SpareUnused;
|
||||
UCHAR Number;
|
||||
UCHAR Spare0;
|
||||
UCHAR SecondLevelCacheAssociativity;
|
||||
ULONG VdmAlert;
|
||||
ULONG KernelReserved[14];
|
||||
ULONG SecondLevelCacheSize;
|
||||
ULONG HalReserved[16];
|
||||
} KPCR, *PKPCR;
|
||||
|
||||
//
|
||||
@@ -260,6 +266,26 @@ HalSweepIcache(
|
||||
);
|
||||
#endif
|
||||
|
||||
FORCEINLINE
|
||||
VOID
|
||||
_KeQueryTickCount(
|
||||
OUT PLARGE_INTEGER CurrentCount)
|
||||
{
|
||||
for (;;) {
|
||||
#ifdef NONAMELESSUNION
|
||||
CurrentCount->s.HighPart = KeTickCount.High1Time;
|
||||
CurrentCount->s.LowPart = KeTickCount.LowPart;
|
||||
if (CurrentCount->s.HighPart == KeTickCount.High2Time) break;
|
||||
#else
|
||||
CurrentCount->HighPart = KeTickCount.High1Time;
|
||||
CurrentCount->LowPart = KeTickCount.LowPart;
|
||||
if (CurrentCount->HighPart == KeTickCount.High2Time) break;
|
||||
#endif
|
||||
YieldProcessor();
|
||||
}
|
||||
}
|
||||
#define KeQueryTickCount(CurrentCount) _KeQueryTickCount(CurrentCount)
|
||||
|
||||
//
|
||||
// Intrinsics
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user