ReactOS 0.4.15-dev-7958-gcd0bb1a
mm.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define _MI_PAGING_LEVELS   2
 
#define _MI_HAS_NO_EXECUTE   0
 
#define MI_USER_PROBE_ADDRESS   (PVOID)0x7FFF0000
 
#define MI_DEFAULT_SYSTEM_RANGE_START   (PVOID)0x80000000
 
#define HYPER_SPACE   0xC0400000
 
#define HYPER_SPACE_END   0xC07FFFFF
 
#define MI_SYSTEM_CACHE_WS_START   (PVOID)0xC0C00000
 
#define MI_SYSTEM_CACHE_START   (PVOID)0xC1000000
 
#define MI_PAGED_POOL_START   (PVOID)0xE1000000
 
#define MI_NONPAGED_POOL_END   (PVOID)0xFFBE0000
 
#define MI_DEBUG_MAPPING   (PVOID)0xFFBFF000
 
#define MI_HIGHEST_SYSTEM_ADDRESS   (PVOID)0xFFFFFFFF
 
#define MM_HIGHEST_VAD_ADDRESS    (PVOID)((ULONG_PTR)MM_HIGHEST_USER_ADDRESS - (16 * PAGE_SIZE))
 
#define MI_MAPPING_RANGE_START   (ULONG)HYPER_SPACE
 
#define MI_MAPPING_RANGE_END
 
#define MI_DUMMY_PTE
 
#define MI_VAD_BITMAP
 
#define MI_WORKING_SET_LIST
 
#define MI_MIN_PAGES_FOR_NONPAGED_POOL_TUNING   ((255 * _1MB) >> PAGE_SHIFT)
 
#define MI_MIN_PAGES_FOR_SYSPTE_TUNING   ((19 * _1MB) >> PAGE_SHIFT)
 
#define MI_MIN_PAGES_FOR_SYSPTE_BOOST   ((32 * _1MB) >> PAGE_SHIFT)
 
#define MI_MIN_PAGES_FOR_SYSPTE_BOOST_BOOST   ((256 * _1MB) >> PAGE_SHIFT)
 
#define MI_MIN_INIT_PAGED_POOLSIZE   (32 * _1MB)
 
#define MI_MAX_INIT_NONPAGED_POOL_SIZE   (128 * _1MB)
 
#define MI_MAX_NONPAGED_POOL_SIZE   (128 * _1MB)
 
#define MI_SYSTEM_VIEW_SIZE   (32 * _1MB)
 
#define MI_SESSION_VIEW_SIZE   (48 * _1MB)
 
#define MI_SESSION_POOL_SIZE   (16 * _1MB)
 
#define MI_SESSION_IMAGE_SIZE   (8 * _1MB)
 
#define MI_SESSION_WORKING_SET_SIZE   (4 * _1MB)
 
#define MI_SESSION_SIZE
 
#define MI_MIN_ALLOCATION_FRAGMENT   (4 * _1KB)
 
#define MI_ALLOCATION_FRAGMENT   (64 * _1KB)
 
#define MI_MAX_ALLOCATION_FRAGMENT   (2 * _1MB)
 
#define MM_PTE_SOFTWARE_PROTECTION_BITS   5
 
#define MI_MIN_SECONDARY_COLORS   8
 
#define MI_SECONDARY_COLORS   64
 
#define MI_MAX_SECONDARY_COLORS   1024
 
#define MI_MAX_FREE_PAGE_LISTS   4
 
#define MI_HYPERSPACE_PTES   (256 - 1)
 
#define MI_ZERO_PTES   (32)
 
#define MI_MAX_ZERO_BITS   21
 
#define SESSION_POOL_LOOKASIDES   26
 
#define MM_EMPTY_PTE_LIST   ((ULONG)0xFFFFF)
 
#define MM_EMPTY_LIST   ((ULONG_PTR)-1)
 
#define PFN_FROM_PTE(v)   ((v)->u.Hard.PageFrameNumber)
 
#define MI_MAKE_DIRTY_PAGE(x)   ((x)->u.Hard.Dirty = 1)
 
#define MI_MAKE_CLEAN_PAGE(x)   ((x)->u.Hard.Dirty = 0)
 
#define MI_MAKE_ACCESSED_PAGE(x)   ((x)->u.Hard.Accessed = 1)
 
#define MI_PAGE_DISABLE_CACHE(x)   ((x)->u.Hard.CacheDisable = 1)
 
