mirror of
https://github.com/reactos/reactos.git
synced 2025-07-27 07:41:51 +00:00
[NDK]: Use new ARMv6 PTE structures.
svn path=/trunk/; revision=45516
This commit is contained in:
parent
92f6dfd7d4
commit
f44cf3f702
1 changed files with 56 additions and 125 deletions
|
@ -47,90 +47,56 @@ C_ASSERT(MM_ALLOCATION_GRANULARITY >= PAGE_SIZE);
|
||||||
//
|
//
|
||||||
// Page Table Entry Definitions
|
// Page Table Entry Definitions
|
||||||
//
|
//
|
||||||
typedef struct _HARDWARE_PTE_ARM
|
typedef struct _HARDWARE_PDE_ARMV6
|
||||||
{
|
{
|
||||||
union
|
ULONG Valid:1; // Only for small pages
|
||||||
|
ULONG LargePage:1; // Note, if large then Valid = 0
|
||||||
|
ULONG Buffered:1;
|
||||||
|
ULONG Cached:1;
|
||||||
|
ULONG NoExecute:1;
|
||||||
|
ULONG Domain:4;
|
||||||
|
ULONG Ecc:1;
|
||||||
|
ULONG PageFrameNumber:22;
|
||||||
|
} HARDWARE_PDE_ARMV6, *PHARDWARE_PDE_ARMV6;
|
||||||
|
|
||||||
|
typedef struct _HARDWARE_LARGE_PTE_ARMV6
|
||||||
{
|
{
|
||||||
union
|
ULONG Valid:1; // Only for small pages
|
||||||
{
|
ULONG LargePage:1; // Note, if large then Valid = 0
|
||||||
struct
|
ULONG Buffered:1;
|
||||||
{
|
ULONG Cached:1;
|
||||||
ULONG Type:2;
|
ULONG NoExecute:1;
|
||||||
ULONG Unused:30;
|
ULONG Domain:4;
|
||||||
} Fault;
|
ULONG Ecc:1;
|
||||||
struct
|
ULONG Accessed:1;
|
||||||
{
|
ULONG Owner:1;
|
||||||
ULONG Type:2;
|
ULONG CacheAttributes:3;
|
||||||
ULONG Ignored:2;
|
ULONG ReadOnly:1;
|
||||||
|
ULONG Shared:1;
|
||||||
|
ULONG NonGlobal:1;
|
||||||
|
ULONG SuperLagePage:1;
|
||||||
ULONG Reserved:1;
|
ULONG Reserved:1;
|
||||||
ULONG Domain:4;
|
ULONG PageFrameNumber:12;
|
||||||
ULONG Ignored1:1;
|
} HARDWARE_LARGE_PTE_ARMV6, *PHARDWARE_LARGE_PTE_ARMV6;
|
||||||
ULONG BaseAddress:22;
|
|
||||||
} Coarse;
|
typedef struct _HARDWARE_PTE_ARMV6
|
||||||
struct
|
|
||||||
{
|
{
|
||||||
ULONG Type:2;
|
ULONG NoExecute:1;
|
||||||
|
ULONG Valid:1;
|
||||||
ULONG Buffered:1;
|
ULONG Buffered:1;
|
||||||
ULONG Cached:1;
|
ULONG Cached:1;
|
||||||
ULONG Reserved:1;
|
ULONG Accessed:1;
|
||||||
ULONG Domain:4;
|
ULONG Owner:1;
|
||||||
ULONG Ignored:1;
|
ULONG CacheAttributes:3;
|
||||||
ULONG Access:2;
|
ULONG ReadOnly:1;
|
||||||
ULONG Ignored1:8;
|
ULONG Shared:1;
|
||||||
ULONG BaseAddress:12;
|
ULONG NonGlobal:1;
|
||||||
} Section;
|
ULONG PageFrameNumber:20;
|
||||||
struct
|
} HARDWARE_PTE_ARMV6, *PHARDWARE_PTE_ARMV6;
|
||||||
{
|
|
||||||
ULONG Type:2;
|
C_ASSERT(sizeof(HARDWARE_PDE_ARMV6) == sizeof(ULONG));
|
||||||
ULONG Reserved:3;
|
C_ASSERT(sizeof(HARDWARE_LARGE_PTE_ARMV6) == sizeof(ULONG));
|
||||||
ULONG Domain:4;
|
C_ASSERT(sizeof(HARDWARE_PTE_ARMV6) == sizeof(ULONG));
|
||||||
ULONG Ignored:3;
|
|
||||||
ULONG BaseAddress:20;
|
|
||||||
} Fine;
|
|
||||||
} L1;
|
|
||||||
union
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
ULONG Type:2;
|
|
||||||
ULONG Unused:30;
|
|
||||||
} Fault;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
ULONG Type:2;
|
|
||||||
ULONG Buffered:1;
|
|
||||||
ULONG Cached:1;
|
|
||||||
ULONG Access0:2;
|
|
||||||
ULONG Access1:2;
|
|
||||||
ULONG Access2:2;
|
|
||||||
ULONG Access3:2;
|
|
||||||
ULONG Ignored:4;
|
|
||||||
ULONG BaseAddress:16;
|
|
||||||
} Large;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
ULONG Type:2;
|
|
||||||
ULONG Buffered:1;
|
|
||||||
ULONG Cached:1;
|
|
||||||
ULONG Access0:2;
|
|
||||||
ULONG Access1:2;
|
|
||||||
ULONG Access2:2;
|
|
||||||
ULONG Access3:2;
|
|
||||||
ULONG BaseAddress:20;
|
|
||||||
} Small;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
ULONG Type:2;
|
|
||||||
ULONG Buffered:1;
|
|
||||||
ULONG Cached:1;
|
|
||||||
ULONG Access0:2;
|
|
||||||
ULONG Ignored:4;
|
|
||||||
ULONG BaseAddress:22;
|
|
||||||
} Tiny;
|
|
||||||
} L2;
|
|
||||||
ULONG AsUlong;
|
|
||||||
};
|
|
||||||
} HARDWARE_PTE_ARM, *PHARDWARE_PTE_ARM;
|
|
||||||
|
|
||||||
typedef struct _MMPTE_SOFTWARE
|
typedef struct _MMPTE_SOFTWARE
|
||||||
{
|
{
|
||||||
|
@ -185,53 +151,18 @@ typedef struct _MMPTE_LIST
|
||||||
ULONG filler1:1;
|
ULONG filler1:1;
|
||||||
} MMPTE_LIST;
|
} MMPTE_LIST;
|
||||||
|
|
||||||
typedef struct _MMPDE_HARDWARE // FIXFIX: Find a way to make this more portable
|
|
||||||
{
|
|
||||||
union
|
|
||||||
{
|
|
||||||
union
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
ULONG Valid:1;
|
|
||||||
ULONG Section:1;
|
|
||||||
ULONG Sbz:3;
|
|
||||||
ULONG Domain:4;
|
|
||||||
ULONG EccEnabled:1;
|
|
||||||
ULONG PageFrameNumber:22;
|
|
||||||
} Coarse;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
ULONG Coarse:1;
|
|
||||||
ULONG Valid:1;
|
|
||||||
ULONG Buffered:1;
|
|
||||||
ULONG Cached:1;
|
|
||||||
ULONG Reserved:1;
|
|
||||||
ULONG Domain:4;
|
|
||||||
ULONG EccEnabled:1;
|
|
||||||
ULONG Access:2;
|
|
||||||
ULONG ExtendedAccess:3;
|
|
||||||
ULONG Sbz:3;
|
|
||||||
ULONG SuperSection:1;
|
|
||||||
ULONG Sbz1:1;
|
|
||||||
ULONG PageFrameNumber:12;
|
|
||||||
} Section;
|
|
||||||
ULONG AsUlong;
|
|
||||||
} Hard;
|
|
||||||
} u;
|
|
||||||
} MMPDE_HARDWARE, *PMMPDE_HARDWARE;
|
|
||||||
|
|
||||||
typedef union _MMPTE_HARDWARE
|
typedef union _MMPTE_HARDWARE
|
||||||
{
|
{
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
ULONG ExecuteNever:1;
|
ULONG NoExecute:1;
|
||||||
ULONG Valid:1;
|
ULONG Valid:1;
|
||||||
ULONG Buffered:1;
|
ULONG Buffered:1;
|
||||||
ULONG Cached:1;
|
ULONG Cached:1;
|
||||||
ULONG Access:2;
|
ULONG Access:1;
|
||||||
ULONG TypeExtension:3;
|
ULONG Owner:1;
|
||||||
ULONG ExtendedAccess:1;
|
ULONG CacheAttributes:3;
|
||||||
|
ULONG ReadOnly:1;
|
||||||
ULONG Shared:1;
|
ULONG Shared:1;
|
||||||
ULONG NonGlobal:1;
|
ULONG NonGlobal:1;
|
||||||
ULONG PageFrameNumber:20;
|
ULONG PageFrameNumber:20;
|
||||||
|
@ -242,7 +173,7 @@ typedef union _MMPTE_HARDWARE
|
||||||
//
|
//
|
||||||
// Use the right PTE structure
|
// Use the right PTE structure
|
||||||
//
|
//
|
||||||
#define HARDWARE_PTE HARDWARE_PTE_ARM
|
#define HARDWARE_PTE HARDWARE_PTE_ARMV6
|
||||||
#define PHARDWARE_PTE PHARDWARE_PTE_ARM
|
#define PHARDWARE_PTE PHARDWARE_PTE_ARMV6
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue