ReactOS 0.4.15-dev-7788-g1ad9096
largepag.c File Reference
#include <ntoskrnl.h>
#include <debug.h>
#include <mm/ARM3/miarm.h>
Include dependency graph for largepag.c:

Go to the source code of this file.

Macros

#define NDEBUG
 
#define MODULE_INVOLVED_IN_ARM3
 

Functions

VOID NTAPI MiInitializeLargePageSupport (VOID)
 
VOID NTAPI MiSyncCachedRanges (VOID)
 
VOID NTAPI MiInitializeDriverLargePageList (VOID)
 

Variables

LIST_ENTRY MmProcessList
 
PMMPTE MiLargePageHyperPte
 
ULONG MiLargePageRangeIndex
 
MI_LARGE_PAGE_RANGES MiLargePageRanges [64]
 
WCHAR MmLargePageDriverBuffer [512] = {0}
 
ULONG MmLargePageDriverBufferLength = -1
 
LIST_ENTRY MiLargePageDriverList
 
BOOLEAN MiLargePageAllDrivers
 

Macro Definition Documentation

◆ MODULE_INVOLVED_IN_ARM3

#define MODULE_INVOLVED_IN_ARM3

Definition at line 15 of file largepag.c.

◆ NDEBUG

#define NDEBUG

Definition at line 12 of file largepag.c.

Function Documentation

◆ MiInitializeDriverLargePageList()

VOID NTAPI MiInitializeDriverLargePageList ( VOID  )

Definition at line 68 of file largepag.c.

69{
70 PWCHAR p, pp;
71
72 /* Initialize the list */
74
75 /* Bail out if there's nothing */
76 if (MmLargePageDriverBufferLength == 0xFFFFFFFF) return;
77
78 /* Loop from start to finish */
81 while (p < pp)
82 {
83 /* Skip whitespaces */
84 if ((*p == L' ') || (*p == L'\n') || (*p == L'\r') || (*p == L'\t'))
85 {
86 /* Skip the character */
87 p++;
88 continue;
89 }
90
91 /* A star means everything */
92 if (*p == L'*')
93 {
94 /* No need to keep going */
96 break;
97 }
98
99 DPRINT1("Large page drivers not supported\n");
100 ASSERT(FALSE);
101 }
102}
#define DPRINT1
Definition: precomp.h:8
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define InitializeListHead(ListHead)
Definition: env_spec_w32.h:944
GLfloat GLfloat p
Definition: glext.h:8902
ULONG MmLargePageDriverBufferLength
Definition: largepag.c:25
BOOLEAN MiLargePageAllDrivers
Definition: largepag.c:27
LIST_ENTRY MiLargePageDriverList
Definition: largepag.c:26
WCHAR MmLargePageDriverBuffer[512]
Definition: largepag.c:24
#define ASSERT(a)
Definition: mode.c:44
#define L(x)
Definition: ntvdm.h:50
uint16_t * PWCHAR
Definition: typedefs.h:56
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by MmArmInitSystem().

◆ MiInitializeLargePageSupport()

VOID NTAPI MiInitializeLargePageSupport ( VOID  )

Definition at line 34 of file largepag.c.

35{
36#if _MI_PAGING_LEVELS > 2
37 DPRINT1("MiInitializeLargePageSupport: PAE/x64 Not Implemented\n");
38 //ASSERT(FALSE);
39#else
40 /* Initialize the large-page hyperspace PTE used for initial mapping */
44
45 /* Initialize the process tracking list, and insert the system process */
48#endif
49}
#define InsertTailList(ListHead, Entry)
LIST_ENTRY MmProcessList
Definition: largepag.c:20
PMMPTE MiLargePageHyperPte
Definition: largepag.c:21
@ SystemPteSpace
Definition: miarm.h:403
PMMPTE NTAPI MiReserveSystemPtes(IN ULONG NumberOfPtes, IN MMSYSTEM_PTE_POOL_TYPE SystemPtePoolType)
Definition: syspte.c:246
union _MMPTE::@2325 u
ULONG_PTR Long
Definition: mmtypes.h:215
#define PsGetCurrentProcess
Definition: psfuncs.h:17

Referenced by MmArmInitSystem().

◆ MiSyncCachedRanges()

VOID NTAPI MiSyncCachedRanges ( VOID  )

Definition at line 54 of file largepag.c.

55{
56 ULONG i;
57
58 /* Scan every range */
59 for (i = 0; i < MiLargePageRangeIndex; i++)
60 {
61 UNIMPLEMENTED_DBGBREAK("No support for large pages\n");
62 }
63}
#define UNIMPLEMENTED_DBGBREAK(...)
Definition: debug.h:57
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 const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
ULONG MiLargePageRangeIndex
Definition: largepag.c:22
uint32_t ULONG
Definition: typedefs.h:59

Referenced by MmArmInitSystem().

Variable Documentation

◆ MiLargePageAllDrivers

BOOLEAN MiLargePageAllDrivers

Definition at line 27 of file largepag.c.

Referenced by MiInitializeDriverLargePageList(), and MiUseLargeDriverPage().

◆ MiLargePageDriverList

LIST_ENTRY MiLargePageDriverList

Definition at line 26 of file largepag.c.

Referenced by MiInitializeDriverLargePageList(), and MiUseLargeDriverPage().

◆ MiLargePageHyperPte

PMMPTE MiLargePageHyperPte

Definition at line 21 of file largepag.c.

Referenced by MiInitializeLargePageSupport().

◆ MiLargePageRangeIndex

ULONG MiLargePageRangeIndex

Definition at line 22 of file largepag.c.

Referenced by MiSyncCachedRanges().

◆ MiLargePageRanges

MI_LARGE_PAGE_RANGES MiLargePageRanges[64]

Definition at line 23 of file largepag.c.

◆ MmLargePageDriverBuffer

WCHAR MmLargePageDriverBuffer[512] = {0}

Definition at line 24 of file largepag.c.

Referenced by MiInitializeDriverLargePageList().

◆ MmLargePageDriverBufferLength

ULONG MmLargePageDriverBufferLength = -1

Definition at line 25 of file largepag.c.

Referenced by MiInitializeDriverLargePageList().

◆ MmProcessList

LIST_ENTRY MmProcessList

Definition at line 20 of file largepag.c.

Referenced by MiArchCreateProcessAddressSpace(), and MiInitializeLargePageSupport().