[XDK]
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Wed, 24 Mar 2010 05:20:22 +0000 (05:20 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Wed, 24 Mar 2010 05:20:22 +0000 (05:20 +0000)
- Add some amd64 related Mm variables
- Fix some _WIN2K_COMPAT_SLIST_USAGE definitions
- Add non-x86 spinlock functions

svn path=/branches/header-work/; revision=46392

include/ddk/ntddk.h
include/ddk/wdm.h
include/xdk/amd64/ke.h
include/xdk/amd64/mm.h
include/xdk/exfuncs.h
include/xdk/kefuncs.h

index 387f538..7ccfa08 100644 (file)
@@ -3209,6 +3209,10 @@ KeGetCurrentProcessorNumber(VOID)
 #define PDE_TOP     0xFFFFF6FB7FFFFFFFULL
 #define PTE_TOP     0xFFFFF6FFFFFFFFFFULL
 
+extern NTKERNELAPI PVOID MmHighestUserAddress;
+extern NTKERNELAPI PVOID MmSystemRangeStart;
+extern NTKERNELAPI ULONG64 MmUserProbeAddress;
+
 #define MM_HIGHEST_USER_ADDRESS           MmHighestUserAddress
 #define MM_SYSTEM_RANGE_START             MmSystemRangeStart
 #define MM_USER_PROBE_ADDRESS             MmUserProbeAddress
@@ -4137,7 +4141,6 @@ KeInvalidateRangeAllCaches(
 
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 
-
 NTKERNELAPI
 VOID
 NTAPI
@@ -4178,7 +4181,6 @@ KeBugCheck(
   IN ULONG BugCheckCode);
 
 
-
 #if defined(SINGLE_GROUP_LEGACY_API)
 
 
@@ -4210,15 +4212,17 @@ KeAreApcsDisabled(VOID);
 
 
 #if (NTDDI_VERSION >= NTDDI_WS03)
+
+
 NTKERNELAPI
 BOOLEAN
 NTAPI
 KeInvalidateAllCaches(VOID);
 
-
 #endif /* (NTDDI_VERSION >= NTDDI_WS03) */
 
 #if (NTDDI_VERSION >= NTDDI_WS03SP1)
+
 NTKERNELAPI
 NTSTATUS
 NTAPI
@@ -4242,6 +4246,7 @@ KeLeaveGuardedRegion(VOID);
 
 #if (NTDDI_VERSION >= NTDDI_VISTA)
 
+
 #if defined(SINGLE_GROUP_LEGACY_API)
 NTKERNELAPI
 ULONG
@@ -4254,7 +4259,7 @@ ULONG
 NTAPI
 KeQueryMaximumProcessorCount(VOID);
 
-#endif
+#endif /* SINGLE_GROUP_LEGACY_API */
 
 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
 
index 6c396e4..a8d34bc 100644 (file)
@@ -7923,9 +7923,6 @@ KeRaiseIrqlToSynchLevel(VOID)
   return KfRaiseIrql(12); // SYNCH_LEVEL = IPI_LEVEL - 2
 }
 
-#define KeAcquireSpinLock(SpinLock, OldIrql) \
-    *(OldIrql) = KeAcquireSpinLockRaiseToDpc(SpinLock)
-
 FORCEINLINE
 PKTHREAD
 KeGetCurrentThread(VOID)
@@ -7933,6 +7930,14 @@ KeGetCurrentThread(VOID)
   return (struct _KTHREAD *)__readgsqword(0x188);
 }
 
+/* VOID
+ * KeFlushIoBuffers(
+ *   IN PMDL Mdl,
+ *   IN BOOLEAN ReadOperation,
+ *   IN BOOLEAN DmaOperation)
+ */
+#define KeFlushIoBuffers(_Mdl, _ReadOperation, _DmaOperation)
+
 /* x86 and x64 performs a 0x2C interrupt */
 #define DbgRaiseAssertionFailure __int2c
 
