mirror of
https://github.com/reactos/reactos.git
synced 2024-07-07 13:15:07 +00:00
[INCLUDE]
- Add missing KeMemoryBarrierWithoutFence, NUMBER_POOL_LOOKASIDE_LISTS, MM_SHARED_USER_DATA_VA, MM_EMPTY_PTE_LIST, MM_EMPTY_LIST, P*E_PER_PAGE, SESSION_POOL_LOOKASIDES, MiPdeToPte for ARM - Fix KI_USER_SHARED_DATA for ARM based on native DDK svn path=/trunk/; revision=67168
This commit is contained in:
parent
aec53ac1d0
commit
217f3f66f1
|
@ -8554,6 +8554,8 @@ KeRaiseIrqlToSynchLevel(VOID);
|
|||
|
||||
#elif defined(_M_ARM)
|
||||
#include <armddk.h>
|
||||
|
||||
#define KeMemoryBarrierWithoutFence() _ReadWriteBarrier()
|
||||
#else
|
||||
#error Unknown Architecture
|
||||
#endif
|
||||
|
|
|
@ -81,6 +81,11 @@ extern "C" {
|
|||
//
|
||||
#define KSEG0_BASE 0x80000000
|
||||
|
||||
//
|
||||
// Number of pool lookaside lists per pool in the PRCB
|
||||
//
|
||||
#define NUMBER_POOL_LOOKASIDE_LISTS 32
|
||||
|
||||
//
|
||||
// Trap Frame Definition
|
||||
//
|
||||
|
|
|
@ -43,6 +43,11 @@ extern "C" {
|
|||
//
|
||||
#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
|
||||
//
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
// FIXME: mmtypes.h?
|
||||
//
|
||||
#define KIP0PCRADDRESS 0xFFDFF000
|
||||
#define KI_USER_SHARED_DATA 0xFFDF0000
|
||||
#define KI_USER_SHARED_DATA 0xFFFF9000
|
||||
#define USPCR 0x7FFF0000
|
||||
#define PCR ((KPCR * const)KIP0PCRADDRESS)
|
||||
#define USERPCR ((volatile KPCR * const)USPCR)
|
||||
|
@ -246,7 +246,7 @@ extern volatile struct _KSYSTEM_TIME KeTickCount;
|
|||
|
||||
#define ASSERT_BREAKPOINT BREAKPOINT_COMMAND_STRING + 1
|
||||
|
||||
#define DbgRaiseAssertionFailure() __break(ASSERT_BREAKPOINT)
|
||||
#define DbgRaiseAssertionFailure() __emit(0xdefc)
|
||||
|
||||
#define PCR_MINOR_VERSION 1
|
||||
#define PCR_MAJOR_VERSION 1
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
$if (_WDMDDK_)
|
||||
#include <armddk.h>
|
||||
$endif
|
||||
|
||||
#define KeMemoryBarrierWithoutFence() _ReadWriteBarrier()
|
||||
|
|
|
@ -16,6 +16,10 @@
|
|||
#define CPT_SHIFT 10
|
||||
#define CPT_SIZE (1 << CPT_SHIFT)
|
||||
|
||||
/* MMPTE related defines */
|
||||
#define MM_EMPTY_PTE_LIST ((ULONG)0xFFFFF)
|
||||
#define MM_EMPTY_LIST ((ULONG_PTR)-1)
|
||||
|
||||
//
|
||||
// Base Addresses
|
||||
//
|
||||
|
@ -86,7 +90,7 @@ typedef struct _PAGE_TABLE_ARM
|
|||
|
||||
typedef struct _PAGE_DIRECTORY_ARM
|
||||
{
|
||||
union
|
||||
union
|
||||
{
|
||||
HARDWARE_PDE_ARMV6 Pde[4096];
|
||||
HARDWARE_LARGE_PTE_ARMV6 Pte[4096];
|
||||
|
@ -108,8 +112,8 @@ struct _EPROCESS;
|
|||
PULONG MmGetPageDirectory(VOID);
|
||||
|
||||
#define MI_MAKE_LOCAL_PAGE(x) ((x)->u.Hard.NonGlobal = 1)
|
||||
#define MI_MAKE_DIRTY_PAGE(x)
|
||||
#define MI_MAKE_ACCESSED_PAGE(x)
|
||||
#define MI_MAKE_DIRTY_PAGE(x)
|
||||
#define MI_MAKE_ACCESSED_PAGE(x)
|
||||
#define MI_MAKE_OWNER_PAGE(x) ((x)->u.Hard.Owner = 1)
|
||||
#define MI_MAKE_WRITE_PAGE(x) ((x)->u.Hard.ReadOnly = 0)
|
||||
#define MI_PAGE_DISABLE_CACHE(x) ((x)->u.Hard.Cached = 0)
|
||||
|
@ -144,7 +148,7 @@ PULONG MmGetPageDirectory(VOID);
|
|||
/* Retrives the PDE entry for the given VA */
|
||||
#define MiGetPdeAddress(x) ((PMMPDE)(PDE_BASE + (((ULONG)(x) >> 20) << 2)))
|
||||
#define MiAddressToPde(x) MiGetPdeAddress(x)
|
||||
|
||||
|
||||
/* Retrieves the PTE entry for the given VA */
|
||||
#define MiGetPteAddress(x) ((PMMPTE)(PTE_BASE + (((ULONG)(x) >> 12) << 2)))
|
||||
#define MiAddressToPte(x) MiGetPteAddress(x)
|
||||
|
@ -153,7 +157,7 @@ PULONG MmGetPageDirectory(VOID);
|
|||
#define MiGetPdeOffset(x) (((ULONG)(x)) >> 20)
|
||||
#define MiGetPteOffset(x) ((((ULONG)(x)) << 12) >> 24)
|
||||
#define MiAddressToPteOffset(x) MiGetPteOffset(x)
|
||||
|
||||
|
||||
/* Convert a PTE into a corresponding address */
|
||||
#define MiPteToAddress(x) ((PVOID)((ULONG)(x) << 10))
|
||||
#define MiPdeToAddress(x) ((PVOID)((ULONG)(x) << 18))
|
||||
|
@ -163,5 +167,5 @@ PULONG MmGetPageDirectory(VOID);
|
|||
|
||||
#define PAGE_TO_SECTION_PAGE_TABLE_OFFSET(x) \
|
||||
((((x)) % (4*1024*1024)) / (4*1024))
|
||||
|
||||
|
||||
#define MM_CACHE_LINE_SIZE 64
|
||||
|
|
|
@ -84,6 +84,9 @@ C_ASSERT(SYSTEM_PD_SIZE == PAGE_SIZE);
|
|||
#define MiIsPteOnPdeBoundary(PointerPte) \
|
||||
((((ULONG_PTR)PointerPte) & (PAGE_SIZE - 1)) == 0)
|
||||
#elif _M_ARM
|
||||
#define PPE_PER_PAGE 1
|
||||
#define PDE_PER_PAGE 4096
|
||||
#define PTE_PER_PAGE 256
|
||||
#define PD_COUNT 1
|
||||
#define PDE_COUNT 4096
|
||||
#define PTE_COUNT 256
|
||||
|
@ -311,6 +314,8 @@ extern const ULONG MmProtectToValue[32];
|
|||
#define SESSION_POOL_LOOKASIDES 21
|
||||
#elif defined(_M_IX86)
|
||||
#define SESSION_POOL_LOOKASIDES 26
|
||||
#elif defined(_M_ARM)
|
||||
#define SESSION_POOL_LOOKASIDES 26 // CHECKME
|
||||
#else
|
||||
#error Not Defined!
|
||||
#endif
|
||||
|
@ -380,6 +385,11 @@ extern const ULONG MmProtectToValue[32];
|
|||
#define POOL_BILLED_PROCESS_INVALID 13
|
||||
#define POOL_HEADER_SIZE_INVALID 32
|
||||
|
||||
#ifdef _M_ARM
|
||||
#define MiPdeToPte(PDE) ((PMMPTE)MiPteToAddress(PDE))
|
||||
#endif
|
||||
|
||||
|
||||
typedef struct _POOL_DESCRIPTOR
|
||||
{
|
||||
POOL_TYPE PoolType;
|
||||
|
|
Loading…
Reference in a new issue