[ros-diffs] [tkreuzer] 35347: NDK: update 64bit mm structures, based on win2003 and vista symbol files

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Fri Aug 15 00:58:22 CEST 2008


Author: tkreuzer
Date: Thu Aug 14 17:58:22 2008
New Revision: 35347

URL: http://svn.reactos.org/svn/reactos?rev=35347&view=rev
Log:
NDK: update 64bit mm structures, based on win2003 and vista symbol files

Modified:
    branches/ros-amd64-bringup/reactos/include/ndk/amd64/mmtypes.h

Modified: branches/ros-amd64-bringup/reactos/include/ndk/amd64/mmtypes.h
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/include/ndk/amd64/mmtypes.h?rev=35347&r1=35346&r2=35347&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/include/ndk/amd64/mmtypes.h [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/include/ndk/amd64/mmtypes.h [iso-8859-1] Thu Aug 14 17:58:22 2008
@@ -14,7 +14,7 @@
 Author:
 
     Alex Ionescu (alex.ionescu at reactos.com)   06-Oct-2004
-    Timo Kreuzer (timo.kreuzer at reactos.com)   29-Jul-2008
+    Timo Kreuzer (timo.kreuzer at reactos.com)   15-Aug-2008
 
 --*/
 
@@ -47,109 +47,169 @@
 //
 // Page Table Entry Definitions
 //
-typedef struct _HARDWARE_PTE_AMD64
-{
-    ULONGLONG Valid:1;
-    ULONGLONG Write:1;
-    ULONGLONG Owner:1;
-    ULONGLONG WriteThrough:1;
-    ULONGLONG CacheDisable:1;
-    ULONGLONG Accessed:1;
-    ULONGLONG Dirty:1;
-    ULONGLONG LargePage:1;
-    ULONGLONG Global:1;
-    ULONGLONG CopyOnWrite:1;
-    ULONGLONG Prototype: 1;
-    ULONGLONG reserved1: 1;
-    ULONGLONG PageFrameNumber:40;
-    ULONGLONG reserved2:11;
-    ULONGLONG NoExecute:1;
-} HARDWARE_PTE_AMD64, *PHARDWARE_PTE_AMD64;
+typedef struct _HARDWARE_PTE
+{
+   ULONG64 Valid:1;
+   ULONG64 Write:1;
+   ULONG64 Owner:1;
+   ULONG64 WriteThrough:1;
+   ULONG64 CacheDisable:1;
+   ULONG64 Accessed:1;
+   ULONG64 Dirty:1;
+   ULONG64 LargePage:1;
+   ULONG64 Global:1;
+   ULONG64 CopyOnWrite:1;
+   ULONG64 Prototype:1;
+   ULONG64 reserved0:1;
+   ULONG64 PageFrameNumber:28;
+   ULONG64 reserved1:12;
+   ULONG64 SoftwareWsIndex:11;
+   ULONG64 NoExecute:1;
+} HARDWARE_PTE, *PHARDWARE_PTE;
 
 typedef struct _MMPTE_SOFTWARE
 {
-    ULONG Valid:1;
-    ULONG PageFileLow:4;
-    ULONG Protection:5;
-    ULONG Prototype:1;
-    ULONG Transition:1;
-    ULONG PageFileHigh:20;
-} MMPTE_SOFTWARE;
+    ULONG64 Valid:1;
+    ULONG64 PageFileLow:4;
+    ULONG64 Protection:5;
+    ULONG64 Prototype:1;
+    ULONG64 Transition:1;
+    ULONG64 UsedPageTableEntries:10;
+    ULONG64 Reserved:10;
+    ULONG64 PageFileHigh:32;
+} MMPTE_SOFTWARE, *PMMPTE_SOFTWARE;
 
 typedef struct _MMPTE_TRANSITION
 {
-    ULONG Valid:1;
-    ULONG Write:1;
-    ULONG Owner:1;
-    ULONG WriteThrough:1;
-    ULONG CacheDisable:1;
-    ULONG Protection:5;
-    ULONG Prototype:1;
-    ULONG Transition:1;
-    ULONG PageFrameNumber:20;
+    ULONG64 Valid:1;
+    ULONG64 Write:1;
+    ULONG64 Owner:1;
+    ULONG64 WriteThrough:1;
+    ULONG64 CacheDisable:1;
+    ULONG64 Protection:5;
+    ULONG64 Prototype:1;
+    ULONG64 Transition:1;
+#if (NTDDI_VERSION >= NTDDI_LONGHORN)
+    ULONG64 PageFrameNumber:36;
+    ULONG64 Unused:16;
+#else
+    ULONG64 PageFrameNumber:28;
+    ULONG64 Unused:24;
+#endif
 } MMPTE_TRANSITION;
 
 typedef struct _MMPTE_PROTOTYPE
 {
-    ULONG Valid:1;
-    ULONG ProtoAddressLow:7;
-    ULONG ReadOnly:1;
-    ULONG WhichPool:1;
-    ULONG Prototype:1;
-    ULONG ProtoAddressHigh:21;
+    ULONG64 Valid:1;
+    ULONG64 Unused0:7;
+    ULONG64 ReadOnly:1;
+    ULONG64 Unused1:1;
+    ULONG64 Prototype:1;
+    ULONG64 Protection:5;
+    LONG64 ProtoAddress:48;
 } MMPTE_PROTOTYPE;
 
 typedef struct _MMPTE_SUBSECTION
 {
-    ULONG Valid:1;
-    ULONG SubsectionAddressLow:4;
-    ULONG Protection:5;
-    ULONG Prototype:1;
-    ULONG SubsectionAddressHigh:20;
-    ULONG WhichPool:1;
+    ULONG64 Valid:1;
+    ULONG64 Unused0:4;
+    ULONG64 Protection:5;
+    ULONG64 Prototype:1;
+    ULONG64 Unused1:5;
+    LONG64 SubsectionAddress:48;
 } MMPTE_SUBSECTION;
 
 typedef struct _MMPTE_LIST
 {
-    ULONG Valid:1;
-    ULONG OneEntry:1;
-    ULONG filler0:8;
-    ULONG NextEntry:20;
-    ULONG Prototype:1;
-    ULONG filler1:1;
+    ULONG64 Valid:1;
+    ULONG64 OneEntry:1;
+    ULONG64 filler0:3;
+    ULONG64 Protection:5;
+    ULONG64 Prototype:1;
+    ULONG64 Transition:1;
+    ULONG64 filler1:20;
+    ULONG64 NextEntry:32;
 } MMPTE_LIST;
 
 #ifndef CONFIG_SMP
 
 typedef struct _MMPTE_HARDWARE
 {
-    ULONGLONG Valid:1;
-    ULONGLONG Write:1;
-    ULONGLONG Owner:1;
-    ULONGLONG WriteThrough:1;
-    ULONGLONG CacheDisable:1;
-    ULONGLONG Accessed:1;
-    ULONGLONG Dirty:1;
-    ULONGLONG LargePage:1;
-    ULONGLONG Global:1;
-    ULONGLONG CopyOnWrite:1;
-    ULONGLONG Prototype: 1;
-    ULONGLONG reserved1: 1;
-    ULONGLONG PageFrameNumber:40;
-    ULONGLONG reserved2:11;
-    ULONGLONG NoExecute:1;
+    ULONG64 Valid:1;
+    ULONG64 Write:1;
+    ULONG64 Owner:1;
+    ULONG64 WriteThrough:1;
+    ULONG64 CacheDisable:1;
+    ULONG64 Accessed:1;
+    ULONG64 Dirty:1;
+    ULONG64 LargePage:1;
+    ULONG64 Global:1;
+    ULONG64 CopyOnWrite:1;
+    ULONG64 Prototype:1;
+    ULONG64 reserved0:1;
+    ULONG64 PageFrameNumber:28;
+    ULONG64 reserved1:12;
+    ULONG64 SoftwareWsIndex:11;
+    ULONG64 NoExecute:1;
 } MMPTE_HARDWARE, *PMMPTE_HARDWARE;
 
 #else
 