@@ -9677,7 +9682,6 @@ KeClearEvent(
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 
-
 #if defined(_NTDDK_) || defined(_NTIFS_)
 NTKERNELAPI
 VOID
@@ -9726,7 +9730,6 @@ KeQueryActiveProcessors(VOID);
 #endif /* defined(SINGLE_GROUP_LEGACY_API) */
 
 #if !defined(_M_AMD64)
-
 NTKERNELAPI
 ULONGLONG
 NTAPI
@@ -9737,9 +9740,38 @@ VOID
 NTAPI
 KeQuerySystemTime(
   OUT PLARGE_INTEGER CurrentTime);
-
 #endif /* !_M_AMD64 */
 
+#if !defined(_X86_)
+NTKERNELAPI
+KIRQL
+NTAPI
+KeAcquireSpinLockRaiseToDpc(
+  IN OUT PKSPIN_LOCK SpinLock);
+
+#define KeAcquireSpinLock(SpinLock, OldIrql) \
+    *(OldIrql) = KeAcquireSpinLockRaiseToDpc(SpinLock)
+
+NTKERNELAPI
+VOID
+NTAPI
+KeAcquireSpinLockAtDpcLevel(
+  IN OUT PKSPIN_LOCK SpinLock);
+
+NTKERNELAPI
+VOID
+NTAPI
+KeReleaseSpinLock(
+  IN OUT PKSPIN_LOCK SpinLock,
+  IN KIRQL NewIrql);
+
+NTKERNELAPI
+VOID
+NTAPI
+KeReleaseSpinLockFromDpcLevel(
+  IN OUT PKSPIN_LOCK SpinLock);
+#endif /* !_X86_ */
+
 #if defined(_X86_) && (defined(_WDM_INCLUDED_) || defined(WIN9X_COMPAT_SPINLOCK))
 NTKERNELAPI
 VOID
@@ -10183,10 +10215,12 @@ FASTCALL
 KeTestSpinLock(
   IN PKSPIN_LOCK SpinLock);
 
+
 #endif /* (NTDDI_VERSION >= NTDDI_WS03) */
 
 #if (NTDDI_VERSION >= NTDDI_WS03SP1)
 
+
 NTKERNELAPI
 BOOLEAN
 FASTCALL
@@ -10247,6 +10281,7 @@ KeTryToAcquireGuardedMutex(
 #endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
 
 #if (NTDDI_VERSION >= NTDDI_VISTA)
+
 NTKERNELAPI
 VOID
 FASTCALL
@@ -10290,7 +10325,7 @@ NTKERNELAPI
 ULONG
 NTAPI
 KeQueryMaximumProcessorCount(VOID);
-#endif
+#endif /* SINGLE_GROUP_LEGACY_API */
 
 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
 
index 287eb2c..d744cd5 100644 (file)
@@ -93,9 +93,6 @@ KeRaiseIrqlToSynchLevel(VOID)
   return KfRaiseIrql(12); // SYNCH_LEVEL = IPI_LEVEL - 2
 }
 
-#define KeAcquireSpinLock(SpinLock, OldIrql) \
-    *(OldIrql) = KeAcquireSpinLockRaiseToDpc(SpinLock)
-
 FORCEINLINE
 PKTHREAD
 KeGetCurrentThread(VOID)
@@ -225,6 +222,9 @@ typedef struct DECLSPEC_ALIGN(16) _CONTEXT {
   ULONG64 LastExceptionFromRip;
 } CONTEXT;
 
+#define PCR_MINOR_VERSION 1
+#define PCR_MAJOR_VERSION 1
+
 typedef struct _KPCR
 {
     _ANONYMOUS_UNION union
index 3545941..2c390a1 100644 (file)
@@ -23,6 +23,10 @@ $if (_NTDDK_)
 #define PDE_TOP     0xFFFFF6FB7FFFFFFFULL
 #define PTE_TOP     0xFFFFF6FFFFFFFFFFULL
 
+extern NTKERNELAPI PVOID MmHighestUserAddress;
+extern NTKERNELAPI PVOID MmSystemRangeStart;
+extern NTKERNELAPI ULONG64 MmUserProbeAddress;
+
 #define MM_HIGHEST_USER_ADDRESS           MmHighestUserAddress
 #define MM_SYSTEM_RANGE_START             MmSystemRangeStart
 #define MM_USER_PROBE_ADDRESS             MmUserProbeAddress
index d9799f4..46a5387 100644 (file)
@@ -216,6 +216,8 @@ FASTCALL
 ExInterlockedFlushSList(
   IN OUT PSLIST_HEADER ListHead);
 
+#endif /* !defined(_WIN64) */
+
 #if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
 
 NTKERNELAPI
@@ -246,12 +248,14 @@ ExFreeToPagedLookasideList(
   IN OUT PPAGED_LOOKASIDE_LIST Lookaside,
   IN PVOID Entry);
 
-#else
+#else /* !_WIN2K_COMPAT_SLIST_USAGE */
 
+#if !defined(_WIN64)
 #define ExInterlockedPopEntrySList(_ListHead, _Lock) \
     InterlockedPopEntrySList(_ListHead)
 #define ExInterlockedPushEntrySList(_ListHead, _ListEntry, _Lock) \
     InterlockedPushEntrySList(_ListHead, _ListEntry)
+#endif
 
 static __inline
 PVOID
@@ -288,7 +292,6 @@ ExFreeToPagedLookasideList(
 
 #endif /* _WIN2K_COMPAT_SLIST_USAGE */
 
-#endif /* !defined(_WIN64) */
 
 /* ERESOURCE_THREAD
  * ExGetCurrentResourceThread(
index 040daf7..716ee87 100644 (file)
@@ -29,7 +29,6 @@ $endif
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 $if (_NTDDK_)
-
 NTKERNELAPI
 VOID
 NTAPI
@@ -68,11 +67,9 @@ VOID
 NTAPI
 KeBugCheck(
   IN ULONG BugCheckCode);
-
-$endif
+$endif /* _NTDDK_ */
 
 $if (_WDMDDK_)
-
 #if defined(_NTDDK_) || defined(_NTIFS_)
 NTKERNELAPI
 VOID
@@ -91,7 +88,7 @@ ProbeForWrite(
   IN SIZE_T Length,
   IN ULONG Alignment);
 
-$endif
+$endif /* _WDMDDK_ */
 
 #if defined(SINGLE_GROUP_LEGACY_API)
 
@@ -138,7 +135,6 @@ $endif
 
 $if (_WDMDDK_)
 #if !defined(_M_AMD64)
-
 NTKERNELAPI
 ULONGLONG
 NTAPI
@@ -149,9 +145,38 @@ VOID
 NTAPI
 KeQuerySystemTime(
   OUT PLARGE_INTEGER CurrentTime);
-
 #endif /* !_M_AMD64 */
 
+#if !defined(_X86_)
+NTKERNELAPI
+KIRQL
+NTAPI
+KeAcquireSpinLockRaiseToDpc(
+  IN OUT PKSPIN_LOCK SpinLock);
+
+#define KeAcquireSpinLock(SpinLock, OldIrql) \
+    *(OldIrql) = KeAcquireSpinLockRaiseToDpc(SpinLock)
+
+NTKERNELAPI
+VOID
+NTAPI
+KeAcquireSpinLockAtDpcLevel(
+  IN OUT PKSPIN_LOCK SpinLock);
+
+NTKERNELAPI
+VOID
+NTAPI
+KeReleaseSpinLock(
+  IN OUT PKSPIN_LOCK SpinLock,
+  IN KIRQL NewIrql);
+
+NTKERNELAPI
+VOID
+NTAPI
+KeReleaseSpinLockFromDpcLevel(
+  IN OUT PKSPIN_LOCK SpinLock);
+#endif /* !_X86_ */
+
 #if defined(_X86_) && (defined(_WDM_INCLUDED_) || defined(WIN9X_COMPAT_SPINLOCK))
 NTKERNELAPI
 VOID
@@ -555,15 +580,9 @@ VOID
 NTAPI
 KeFlushQueuedDpcs(VOID);
 #endif /* (NTDDI_VERSION >= NTDDI_WINXPSP2) */
-$endif
+$endif /* _WDMDDK_ */
 
 #if (NTDDI_VERSION >= NTDDI_WS03)
-$if (_NTDDK_)
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeInvalidateAllCaches(VOID);
-$endif
 
 $if (_WDMDDK_)
 NTKERNELAPI
@@ -612,11 +631,19 @@ BOOLEAN
 FASTCALL
 KeTestSpinLock(
   IN PKSPIN_LOCK SpinLock);
-$endif
+$endif /* _WDMDDK_ */
+
+$if (_NTDDK_)
+NTKERNELAPI
+BOOLEAN
+NTAPI
+KeInvalidateAllCaches(VOID);
+$endif /* _NTDDK_ */
 
 #endif /* (NTDDI_VERSION >= NTDDI_WS03) */
 
 #if (NTDDI_VERSION >= NTDDI_WS03SP1)
+
 $if (_NTDDK_)
 NTKERNELAPI
 NTSTATUS
@@ -635,7 +662,7 @@ NTKERNELAPI
 VOID
 NTAPI
 KeLeaveGuardedRegion(VOID);
-$endif
+$endif /* _NTDDK_ */
 
 $if (_WDMDDK_)
 NTKERNELAPI
@@ -694,11 +721,12 @@ BOOLEAN
 FASTCALL
 KeTryToAcquireGuardedMutex(
   IN OUT PKGUARDED_MUTEX GuardedMutex);
-$endif
+$endif /* _WDMDDK_ */
 
 #endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
 
 #if (NTDDI_VERSION >= NTDDI_VISTA)
+
 $if (_WDMDDK_)
 NTKERNELAPI
 VOID
@@ -718,7 +746,7 @@ NTSTATUS
 NTAPI
 KeQueryDpcWatchdogInformation(
   OUT PKDPC_WATCHDOG_INFORMATION WatchdogInformation);
-$endif
+$endif /* _WDMDDK_ */
 
 #if defined(SINGLE_GROUP_LEGACY_API)
 $if (_NTDDK_)
@@ -732,7 +760,7 @@ NTKERNELAPI
 ULONG
 NTAPI
 KeQueryMaximumProcessorCount(VOID);
-$endif
+$endif /* _NTDDK_ */
 
 $if (_WDMDDK_)
 NTKERNELAPI
@@ -757,8 +785,8 @@ NTKERNELAPI
 ULONG
 NTAPI
 KeQueryMaximumProcessorCount(VOID);
-$endif
-#endif
+$endif /* _WDMDDK_ */
+#endif /* SINGLE_GROUP_LEGACY_API */
 
 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
 
@@ -776,7 +804,7 @@ KeDeregisterProcessorChangeCallback(
   IN PVOID CallbackHandle);
 
 #endif /* (NTDDI_VERSION >= NTDDI_WS08) */
-$endif
+$endif /* _WDMDDK_ */
 
 #if (NTDDI_VERSION >= NTDDI_WIN7)
 
@@ -862,7 +890,7 @@ KeQueryHardwareCounterConfiguration(
   OUT PHARDWARE_COUNTER CounterArray,
   IN ULONG MaximumCount,
   OUT PULONG Count);
-$endif
+$endif /* _NTDDK_ */
 
 $if (_WDMDDK_)
 ULONG64