[ros-diffs] [sir_richard] 49773: [PSDK/NDK]: Fix KPCR/KIPCR for ARM to match x86 more closely. Add KeGetTickCount for ARM.

sir_richard at svn.reactos.org sir_richard at svn.reactos.org
Wed Nov 24 15:18:25 UTC 2010


Author: sir_richard
Date: Wed Nov 24 15:18:24 2010
New Revision: 49773

URL: http://svn.reactos.org/svn/reactos?rev=49773&view=rev
Log:
[PSDK/NDK]: Fix KPCR/KIPCR for ARM to match x86 more closely. Add KeGetTickCount for ARM.

Modified:
    trunk/reactos/include/ndk/arm/ketypes.h
    trunk/reactos/include/reactos/arm/armddk.h

Modified: trunk/reactos/include/ndk/arm/ketypes.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/arm/ketypes.h?rev=49773&r1=49772&r2=49773&view=diff
==============================================================================
--- trunk/reactos/include/ndk/arm/ketypes.h [iso-8859-1] (original)
+++ trunk/reactos/include/ndk/arm/ketypes.h [iso-8859-1] Wed Nov 24 15:18:24 2010
@@ -473,8 +473,13 @@
     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];

Modified: trunk/reactos/include/reactos/arm/armddk.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/arm/armddk.h?rev=49773&r1=49772&r2=49773&view=diff
==============================================================================
--- trunk/reactos/include/reactos/arm/armddk.h [iso-8859-1] (original)
+++ trunk/reactos/include/reactos/arm/armddk.h [iso-8859-1] Wed Nov 24 15:18:24 2010
@@ -173,6 +173,12 @@
     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 @@
 );
 #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
 //




More information about the Ros-diffs mailing list