-#error MMPTE_HARDWARE undeclared
-
-#endif
-
-//
-// Use the right PTE structure
-//
-#define HARDWARE_PTE        HARDWARE_PTE_AMD64
-#define PHARDWARE_PTE       PHARDWARE_PTE_AMD64
-
-#endif
+typedef struct _MMPTE_HARDWARE
+{
+    ULONG64 Valid:1;
+#if (NTDDI_VERSION >= NTDDI_LONGHORN)
+    ULONG64 Dirty1:1;
+#else
+    ULONG64 Writable:1;
+#endif
+    ULONG64 Owner:1;
+    ULONG64 WriteThrough:1;
+    ULONG64 CacheDisable:1;
+    ULONG64 Accessed:1;
+    ULONG64 Dirty:1;
+    ULONG64 LargePage:1;
+    ULONG64 Global:1;
+    ULONG64 CopyOnWrite:1;
+    ULONG64 Prototype:1;
+    ULONG64 Write:1;
+#if (NTDDI_VERSION >= NTDDI_LONGHORN)
+    ULONG64 PageFrameNumber:36;
+    ULONG64 reserved1:4;
+#else
+    ULONG64 PageFrameNumber:28;
+    ULONG64 reserved1:12;
+#endif
+    ULONG64 SoftwareWsIndex:11;
+    ULONG64 NoExecute:1;
+} MMPTE_HARDWARE, *PMMPTE_HARDWARE;
+
+#endif
+
+typedef struct _MMPTE_HARDWARE_LARGEPAGE
+{
+    ULONG64 Valid:1;
+    ULONG64 Write:1;
+    ULONG64 Owner:1;
+    ULONG64 WriteThrough:1;
+    ULONG64 CacheDisable:1;
+    ULONG64 Accessed:1;
+    ULONG64 Dirty:1;
+    ULONG64 LargePage:1;
+    ULONG64 Global:1;
+    ULONG64 CopyOnWrite:1;
+    ULONG64 Prototype:1;
+    ULONG64 reserved0:1;
+    ULONG64 PAT:1;
+    ULONG64 reserved1:8;
+#if (NTDDI_VERSION >= NTDDI_LONGHORN)
+    ULONG64 PageFrameNumber:27;
+    ULONG64 reserved2:16;
+#else
+    ULONG64 PageFrameNumber:19;
+    ULONG64 reserved2:24;
+#endif
+} MMPTE_HARDWARE_LARGEPAGE, *PMMPTE_HARDWARE_LARGEPAGE;
+
+
+#endif // !AMD64_MMTYPES_H



More information about the Ros-diffs mailing list