ReactOS  0.4.14-dev-323-g6fe6a88
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

INIT_FUNCTION VOID NTAPI MiInitializeLargePageSupport (VOID)
 
INIT_FUNCTION VOID NTAPI MiSyncCachedRanges (VOID)
 
INIT_FUNCTION 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()

INIT_FUNCTION 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 TRUE
Definition: types.h:120
LIST_ENTRY MiLargePageDriverList
Definition: largepag.c:26
uint16_t * PWCHAR
Definition: typedefs.h:54
#define pp
Definition: hlsl.yy.c:1208
__wchar_t WCHAR
Definition: xmlstorage.h:180
BOOLEAN MiLargePageAllDrivers
Definition: largepag.c:27
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
static const WCHAR L[]
Definition: oid.c:1250
WCHAR MmLargePageDriverBuffer[512]
Definition: largepag.c:24
#define InitializeListHead(ListHead)
Definition: env_spec_w32.h:944
#define DPRINT1
Definition: precomp.h:8
ULONG MmLargePageDriverBufferLength
Definition: largepag.c:25
GLfloat GLfloat p
Definition: glext.h:8902

Referenced by MmArmInitSystem().

◆ MiInitializeLargePageSupport()

INIT_FUNCTION 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 */
47  InsertTailList(&MmProcessList, &PsGetCurrentProcess()->MmProcessLinks);
48 #endif
49 }
PMMPTE NTAPI MiReserveSystemPtes(IN ULONG NumberOfPtes, IN MMSYSTEM_PTE_POOL_TYPE SystemPtePoolType)
Definition: syspte.c:246
PMMPTE MiLargePageHyperPte
Definition: largepag.c:21
#define InsertTailList(ListHead, Entry)
#define PsGetCurrentProcess
Definition: psfuncs.h:17
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
ULONG_PTR Long
Definition: mmtypes.h:215
#define InitializeListHead(ListHead)
Definition: env_spec_w32.h:944
#define DPRINT1
Definition: precomp.h:8
LIST_ENTRY MmProcessList
Definition: largepag.c:20
union _MMPTE::@2256 u

Referenced by MmArmInitSystem().

◆ MiSyncCachedRanges()

INIT_FUNCTION 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 }
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
#define UNIMPLEMENTED_DBGBREAK(...)
Definition: debug.h:57
unsigned int ULONG
Definition: retypes.h:1

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 MiInitializeLargePageSupport().