#define MI_PAGE_WRITE_THROUGH(x)   ((x)->u.Hard.WriteThrough = 1)
 
#define MI_PAGE_WRITE_COMBINED(x)   ((x)->u.Hard.WriteThrough = 0)
 
#define MI_IS_PAGE_LARGE(x)   ((x)->u.Hard.LargePage == 1)
 
#define MI_IS_PAGE_WRITEABLE(x)   ((x)->u.Hard.Write == 1)
 
#define MI_IS_PAGE_COPY_ON_WRITE(x)   ((x)->u.Hard.CopyOnWrite == 1)
 
#define MI_IS_PAGE_EXECUTABLE(x)   TRUE
 
#define MI_IS_PAGE_DIRTY(x)   ((x)->u.Hard.Dirty == 1)
 
#define MI_MAKE_OWNER_PAGE(x)   ((x)->u.Hard.Owner = 1)
 
#define MI_MAKE_WRITE_PAGE(x)   ((x)->u.Hard.Write = 1)
 
#define MI_IS_NOT_PRESENT_FAULT(FaultCode)   !BooleanFlagOn(FaultCode, 0x00000001)
 
#define MI_IS_WRITE_ACCESS(FaultCode)   BooleanFlagOn(FaultCode, 0x00000002)
 
#define MI_IS_INSTRUCTION_FETCH(FaultCode)   BooleanFlagOn(FaultCode, 0x00000010)
 
#define MI_WRITE_VALID_PPE   MI_WRITE_VALID_PTE
 
#define PD_COUNT   1 /* Only one page directory page */
 
#define PTE_PER_PAGE   (PAGE_SIZE / sizeof(MMPTE))
 
#define PDE_PER_PAGE   (PAGE_SIZE / sizeof(MMPDE))
 
#define PDE_PER_SYSTEM   (PD_COUNT * PDE_PER_PAGE)
 
#define PPE_PER_PAGE   1
 
#define MI_MAX_PAGES   ((1ull << 32) / PAGE_SIZE)
 
#define PTE_BASE   (ULONG_PTR)0xC0000000
 
#define PTE_TOP   (ULONG_PTR)(PTE_BASE + (MI_MAX_PAGES * sizeof(MMPTE)) - 1)
 
#define PTE_MASK   (PTE_TOP - PTE_BASE)
 
#define MI_SYSTEM_PTE_BASE   (PVOID)MiAddressToPte(NULL)
 
#define PDE_BASE   (ULONG_PTR)MiPteToPde(PTE_BASE)
 
#define PDE_TOP   (ULONG_PTR)(PDE_BASE + (PDE_PER_SYSTEM * sizeof(MMPDE)) - 1)
 
#define PDE_MASK   (PDE_TOP - PDE_BASE)
 
#define PDE_MAPPED_VA   (PTE_PER_PAGE * PAGE_SIZE)
 
#define MiAddressToPte(Va)    ((PMMPTE)(PTE_BASE + ((((ULONG_PTR)(Va)) / PAGE_SIZE) * sizeof(MMPTE))))
 
#define MiAddressToPde(Va)    ((PMMPDE)(PDE_BASE + ((MiAddressToPdeOffset(Va)) * sizeof(MMPDE))))
 
#define MiAddressToPteOffset(Va)    ((((ULONG_PTR)(Va)) & (PDE_MAPPED_VA - 1)) / PAGE_SIZE)
 
#define MiAddressToPdeOffset(Va)   (((ULONG_PTR)(Va)) / PDE_MAPPED_VA)
 
#define MiGetPdeOffset   MiAddressToPdeOffset
 
#define MiPteToAddress(_Pte)   ((PVOID)((ULONG)(_Pte) << 10))
 
#define MiPdeToAddress(_Pde)   ((PVOID)((ULONG)(_Pde) << 20))
 
#define MiPdeToPte(_Pde)   ((PMMPTE)MiPteToAddress(_Pde))
 
#define MiPteToPde(_Pte)   ((PMMPDE)MiAddressToPte(_Pte))
 
#define MiIsPteOnPdeBoundary(PointerPte)    ((((ULONG_PTR)PointerPte) & (PAGE_SIZE - 1)) == 0)
 
#define MiProtoPteToPte(x)
 
#define MiSubsectionPteToSubsection(x)
 

Functions

 C_ASSERT (PD_COUNT==1)
 

Macro Definition Documentation

◆ _MI_HAS_NO_EXECUTE

#define _MI_HAS_NO_EXECUTE   0

Definition at line 11 of file mm.h.

