add LDT_ENTRY to winnt.h
[reactos.git] / reactos / ntoskrnl / mm / amd64 / page.c
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * FILE: ntoskrnl/mm/i386/page.c
5 * PURPOSE: Low level memory managment manipulation
6 *
7 * PROGRAMMERS: David Welch (welch@cwcom.net)
8 */
9
10 /* INCLUDES ***************************************************************/
11
12 #include <ntoskrnl.h>
13 #define NDEBUG
14 #include <internal/debug.h>
15
16 #if defined (ALLOC_PRAGMA)
17 #pragma alloc_text(INIT, MmInitGlobalKernelPageDirectory)
18 #pragma alloc_text(INIT, MiInitPageDirectoryMap)
19 #endif
20
21
22 /* GLOBALS *****************************************************************/
23
24
25
26 /* FUNCTIONS ***************************************************************/
27
28 BOOLEAN MmUnmapPageTable(PULONG Pt);
29
30 ULONG_PTR
31 NTAPI
32 MiFlushTlbIpiRoutine(ULONG_PTR Address)
33 {
34 UNIMPLEMENTED;
35 return 0;
36 }
37
38 VOID
39 MiFlushTlb(PULONG Pt, PVOID Address)
40 {
41 UNIMPLEMENTED;
42 }
43
44
45
46 PULONG_PTR
47 MmGetPageDirectory(VOID)
48 {
49 return (PULONG_PTR)__readcr3();
50 }
51
52 static ULONG
53 ProtectToPTE(ULONG flProtect)
54 {
55
56 }
57
58 NTSTATUS
59 NTAPI
60 Mmi386ReleaseMmInfo(PEPROCESS Process)
61 {
62 UNIMPLEMENTED;
63 return STATUS_UNSUCCESSFUL;
64 }
65
66 NTSTATUS
67 NTAPI
68 MmInitializeHandBuiltProcess(IN PEPROCESS Process,
69 IN PLARGE_INTEGER DirectoryTableBase)
70 {
71 UNIMPLEMENTED;
72 return STATUS_UNSUCCESSFUL;
73 }
74
75 BOOLEAN
76 STDCALL
77 MmCreateProcessAddressSpace(IN ULONG MinWs,
78 IN PEPROCESS Process,
79 IN PLARGE_INTEGER DirectoryTableBase)
80 {
81 UNIMPLEMENTED;
82 return 0;
83 }
84
85 VOID
86 NTAPI
87 MmDeletePageTable(PEPROCESS Process, PVOID Address)
88 {
89 UNIMPLEMENTED;
90 }
91
92 VOID
93 NTAPI
94 MmFreePageTable(PEPROCESS Process, PVOID Address)
95 {
96 UNIMPLEMENTED;
97 }
98
99 BOOLEAN MmUnmapPageTable(PULONG Pt)
100 {
101 UNIMPLEMENTED;
102 return FALSE;
103 }
104
105 PFN_TYPE
106 NTAPI
107 MmGetPfnForProcess(PEPROCESS Process,
108 PVOID Address)
109 {
110 UNIMPLEMENTED;
111 return 0;
112 }
113
114 VOID
115 NTAPI
116 MmDisableVirtualMapping(PEPROCESS Process, PVOID Address, BOOLEAN* WasDirty, PPFN_TYPE Page)
117 {
118 UNIMPLEMENTED;
119 }
120
121 VOID
122 NTAPI
123 MmRawDeleteVirtualMapping(PVOID Address)
124 {
125 UNIMPLEMENTED;
126 }
127
128 VOID
129 NTAPI
130 MmDeleteVirtualMapping(PEPROCESS Process, PVOID Address, BOOLEAN FreePage,
131 BOOLEAN* WasDirty, PPFN_TYPE Page)
132 {
133 UNIMPLEMENTED;
134 }
135
136 VOID
137 NTAPI
138 MmDeletePageFileMapping(PEPROCESS Process, PVOID Address,
139 SWAPENTRY* SwapEntry)
140 {
141 UNIMPLEMENTED;
142 }
143
144 BOOLEAN
145 Mmi386MakeKernelPageTableGlobal(PVOID PAddress)
146 {
147 UNIMPLEMENTED;
148 return FALSE;
149 }
150
151 BOOLEAN
152 NTAPI
153 MmIsDirtyPage(PEPROCESS Process, PVOID Address)
154 {
155 UNIMPLEMENTED;
156 return FALSE;
157 }
158
159 BOOLEAN
160 NTAPI
161 MmIsAccessedAndResetAccessPage(PEPROCESS Process, PVOID Address)
162 {
163 UNIMPLEMENTED;
164 return 0;
165 }
166
167 VOID
168 NTAPI
169 MmSetCleanPage(PEPROCESS Process, PVOID Address)
170 {
171 UNIMPLEMENTED;
172 }
173
174 VOID
175 NTAPI
176 MmSetDirtyPage(PEPROCESS Process, PVOID Address)
177 {
178 UNIMPLEMENTED;
179 }
180
181 VOID
182 NTAPI
183 MmEnableVirtualMapping(PEPROCESS Process, PVOID Address)
184 {
185 UNIMPLEMENTED;
186 }
187
188 BOOLEAN
189 NTAPI
190 MmIsPagePresent(PEPROCESS Process, PVOID Address)
191 {
192 UNIMPLEMENTED;
193 return 0;
194 }
195
196 BOOLEAN
197 NTAPI
198 MmIsPageSwapEntry(PEPROCESS Process, PVOID Address)
199 {
200 UNIMPLEMENTED;
201 return 0;
202 }
203
204 NTSTATUS
205 NTAPI
206 MmCreateVirtualMappingForKernel(PVOID Address,
207 ULONG flProtect,
208 PPFN_TYPE Pages,
209 ULONG PageCount)
210 {
211 UNIMPLEMENTED;
212 return STATUS_UNSUCCESSFUL;
213 }
214
215 NTSTATUS
216 NTAPI
217 MmCreatePageFileMapping(PEPROCESS Process,
218 PVOID Address,
219 SWAPENTRY SwapEntry)
220 {
221 UNIMPLEMENTED;
222 return STATUS_UNSUCCESSFUL;
223 }
224
225
226 NTSTATUS
227 NTAPI
228 MmCreateVirtualMappingUnsafe(PEPROCESS Process,
229 PVOID Address,
230 ULONG flProtect,
231 PPFN_TYPE Pages,
232 ULONG PageCount)
233 {
234 UNIMPLEMENTED;
235 return STATUS_UNSUCCESSFUL;
236 }
237
238 NTSTATUS
239 NTAPI
240 MmCreateVirtualMapping(PEPROCESS Process,
241 PVOID Address,
242 ULONG flProtect,
243 PPFN_TYPE Pages,
244 ULONG PageCount)
245 {
246 UNIMPLEMENTED;
247 return STATUS_UNSUCCESSFUL;
248 }
249
250 ULONG
251 NTAPI
252 MmGetPageProtect(PEPROCESS Process, PVOID Address)
253 {
254 UNIMPLEMENTED;
255 return 0;
256 }
257
258 VOID
259 NTAPI
260 MmSetPageProtect(PEPROCESS Process, PVOID Address, ULONG flProtect)
261 {
262 UNIMPLEMENTED;
263 }
264
265 /*
266 * @implemented
267 */
268 PHYSICAL_ADDRESS STDCALL
269 MmGetPhysicalAddress(PVOID vaddr)
270 {
271 PHYSICAL_ADDRESS ret = {{0}};
272 UNIMPLEMENTED;
273 return ret;
274 }
275
276 PVOID
277 NTAPI
278 MmCreateHyperspaceMapping(PFN_TYPE Page)
279 {
280 UNIMPLEMENTED;
281 return NULL;
282 }
283
284 PFN_TYPE
285 NTAPI
286 MmChangeHyperspaceMapping(PVOID Address, PFN_TYPE NewPage)
287 {
288 UNIMPLEMENTED;
289 return 0;
290 }
291
292 PFN_TYPE
293 NTAPI
294 MmDeleteHyperspaceMapping(PVOID Address)
295 {
296 UNIMPLEMENTED;
297 return 0;
298 }
299
300 VOID
301 NTAPI
302 MmUpdatePageDir(PEPROCESS Process, PVOID Address, ULONG Size)
303 {
304 UNIMPLEMENTED;
305 }
306
307 VOID
308 INIT_FUNCTION
309 NTAPI
310 MmInitGlobalKernelPageDirectory(VOID)
311 {
312 UNIMPLEMENTED;
313 }
314
315 VOID
316 INIT_FUNCTION
317 NTAPI
318 MiInitPageDirectoryMap(VOID)
319 {
320 UNIMPLEMENTED;
321 }
322
323 /* EOF */