ReactOS 0.4.16-dev-258-g81860b4
largepag.c
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Kernel
3 * LICENSE: BSD - See COPYING.ARM in the top level directory
4 * FILE: ntoskrnl/mm/ARM3/largepag.c
5 * PURPOSE: ARM Memory Manager Large Page Support
6 * PROGRAMMERS: ReactOS Portable Systems Group
7 */
8
9/* INCLUDES *******************************************************************/
10
11#include <ntoskrnl.h>
12#define NDEBUG
13#include <debug.h>
14
15#define MODULE_INVOLVED_IN_ARM3
16#include <mm/ARM3/miarm.h>
17
18/* GLOBALS ********************************************************************/
19
28
29/* FUNCTIONS ******************************************************************/
30
31CODE_SEG("INIT")
32VOID
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}
50
51CODE_SEG("INIT")
52VOID
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}
64
65CODE_SEG("INIT")
66VOID
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}
103
104/* EOF */
#define CODE_SEG(...)
unsigned char BOOLEAN
#define DPRINT1
Definition: precomp.h:8
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define UNIMPLEMENTED_DBGBREAK(...)
Definition: debug.h:57
#define InsertTailList(ListHead, Entry)
#define InitializeListHead(ListHead)
Definition: env_spec_w32.h:944
GLfloat GLfloat p
Definition: glext.h:8902
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
MI_LARGE_PAGE_RANGES MiLargePageRanges[64]
Definition: largepag.c:23
LIST_ENTRY MmProcessList
Definition: largepag.c:20
VOID NTAPI MiInitializeDriverLargePageList(VOID)
Definition: largepag.c:68
ULONG MmLargePageDriverBufferLength
Definition: largepag.c:25
BOOLEAN MiLargePageAllDrivers
Definition: largepag.c:27
LIST_ENTRY MiLargePageDriverList
Definition: largepag.c:26
VOID NTAPI MiInitializeLargePageSupport(VOID)
Definition: largepag.c:34
WCHAR MmLargePageDriverBuffer[512]
Definition: largepag.c:24
PMMPTE MiLargePageHyperPte
Definition: largepag.c:21
VOID NTAPI MiSyncCachedRanges(VOID)
Definition: largepag.c:54
@ SystemPteSpace
Definition: miarm.h:411
PMMPTE NTAPI MiReserveSystemPtes(IN ULONG NumberOfPtes, IN MMSYSTEM_PTE_POOL_TYPE SystemPtePoolType)
Definition: syspte.c:246
#define ASSERT(a)
Definition: mode.c:44
#define L(x)
Definition: ntvdm.h:50
Definition: typedefs.h:120
union _MMPTE::@2337 u
ULONG_PTR Long
Definition: mmtypes.h:215
#define NTAPI
Definition: typedefs.h:36
uint16_t * PWCHAR
Definition: typedefs.h:56
uint32_t ULONG
Definition: typedefs.h:59
#define PsGetCurrentProcess
Definition: psfuncs.h:17
__wchar_t WCHAR
Definition: xmlstorage.h:180