◆ _MI_PAGING_LEVELS

#define _MI_PAGING_LEVELS   2

Definition at line 10 of file mm.h.

◆ HYPER_SPACE

#define HYPER_SPACE   0xC0400000

Definition at line 18 of file mm.h.

◆ HYPER_SPACE_END

#define HYPER_SPACE_END   0xC07FFFFF

Definition at line 19 of file mm.h.

◆ MI_ALLOCATION_FRAGMENT

#define MI_ALLOCATION_FRAGMENT   (64 * _1KB)

Definition at line 62 of file mm.h.

◆ MI_DEBUG_MAPPING

#define MI_DEBUG_MAPPING   (PVOID)0xFFBFF000

Definition at line 28 of file mm.h.

◆ MI_DEFAULT_SYSTEM_RANGE_START

#define MI_DEFAULT_SYSTEM_RANGE_START   (PVOID)0x80000000

Definition at line 16 of file mm.h.

◆ MI_DUMMY_PTE

#define MI_DUMMY_PTE
Value:
#define PAGE_SIZE
Definition: env_spec_w32.h:49
struct _MMPTE * PMMPTE
#define MI_MAPPING_RANGE_END
Definition: mm.h:29
uint32_t ULONG_PTR
Definition: typedefs.h:65

Definition at line 37 of file mm.h.

◆ MI_HIGHEST_SYSTEM_ADDRESS

#define MI_HIGHEST_SYSTEM_ADDRESS   (PVOID)0xFFFFFFFF

Definition at line 29 of file mm.h.

◆ MI_HYPERSPACE_PTES

#define MI_HYPERSPACE_PTES   (256 - 1)

Definition at line 71 of file mm.h.

◆ MI_IS_INSTRUCTION_FETCH

#define MI_IS_INSTRUCTION_FETCH (   FaultCode)    BooleanFlagOn(FaultCode, 0x00000010)

Definition at line 117 of file mm.h.

◆ MI_IS_NOT_PRESENT_FAULT

#define MI_IS_NOT_PRESENT_FAULT (   FaultCode)    !BooleanFlagOn(FaultCode, 0x00000001)

Definition at line 113 of file mm.h.

◆ MI_IS_PAGE_COPY_ON_WRITE

#define MI_IS_PAGE_COPY_ON_WRITE (   x)    ((x)->u.Hard.CopyOnWrite == 1)

Definition at line 97 of file mm.h.

◆ MI_IS_PAGE_DIRTY

#define MI_IS_PAGE_DIRTY (   x)    ((x)->u.Hard.Dirty == 1)

Definition at line 103 of file mm.h.

◆ MI_IS_PAGE_EXECUTABLE

#define MI_IS_PAGE_EXECUTABLE (   x)    TRUE

Definition at line 101 of file mm.h.

◆ MI_IS_PAGE_LARGE

#define MI_IS_PAGE_LARGE (   x)    ((x)->u.Hard.LargePage == 1)

Definition at line 91 of file mm.h.

◆ MI_IS_PAGE_WRITEABLE

#define MI_IS_PAGE_WRITEABLE (   x)    ((x)->u.Hard.Write == 1)

Definition at line 93 of file mm.h.

◆ MI_IS_WRITE_ACCESS

#define MI_IS_WRITE_ACCESS (   FaultCode)    BooleanFlagOn(FaultCode, 0x00000002)

Definition at line 114 of file mm.h.

◆ MI_MAKE_ACCESSED_PAGE

#define MI_MAKE_ACCESSED_PAGE (   x)    ((x)->u.Hard.Accessed = 1)

Definition at line 87 of file mm.h.

◆ MI_MAKE_CLEAN_PAGE

#define MI_MAKE_CLEAN_PAGE (   x)    ((x)->u.Hard.Dirty = 0)

Definition at line 86 of file mm.h.

◆ MI_MAKE_DIRTY_PAGE

#define MI_MAKE_DIRTY_PAGE (   x)    ((x)->u.Hard.Dirty = 1)

Definition at line 85 of file mm.h.

◆ MI_MAKE_OWNER_PAGE

#define MI_MAKE_OWNER_PAGE (   x)    ((x)->u.Hard.Owner = 1)

Definition at line 104 of file mm.h.

◆ MI_MAKE_WRITE_PAGE

#define MI_MAKE_WRITE_PAGE (   x)    ((x)->u.Hard.Write = 1)

Definition at line 106 of file mm.h.

◆ MI_MAPPING_RANGE_END

