mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 15:53:03 +00:00
Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys.
This commit is contained in:
parent
b94e2d8ca0
commit
c2c66aff7d
24198 changed files with 0 additions and 37285 deletions
1090
sdk/include/ndk/arm/ketypes.h
Normal file
1090
sdk/include/ndk/arm/ketypes.h
Normal file
File diff suppressed because it is too large
Load diff
229
sdk/include/ndk/arm/mmtypes.h
Normal file
229
sdk/include/ndk/arm/mmtypes.h
Normal file
|
@ -0,0 +1,229 @@
|
|||
/*++ NDK Version: 0095
|
||||
|
||||
Copyright (c) Alex Ionescu. All rights reserved.
|
||||
|
||||
Header Name:
|
||||
|
||||
mmtypes.h (ARM)
|
||||
|
||||
Abstract:
|
||||
|
||||
ARM Type definitions for the Memory Manager
|
||||
|
||||
Author:
|
||||
|
||||
Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef _ARM_MMTYPES_H
|
||||
#define _ARM_MMTYPES_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
//
|
||||
// Dependencies
|
||||
//
|
||||
|
||||
//
|
||||
// Page-related Macros
|
||||
//
|
||||
#ifndef PAGE_SIZE
|
||||
#define PAGE_SIZE 0x1000
|
||||
#endif
|
||||
#define PAGE_SHIFT 12L
|
||||
#define MM_ALLOCATION_GRANULARITY 0x10000
|
||||
#define MM_ALLOCATION_GRANULARITY_SHIFT 16L
|
||||
#define MM_PAGE_FRAME_NUMBER_SIZE 20
|
||||
|
||||
//
|
||||
// User space range limit
|
||||
//
|
||||
#define MI_HIGHEST_USER_ADDRESS (PVOID)0x7FFEFFFF
|
||||
|
||||
//
|
||||
// Address of the shared user page
|
||||
//
|
||||
#define MM_SHARED_USER_DATA_VA 0x7FFE0000
|
||||
|
||||
//
|
||||
// Sanity checks for Paging Macros
|
||||
//
|
||||
#ifdef C_ASSERT
|
||||
C_ASSERT(PAGE_SIZE == (1 << PAGE_SHIFT));
|
||||
C_ASSERT(MM_ALLOCATION_GRANULARITY == (1 << MM_ALLOCATION_GRANULARITY_SHIFT));
|
||||
C_ASSERT(MM_ALLOCATION_GRANULARITY &&
|
||||
!(MM_ALLOCATION_GRANULARITY & (MM_ALLOCATION_GRANULARITY - 1)));
|
||||
C_ASSERT(MM_ALLOCATION_GRANULARITY >= PAGE_SIZE);
|
||||
#endif
|
||||
|
||||
//
|
||||
// Page Table Entry Definitions
|
||||
//
|
||||
typedef struct _HARDWARE_PDE_ARMV6
|
||||
{
|
||||
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
|
||||
{
|
||||
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 Sbo:1; // ULONG Accessed:1;?
|
||||
ULONG Owner:1;
|
||||
ULONG CacheAttributes:3;
|
||||
ULONG ReadOnly:1;
|
||||
ULONG Shared:1;
|
||||
ULONG NonGlobal:1;
|
||||
ULONG SuperLagePage:1;
|
||||
ULONG Reserved:1;
|
||||
ULONG PageFrameNumber:12;
|
||||
} HARDWARE_LARGE_PTE_ARMV6, *PHARDWARE_LARGE_PTE_ARMV6;
|
||||
|
||||
typedef struct _HARDWARE_PTE_ARMV6
|
||||
{
|
||||
ULONG NoExecute:1;
|
||||
ULONG Valid:1;
|
||||
ULONG Buffered:1;
|
||||
ULONG Cached:1;
|
||||
ULONG Sbo:1; // ULONG Accessed:1;?
|
||||
ULONG Owner:1;
|
||||
ULONG CacheAttributes:3;
|
||||
ULONG ReadOnly:1;
|
||||
ULONG Shared:1;
|
||||
ULONG NonGlobal:1;
|
||||
ULONG PageFrameNumber:20;
|
||||
} HARDWARE_PTE_ARMV6, *PHARDWARE_PTE_ARMV6;
|
||||
|
||||
C_ASSERT(sizeof(HARDWARE_PDE_ARMV6) == sizeof(ULONG));
|
||||
C_ASSERT(sizeof(HARDWARE_LARGE_PTE_ARMV6) == sizeof(ULONG));
|
||||
C_ASSERT(sizeof(HARDWARE_PTE_ARMV6) == sizeof(ULONG));
|
||||
|
||||
typedef struct _MMPTE_SOFTWARE
|
||||
{
|
||||
ULONG Valid:2;
|
||||
ULONG PageFileLow:4;
|
||||
ULONG Protection:4;
|
||||
ULONG Prototype:1;
|
||||
ULONG Transition:1;
|
||||
ULONG PageFileHigh:20;
|
||||
} MMPTE_SOFTWARE;
|
||||
|
||||
typedef struct _MMPTE_TRANSITION
|
||||
{
|
||||
ULONG Valid:2;
|
||||
ULONG Buffered:1;
|
||||
ULONG Cached:1;
|
||||
ULONG Owner:1;
|
||||
ULONG Protection:4;
|
||||
ULONG ReadOnly:1;
|
||||
ULONG Prototype:1;
|
||||
ULONG Transition:1;
|
||||
ULONG PageFrameNumber:20;
|
||||
} MMPTE_TRANSITION;
|
||||
|
||||
typedef struct _MMPTE_PROTOTYPE
|
||||
{
|
||||
ULONG Valid:2;
|
||||
ULONG ProtoAddressLow:7;
|
||||
ULONG ReadOnly:1;
|
||||
ULONG Prototype:1;
|
||||
ULONG ProtoAddressHigh:21;
|
||||
} MMPTE_PROTOTYPE;
|
||||
|
||||
typedef struct _MMPTE_SUBSECTION
|
||||
{
|
||||
ULONG Valid:2;
|
||||
ULONG SubsectionAddressLow:4;
|
||||
ULONG Protection:4;
|
||||
ULONG Prototype:1;
|
||||
ULONG SubsectionAddressHigh:20;
|
||||
ULONG WhichPool:1;
|
||||
} MMPTE_SUBSECTION;
|
||||
|
||||
typedef struct _MMPTE_LIST
|
||||
{
|
||||
ULONG Valid:2;
|
||||
ULONG OneEntry:1;
|
||||
ULONG filler0:8;
|
||||
ULONG NextEntry:20;
|
||||
ULONG Prototype:1;
|
||||
} MMPTE_LIST;
|
||||
|
||||
typedef struct _MMPTE_HARDWARE
|
||||
{
|
||||
ULONG NoExecute:1;
|
||||
ULONG Valid:1;
|
||||
ULONG Buffered:1;
|
||||
ULONG Cached:1;
|
||||
ULONG Sbo:1;
|
||||
ULONG Owner:1;
|
||||
ULONG CacheAttributes:3;
|
||||
ULONG ReadOnly:1;
|
||||
ULONG Prototype:1;
|
||||
ULONG NonGlobal:1;
|
||||
ULONG PageFrameNumber:20;
|
||||
} MMPTE_HARDWARE, *PMMPTE_HARDWARE;
|
||||
|
||||
|
||||
//
|
||||
// Use the right PTE structure
|
||||
//
|
||||
#define HARDWARE_PTE HARDWARE_PTE_ARMV6
|
||||
#define PHARDWARE_PTE PHARDWARE_PTE_ARMV6
|
||||
|
||||
typedef struct _MMPTE
|
||||
{
|
||||
union
|
||||
{
|
||||
ULONG_PTR Long;
|
||||
HARDWARE_PTE Flush;
|
||||
MMPTE_HARDWARE Hard;
|
||||
MMPTE_PROTOTYPE Proto;
|
||||
MMPTE_SOFTWARE Soft;
|
||||
MMPTE_TRANSITION Trans;
|
||||
MMPTE_SUBSECTION Subsect;
|
||||
MMPTE_LIST List;
|
||||
} u;
|
||||
} MMPTE, *PMMPTE;
|
||||
|
||||
typedef union _MMPDE_HARDWARE
|
||||
{
|
||||
ULONG Valid:1;
|
||||
ULONG LargePage:1;
|
||||
ULONG Buffered:1;
|
||||
ULONG Cached:1;
|
||||
ULONG NoExecute:1;
|
||||
ULONG Domain:4;
|
||||
ULONG Ecc:1;
|
||||
ULONG PageFrameNumber:22;
|
||||
} MMPDE_HARDWARE, *PMMPDE_HARDWARE;
|
||||
|
||||
typedef struct _MMPDE
|
||||
{
|
||||
union
|
||||
{
|
||||
MMPDE_HARDWARE Hard;
|
||||
ULONG Long;
|
||||
} u;
|
||||
} MMPDE, *PMMPDE;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; // extern "C"
|
||||
#endif
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue