mirror of
https://github.com/reactos/reactos.git
synced 2024-08-01 09:01:13 +00:00
NDK: update 64bit mm structures, based on win2003 and vista symbol files
svn path=/branches/ros-amd64-bringup/; revision=35347
This commit is contained in:
parent
794e8ef987
commit
a0b08b14c8
|
@ -14,7 +14,7 @@ Abstract:
|
||||||
Author:
|
Author:
|
||||||
|
|
||||||
Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004
|
Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004
|
||||||
Timo Kreuzer (timo.kreuzer@reactos.com) 29-Jul-2008
|
Timo Kreuzer (timo.kreuzer@reactos.com) 15-Aug-2008
|
||||||
|
|
||||||
--*/
|
--*/
|
||||||
|
|
||||||
|
@ -47,109 +47,169 @@ C_ASSERT(MM_ALLOCATION_GRANULARITY >= PAGE_SIZE);
|
||||||
//
|
//
|
||||||
// Page Table Entry Definitions
|
// Page Table Entry Definitions
|
||||||
//
|
//
|
||||||
typedef struct _HARDWARE_PTE_AMD64
|
typedef struct _HARDWARE_PTE
|
||||||
{
|
{
|
||||||
ULONGLONG Valid:1;
|
ULONG64 Valid:1;
|
||||||
ULONGLONG Write:1;
|
ULONG64 Write:1;
|
||||||
ULONGLONG Owner:1;
|
ULONG64 Owner:1;
|
||||||
ULONGLONG WriteThrough:1;
|
ULONG64 WriteThrough:1;
|
||||||
ULONGLONG CacheDisable:1;
|
ULONG64 CacheDisable:1;
|
||||||
ULONGLONG Accessed:1;
|
ULONG64 Accessed:1;
|
||||||
ULONGLONG Dirty:1;
|
ULONG64 Dirty:1;
|
||||||
ULONGLONG LargePage:1;
|
ULONG64 LargePage:1;
|
||||||
ULONGLONG Global:1;
|
ULONG64 Global:1;
|
||||||
ULONGLONG CopyOnWrite:1;
|
ULONG64 CopyOnWrite:1;
|
||||||
ULONGLONG Prototype: 1;
|
ULONG64 Prototype:1;
|
||||||
ULONGLONG reserved1: 1;
|
ULONG64 reserved0:1;
|
||||||
ULONGLONG PageFrameNumber:40;
|
ULONG64 PageFrameNumber:28;
|
||||||
ULONGLONG reserved2:11;
|
ULONG64 reserved1:12;
|
||||||
ULONGLONG NoExecute:1;
|
ULONG64 SoftwareWsIndex:11;
|
||||||
} HARDWARE_PTE_AMD64, *PHARDWARE_PTE_AMD64;
|
ULONG64 NoExecute:1;
|
||||||
|
} HARDWARE_PTE, *PHARDWARE_PTE;
|
||||||
|
|
||||||
typedef struct _MMPTE_SOFTWARE
|
typedef struct _MMPTE_SOFTWARE
|
||||||
{
|
{
|
||||||
ULONG Valid:1;
|
ULONG64 Valid:1;
|
||||||
ULONG PageFileLow:4;
|
ULONG64 PageFileLow:4;
|
||||||
ULONG Protection:5;
|
ULONG64 Protection:5;
|
||||||
ULONG Prototype:1;
|
ULONG64 Prototype:1;
|
||||||
ULONG Transition:1;
|
ULONG64 Transition:1;
|
||||||
ULONG PageFileHigh:20;
|
ULONG64 UsedPageTableEntries:10;
|
||||||
} MMPTE_SOFTWARE;
|
ULONG64 Reserved:10;
|
||||||
|
ULONG64 PageFileHigh:32;
|
||||||
|
} MMPTE_SOFTWARE, *PMMPTE_SOFTWARE;
|
||||||
|
|
||||||
typedef struct _MMPTE_TRANSITION
|
typedef struct _MMPTE_TRANSITION
|
||||||
{
|
{
|
||||||
ULONG Valid:1;
|
ULONG64 Valid:1;
|
||||||
ULONG Write:1;
|
ULONG64 Write:1;
|
||||||
ULONG Owner:1;
|
ULONG64 Owner:1;
|
||||||
ULONG WriteThrough:1;
|
ULONG64 WriteThrough:1;
|
||||||
ULONG CacheDisable:1;
|
ULONG64 CacheDisable:1;
|
||||||
ULONG Protection:5;
|
ULONG64 Protection:5;
|
||||||
ULONG Prototype:1;
|
ULONG64 Prototype:1;
|
||||||
ULONG Transition:1;
|
ULONG64 Transition:1;
|
||||||
ULONG PageFrameNumber:20;
|
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
|
||||||
|
ULONG64 PageFrameNumber:36;
|
||||||
|
ULONG64 Unused:16;
|
||||||
|
#else
|
||||||
|
ULONG64 PageFrameNumber:28;
|
||||||
|
ULONG64 Unused:24;
|
||||||
|
#endif
|
||||||
} MMPTE_TRANSITION;
|
} MMPTE_TRANSITION;
|
||||||
|
|
||||||
typedef struct _MMPTE_PROTOTYPE
|
typedef struct _MMPTE_PROTOTYPE
|
||||||
{
|
{
|
||||||
ULONG Valid:1;
|
ULONG64 Valid:1;
|
||||||
ULONG ProtoAddressLow:7;
|
ULONG64 Unused0:7;
|
||||||
ULONG ReadOnly:1;
|
ULONG64 ReadOnly:1;
|
||||||
ULONG WhichPool:1;
|
ULONG64 Unused1:1;
|
||||||
ULONG Prototype:1;
|
ULONG64 Prototype:1;
|
||||||
ULONG ProtoAddressHigh:21;
|
ULONG64 Protection:5;
|
||||||
|
LONG64 ProtoAddress:48;
|
||||||
} MMPTE_PROTOTYPE;
|
} MMPTE_PROTOTYPE;
|
||||||
|
|
||||||
typedef struct _MMPTE_SUBSECTION
|
typedef struct _MMPTE_SUBSECTION
|
||||||
{
|
{
|
||||||
ULONG Valid:1;
|
ULONG64 Valid:1;
|
||||||
ULONG SubsectionAddressLow:4;
|
ULONG64 Unused0:4;
|
||||||
ULONG Protection:5;
|
ULONG64 Protection:5;
|
||||||
ULONG Prototype:1;
|
ULONG64 Prototype:1;
|
||||||
ULONG SubsectionAddressHigh:20;
|
ULONG64 Unused1:5;
|
||||||
ULONG WhichPool:1;
|
LONG64 SubsectionAddress:48;
|
||||||
} MMPTE_SUBSECTION;
|
} MMPTE_SUBSECTION;
|
||||||
|
|
||||||
typedef struct _MMPTE_LIST
|
typedef struct _MMPTE_LIST
|
||||||
{
|
{
|
||||||
ULONG Valid:1;
|
ULONG64 Valid:1;
|
||||||
ULONG OneEntry:1;
|
ULONG64 OneEntry:1;
|
||||||
ULONG filler0:8;
|
ULONG64 filler0:3;
|
||||||
ULONG NextEntry:20;
|
ULONG64 Protection:5;
|
||||||
ULONG Prototype:1;
|
ULONG64 Prototype:1;
|
||||||
ULONG filler1:1;
|
ULONG64 Transition:1;
|
||||||
|
ULONG64 filler1:20;
|
||||||
|
ULONG64 NextEntry:32;
|
||||||
} MMPTE_LIST;
|
} MMPTE_LIST;
|
||||||
|
|
||||||
#ifndef CONFIG_SMP
|
#ifndef CONFIG_SMP
|
||||||
|
|
||||||
typedef struct _MMPTE_HARDWARE
|
typedef struct _MMPTE_HARDWARE
|
||||||
{
|
{
|
||||||
ULONGLONG Valid:1;
|
ULONG64 Valid:1;
|
||||||
ULONGLONG Write:1;
|
ULONG64 Write:1;
|
||||||
ULONGLONG Owner:1;
|
ULONG64 Owner:1;
|
||||||
ULONGLONG WriteThrough:1;
|
ULONG64 WriteThrough:1;
|
||||||
ULONGLONG CacheDisable:1;
|
ULONG64 CacheDisable:1;
|
||||||
ULONGLONG Accessed:1;
|
ULONG64 Accessed:1;
|
||||||
ULONGLONG Dirty:1;
|
ULONG64 Dirty:1;
|
||||||
ULONGLONG LargePage:1;
|
ULONG64 LargePage:1;
|
||||||
ULONGLONG Global:1;
|
ULONG64 Global:1;
|
||||||
ULONGLONG CopyOnWrite:1;
|
ULONG64 CopyOnWrite:1;
|
||||||
ULONGLONG Prototype: 1;
|
ULONG64 Prototype:1;
|
||||||
ULONGLONG reserved1: 1;
|
ULONG64 reserved0:1;
|
||||||
ULONGLONG PageFrameNumber:40;
|
ULONG64 PageFrameNumber:28;
|
||||||
ULONGLONG reserved2:11;
|
ULONG64 reserved1:12;
|
||||||
ULONGLONG NoExecute:1;
|
ULONG64 SoftwareWsIndex:11;
|
||||||
|
ULONG64 NoExecute:1;
|
||||||
} MMPTE_HARDWARE, *PMMPTE_HARDWARE;
|
} MMPTE_HARDWARE, *PMMPTE_HARDWARE;
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#error MMPTE_HARDWARE undeclared
|
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
|
#endif
|
||||||
|
|
||||||
//
|
typedef struct _MMPTE_HARDWARE_LARGEPAGE
|
||||||
// Use the right PTE structure
|
{
|
||||||
//
|
ULONG64 Valid:1;
|
||||||
#define HARDWARE_PTE HARDWARE_PTE_AMD64
|
ULONG64 Write:1;
|
||||||
#define PHARDWARE_PTE PHARDWARE_PTE_AMD64
|
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
|
#endif
|
||||||
|
} MMPTE_HARDWARE_LARGEPAGE, *PMMPTE_HARDWARE_LARGEPAGE;
|
||||||
|
|
||||||
|
|
||||||
|
#endif // !AMD64_MMTYPES_H
|
||||||
|
|
Loading…
Reference in a new issue