#define MI_MAPPING_RANGE_END
Value:
#define MI_MAPPING_RANGE_START
Definition: mm.h:28
#define MI_HYPERSPACE_PTES
Definition: mm.h:65

Definition at line 35 of file mm.h.

◆ MI_MAPPING_RANGE_START

#define MI_MAPPING_RANGE_START   (ULONG)HYPER_SPACE

Definition at line 34 of file mm.h.

◆ MI_MAX_ALLOCATION_FRAGMENT

#define MI_MAX_ALLOCATION_FRAGMENT   (2 * _1MB)

Definition at line 63 of file mm.h.

◆ MI_MAX_FREE_PAGE_LISTS

#define MI_MAX_FREE_PAGE_LISTS   4

Definition at line 70 of file mm.h.

◆ MI_MAX_INIT_NONPAGED_POOL_SIZE

#define MI_MAX_INIT_NONPAGED_POOL_SIZE   (128 * _1MB)

Definition at line 50 of file mm.h.

◆ MI_MAX_NONPAGED_POOL_SIZE

#define MI_MAX_NONPAGED_POOL_SIZE   (128 * _1MB)

Definition at line 51 of file mm.h.

◆ MI_MAX_PAGES

#define MI_MAX_PAGES   ((1ull << 32) / PAGE_SIZE)

Definition at line 157 of file mm.h.

◆ MI_MAX_SECONDARY_COLORS

#define MI_MAX_SECONDARY_COLORS   1024

Definition at line 69 of file mm.h.

◆ MI_MAX_ZERO_BITS

#define MI_MAX_ZERO_BITS   21

Definition at line 73 of file mm.h.

◆ MI_MIN_ALLOCATION_FRAGMENT

#define MI_MIN_ALLOCATION_FRAGMENT   (4 * _1KB)

Definition at line 61 of file mm.h.

◆ MI_MIN_INIT_PAGED_POOLSIZE

#define MI_MIN_INIT_PAGED_POOLSIZE   (32 * _1MB)

Definition at line 49 of file mm.h.

◆ MI_MIN_PAGES_FOR_NONPAGED_POOL_TUNING

#define MI_MIN_PAGES_FOR_NONPAGED_POOL_TUNING   ((255 * _1MB) >> PAGE_SHIFT)

Definition at line 45 of file mm.h.

◆ MI_MIN_PAGES_FOR_SYSPTE_BOOST

#define MI_MIN_PAGES_FOR_SYSPTE_BOOST   ((32 * _1MB) >> PAGE_SHIFT)

Definition at line 47 of file mm.h.

◆ MI_MIN_PAGES_FOR_SYSPTE_BOOST_BOOST

#define MI_MIN_PAGES_FOR_SYSPTE_BOOST_BOOST   ((256 * _1MB) >> PAGE_SHIFT)

Definition at line 48 of file mm.h.

◆ MI_MIN_PAGES_FOR_SYSPTE_TUNING

#define MI_MIN_PAGES_FOR_SYSPTE_TUNING   ((19 * _1MB) >> PAGE_SHIFT)

Definition at line 46 of file mm.h.

◆ MI_MIN_SECONDARY_COLORS

#define MI_MIN_SECONDARY_COLORS   8

Definition at line 67 of file mm.h.

◆ MI_NONPAGED_POOL_END

#define MI_NONPAGED_POOL_END   (PVOID)0xFFBE0000

Definition at line 27 of file mm.h.

◆ MI_PAGE_DISABLE_CACHE

#define MI_PAGE_DISABLE_CACHE (   x)    ((x)->u.Hard.CacheDisable = 1)

Definition at line 88 of file mm.h.

◆ MI_PAGE_WRITE_COMBINED

#define MI_PAGE_WRITE_COMBINED (   x)    ((x)->u.Hard.WriteThrough = 0)

Definition at line 90 of file mm.h.

◆ MI_PAGE_WRITE_THROUGH

#define MI_PAGE_WRITE_THROUGH (   x)    ((x)->u.Hard.WriteThrough = 1)

Definition at line 89 of file mm.h.

◆ MI_PAGED_POOL_START

#define MI_PAGED_POOL_START   (PVOID)0xE1000000

Definition at line 26 of file mm.h.

◆ MI_SECONDARY_COLORS

#define MI_SECONDARY_COLORS   64

Definition at line 68 of file mm.h.

◆ MI_SESSION_IMAGE_SIZE

#define MI_SESSION_IMAGE_SIZE   (8 * _1MB)

