diff options
Diffstat (limited to 'private/ntos/mm/ppc/datappc.c')
-rw-r--r-- | private/ntos/mm/ppc/datappc.c | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/private/ntos/mm/ppc/datappc.c b/private/ntos/mm/ppc/datappc.c new file mode 100644 index 000000000..bc7946fc5 --- /dev/null +++ b/private/ntos/mm/ppc/datappc.c @@ -0,0 +1,136 @@ +/*++ + +Copyright (c) 1990 Microsoft Corporation +Copyright (c) 1993 IBM Corporation + +Module Name: + + datappc.c + +Abstract: + + This module contains the private hardware specific global storage for + the memory management subsystem. + +Author: + + Lou Perazzoli (loup) 27-Mar-1990 + + Modified for PowerPC by Mark Mergen (mergen@watson.ibm.com) 6-Oct-93 + +Revision History: + +--*/ + +#include "mi.h" + +// +// A zero Pte. +// + +MMPTE ZeroPte = { 0 }; + + +// +// A kernel zero PTE. +// + +MMPTE ZeroKernelPte = { 0 }; + + +MMPTE ValidKernelPte = { MM_PTE_VALID_MASK | + MM_PTE_WRITE_MASK }; + + +MMPTE ValidUserPte = { MM_PTE_VALID_MASK | + MM_PTE_WRITE_MASK }; + + +MMPTE ValidPtePte = { MM_PTE_VALID_MASK | + MM_PTE_WRITE_MASK }; + + +MMPTE ValidPdePde = { MM_PTE_VALID_MASK | + MM_PTE_WRITE_MASK }; + + +MMPTE ValidKernelPde = { MM_PTE_VALID_MASK | + MM_PTE_WRITE_MASK }; + + +MMPTE DemandZeroPde = { MM_READWRITE << 3 }; + + +MMPTE DemandZeroPte = { MM_READWRITE << 3 }; + + +MMPTE TransitionPde = { MM_PTE_TRANSITION_MASK | (MM_READWRITE << 3) }; + + +MMPTE PrototypePte = { 0xFFFFF000 | (MM_READWRITE << 3) | MM_PTE_PROTOTYPE_MASK }; + + +// +// PTE which generates an access violation when referenced. +// + +MMPTE NoAccessPte = {MM_NOACCESS << 3}; + + +// +// Pool start and end. +// + +PVOID MmNonPagedPoolStart; + +PVOID MmNonPagedPoolEnd = ((PVOID)MM_NONPAGED_POOL_END); + +PVOID MmPagedPoolStart = ((PVOID)MM_PAGED_POOL_START); + +PVOID MmPagedPoolEnd; + +#if MM_MAXIMUM_NUMBER_OF_COLORS > 1 +MMPFNLIST MmFreePagesByPrimaryColor[2][MM_MAXIMUM_NUMBER_OF_COLORS]; + +MMPFNLIST MmStandbyPageListByColor[MM_MAXIMUM_NUMBER_OF_COLORS] = { + 0, StandbyPageList, MM_EMPTY_LIST, MM_EMPTY_LIST, + 0, StandbyPageList, MM_EMPTY_LIST, MM_EMPTY_LIST + }; + + +#endif + +PMMCOLOR_TABLES MmFreePagesByColor[2]; + + +// +// Color tables for modified pages destined for the paging file. +// + +MMPFNLIST MmModifiedPageListByColor[MM_MAXIMUM_NUMBER_OF_COLORS] = { + 0, ModifiedPageList, MM_EMPTY_LIST, MM_EMPTY_LIST, + 0, ModifiedPageList, MM_EMPTY_LIST, MM_EMPTY_LIST}; + +ULONG MmSecondaryColorMask; + +// +// Count of the number of modified pages destined for the paging file. +// + +ULONG MmTotalPagesForPagingFile = 0; + +// +// PTE reserved for mapping physical data for debugger. +// Use 1 page from last 4MB of virtual address space +// reserved for the HAL. +// + +PMMPTE MmDebugPte = (MiGetPteAddress((PVOID)MM_HAL_RESERVED)); + + +// +// 16 PTEs reserved for mapping MDLs (64k max). +// + +PMMPTE MmCrashDumpPte = (MiGetPteAddress((PVOID)MM_HAL_RESERVED)); + |