Definition at line 55 of file mm.h.

◆ MI_SESSION_POOL_SIZE

#define MI_SESSION_POOL_SIZE   (16 * _1MB)

Definition at line 54 of file mm.h.

◆ MI_SESSION_SIZE

#define MI_SESSION_SIZE
Value:
#define MI_SESSION_WORKING_SET_SIZE
Definition: mm.h:65
#define MI_SESSION_VIEW_SIZE
Definition: mm.h:62
#define MI_SESSION_IMAGE_SIZE
Definition: mm.h:64
#define MI_SESSION_POOL_SIZE
Definition: mm.h:63

Definition at line 57 of file mm.h.

◆ MI_SESSION_VIEW_SIZE

#define MI_SESSION_VIEW_SIZE   (48 * _1MB)

Definition at line 53 of file mm.h.

◆ MI_SESSION_WORKING_SET_SIZE

#define MI_SESSION_WORKING_SET_SIZE   (4 * _1MB)

Definition at line 56 of file mm.h.

◆ MI_SYSTEM_CACHE_START

#define MI_SYSTEM_CACHE_START   (PVOID)0xC1000000

Definition at line 25 of file mm.h.

◆ MI_SYSTEM_CACHE_WS_START

#define MI_SYSTEM_CACHE_WS_START   (PVOID)0xC0C00000

Definition at line 24 of file mm.h.

◆ MI_SYSTEM_PTE_BASE

#define MI_SYSTEM_PTE_BASE   (PVOID)MiAddressToPte(NULL)

Definition at line 164 of file mm.h.

◆ MI_SYSTEM_VIEW_SIZE

#define MI_SYSTEM_VIEW_SIZE   (32 * _1MB)

Definition at line 52 of file mm.h.

◆ MI_USER_PROBE_ADDRESS

#define MI_USER_PROBE_ADDRESS   (PVOID)0x7FFF0000

Definition at line 15 of file mm.h.

◆ MI_VAD_BITMAP

#define MI_VAD_BITMAP
Value:
#define MI_DUMMY_PTE
Definition: mm.h:31

Definition at line 39 of file mm.h.

◆ MI_WORKING_SET_LIST

#define MI_WORKING_SET_LIST
Value:
#define MI_VAD_BITMAP
Definition: mm.h:33

Definition at line 41 of file mm.h.

◆ MI_WRITE_VALID_PPE

#define MI_WRITE_VALID_PPE   MI_WRITE_VALID_PTE

Definition at line 125 of file mm.h.

◆ MI_ZERO_PTES

#define MI_ZERO_PTES   (32)

Definition at line 72 of file mm.h.

◆ MiAddressToPde

#define MiAddressToPde (   Va)     ((PMMPDE)(PDE_BASE + ((MiAddressToPdeOffset(Va)) * sizeof(MMPDE))))

Definition at line 179 of file mm.h.

◆ MiAddressToPdeOffset

#define MiAddressToPdeOffset (   Va)    (((ULONG_PTR)(Va)) / PDE_MAPPED_VA)

Definition at line 187 of file mm.h.

◆ MiAddressToPte

#define MiAddressToPte (   Va)     ((PMMPTE)(PTE_BASE + ((((ULONG_PTR)(Va)) / PAGE_SIZE) * sizeof(MMPTE))))

Definition at line 175 of file mm.h.

◆ MiAddressToPteOffset

#define MiAddressToPteOffset (   Va)     ((((ULONG_PTR)(Va)) & (PDE_MAPPED_VA - 1)) / PAGE_SIZE)

Definition at line 183 of file mm.h.

◆ MiGetPdeOffset

#define MiGetPdeOffset   MiAddressToPdeOffset

Definition at line 190 of file mm.h.

◆ MiIsPteOnPdeBoundary

#define MiIsPteOnPdeBoundary (   PointerPte)     ((((ULONG_PTR)PointerPte) & (PAGE_SIZE - 1)) == 0)

Definition at line 201 of file mm.h.

◆ MiPdeToAddress

#define MiPdeToAddress (   _Pde)    ((PVOID)((ULONG)(_Pde) << 20))

Definition at line 194 of file mm.h.

◆ MiPdeToPte

#define MiPdeToPte (   _Pde)    ((PMMPTE)MiPteToAddress(_Pde))

Definition at line 197 of file mm.h.

◆ MiProtoPteToPte

#define MiProtoPteToPte (   x)
Value:
(((x)->u.Proto.ProtoAddressHigh << 9) | (x)->u.Proto.ProtoAddressLow << 2))
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Definition: glfuncs.h:240
PVOID MmPagedPoolStart
Definition: miarm.h:574

Definition at line 207 of file mm.h.

◆ MiPteToAddress

#define MiPteToAddress (   _Pte)    ((PVOID)((ULONG)(_Pte) << 10))

Definition at line 193 of file mm.h.

◆ MiPteToPde

#define MiPteToPde (   _Pte)    ((PMMPDE)MiAddressToPte(_Pte))

Definition at line 198 of file mm.h.

◆ MiSubsectionPteToSubsection

#define MiSubsectionPteToSubsection (   x)
Value:
((x)->u.Subsect.WhichPool == PagedPool) ? \
(((x)->u.Subsect.SubsectionAddressHigh << 7) | \
(x)->u.Subsect.SubsectionAddressLow << 3)) : \
(((x)->u.Subsect.SubsectionAddressHigh << 7) | \
(x)->u.Subsect.SubsectionAddressLow << 3))
#define ULONG_PTR
Definition: config.h:101
#define PagedPool
Definition: env_spec_w32.h:308
ULONG_PTR MmSubsectionBase
Definition: section.c:196
PVOID MmNonPagedPoolEnd
Definition: mminit.c:99

Definition at line 214 of file mm.h.

◆ MM_EMPTY_LIST

#define MM_EMPTY_LIST   ((ULONG_PTR)-1)

Definition at line 78 of file mm.h.

◆ MM_EMPTY_PTE_LIST

#define MM_EMPTY_PTE_LIST   ((ULONG)0xFFFFF)

Definition at line 77 of file mm.h.

◆ MM_HIGHEST_VAD_ADDRESS

#define MM_HIGHEST_VAD_ADDRESS    (PVOID)((ULONG_PTR)MM_HIGHEST_USER_ADDRESS - (16 * PAGE_SIZE))

Definition at line 32 of file mm.h.

◆ MM_PTE_SOFTWARE_PROTECTION_BITS

#define MM_PTE_SOFTWARE_PROTECTION_BITS   5

Definition at line 66 of file mm.h.

◆ PD_COUNT

#define PD_COUNT   1 /* Only one page directory page */

Definition at line 136 of file mm.h.

◆ PDE_BASE

#define PDE_BASE   (ULONG_PTR)MiPteToPde(PTE_BASE)

Definition at line 167 of file mm.h.

◆ PDE_MAPPED_VA

#define PDE_MAPPED_VA   (PTE_PER_PAGE * PAGE_SIZE)

Definition at line 172 of file mm.h.

◆ PDE_MASK

#define PDE_MASK   (PDE_TOP - PDE_BASE)

Definition at line 169 of file mm.h.

◆ PDE_PER_PAGE

#define PDE_PER_PAGE   (PAGE_SIZE / sizeof(MMPDE))

Definition at line 148 of file mm.h.

◆ PDE_PER_SYSTEM

#define PDE_PER_SYSTEM   (PD_COUNT * PDE_PER_PAGE)

Definition at line 151 of file mm.h.

◆ PDE_TOP

#define PDE_TOP   (ULONG_PTR)(PDE_BASE + (PDE_PER_SYSTEM * sizeof(MMPDE)) - 1)

Definition at line 168 of file mm.h.

◆ PFN_FROM_PTE

#define PFN_FROM_PTE (   v)    ((v)->u.Hard.PageFrameNumber)

Definition at line 82 of file mm.h.

◆ PPE_PER_PAGE

#define PPE_PER_PAGE   1

Definition at line 154 of file mm.h.

◆ PTE_BASE

#define PTE_BASE   (ULONG_PTR)0xC0000000

Definition at line 160 of file mm.h.

◆ PTE_MASK

#define PTE_MASK   (PTE_TOP - PTE_BASE)

Definition at line 162 of file mm.h.

◆ PTE_PER_PAGE

#define PTE_PER_PAGE   (PAGE_SIZE / sizeof(MMPTE))

Definition at line 145 of file mm.h.

◆ PTE_TOP

#define PTE_TOP   (ULONG_PTR)(PTE_BASE + (MI_MAX_PAGES * sizeof(MMPTE)) - 1)

Definition at line 161 of file mm.h.

◆ SESSION_POOL_LOOKASIDES

#define SESSION_POOL_LOOKASIDES   26

Definition at line 74 of file mm.h.

Function Documentation

◆ C_ASSERT()

C_ASSERT ( PD_COUNT  = =1)