- Revert 49927 "Update to trunk" as it breaks KsStudio (again)
[reactos.git] / ntoskrnl / mm / arm / page.c
index 549b65a..c24115a 100644 (file)
 #define NDEBUG
 #include <debug.h>
 
-#line 15 "ARMĀ³::ARMPAGE"
-#define MODULE_INVOLVED_IN_ARM3
-#include "../ARM3/miarm.h"
-
 /* GLOBALS ********************************************************************/
 
-const
-ULONG
-MmProtectToPteMask[32] =
-{
-    //
-    // These are the base MM_ protection flags
-    //
-    0,
-    PTE_READONLY            | PTE_ENABLE_CACHE,
-    PTE_EXECUTE             | PTE_ENABLE_CACHE,
-    PTE_EXECUTE_READ        | PTE_ENABLE_CACHE,
-    PTE_READWRITE           | PTE_ENABLE_CACHE,
-    PTE_WRITECOPY           | PTE_ENABLE_CACHE,
-    PTE_EXECUTE_READWRITE   | PTE_ENABLE_CACHE,
-    PTE_EXECUTE_WRITECOPY   | PTE_ENABLE_CACHE,
-    //
-    // These OR in the MM_NOCACHE flag
-    //
-    0,
-    PTE_READONLY            | PTE_DISABLE_CACHE,
-    PTE_EXECUTE             | PTE_DISABLE_CACHE,
-    PTE_EXECUTE_READ        | PTE_DISABLE_CACHE,
-    PTE_READWRITE           | PTE_DISABLE_CACHE,
-    PTE_WRITECOPY           | PTE_DISABLE_CACHE,
-    PTE_EXECUTE_READWRITE   | PTE_DISABLE_CACHE,
-    PTE_EXECUTE_WRITECOPY   | PTE_DISABLE_CACHE,
-    //
-    // These OR in the MM_DECOMMIT flag, which doesn't seem supported on x86/64/ARM
-    //
-    0,
-    PTE_READONLY            | PTE_ENABLE_CACHE,
-    PTE_EXECUTE             | PTE_ENABLE_CACHE,
-    PTE_EXECUTE_READ        | PTE_ENABLE_CACHE,
-    PTE_READWRITE           | PTE_ENABLE_CACHE,
-    PTE_WRITECOPY           | PTE_ENABLE_CACHE,
-    PTE_EXECUTE_READWRITE   | PTE_ENABLE_CACHE,
-    PTE_EXECUTE_WRITECOPY   | PTE_ENABLE_CACHE,
-    //
-    // These OR in the MM_NOACCESS flag, which seems to enable WriteCombining?
-    //
-    0,
-    PTE_READONLY            | PTE_WRITECOMBINED_CACHE,
-    PTE_EXECUTE             | PTE_WRITECOMBINED_CACHE,
-    PTE_EXECUTE_READ        | PTE_WRITECOMBINED_CACHE,
-    PTE_READWRITE           | PTE_WRITECOMBINED_CACHE,
-    PTE_WRITECOPY           | PTE_WRITECOMBINED_CACHE,
-    PTE_EXECUTE_READWRITE   | PTE_WRITECOMBINED_CACHE,
-    PTE_EXECUTE_WRITECOPY   | PTE_WRITECOMBINED_CACHE,
-};
-
-const
-ULONG MmProtectToValue[32] =
-{
-    PAGE_NOACCESS,
-    PAGE_READONLY,
-    PAGE_EXECUTE,
-    PAGE_EXECUTE_READ,
-    PAGE_READWRITE,
-    PAGE_WRITECOPY,
-    PAGE_EXECUTE_READWRITE,
-    PAGE_EXECUTE_WRITECOPY,
-    PAGE_NOACCESS,
-    PAGE_NOCACHE | PAGE_READONLY,
-    PAGE_NOCACHE | PAGE_EXECUTE,
-    PAGE_NOCACHE | PAGE_EXECUTE_READ,
-    PAGE_NOCACHE | PAGE_READWRITE,
-    PAGE_NOCACHE | PAGE_WRITECOPY,
-    PAGE_NOCACHE | PAGE_EXECUTE_READWRITE,
-    PAGE_NOCACHE | PAGE_EXECUTE_WRITECOPY,
-    PAGE_NOACCESS,
-    PAGE_GUARD | PAGE_READONLY,
-    PAGE_GUARD | PAGE_EXECUTE,
-    PAGE_GUARD | PAGE_EXECUTE_READ,
-    PAGE_GUARD | PAGE_READWRITE,
-    PAGE_GUARD | PAGE_WRITECOPY,
-    PAGE_GUARD | PAGE_EXECUTE_READWRITE,
-    PAGE_GUARD | PAGE_EXECUTE_WRITECOPY,
-    PAGE_NOACCESS,
-    PAGE_WRITECOMBINE | PAGE_READONLY,
-    PAGE_WRITECOMBINE | PAGE_EXECUTE,
-    PAGE_WRITECOMBINE | PAGE_EXECUTE_READ,
-    PAGE_WRITECOMBINE | PAGE_READWRITE,
-    PAGE_WRITECOMBINE | PAGE_WRITECOPY,
-    PAGE_WRITECOMBINE | PAGE_EXECUTE_READWRITE,
-    PAGE_WRITECOMBINE | PAGE_EXECUTE_WRITECOPY
-};
-
 ULONG MmGlobalKernelPageDirectory[4096];
-
-/* Template PTE and PDE for a kernel page */
-MMPDE ValidKernelPde = {.u.Hard.Valid = 1};
-MMPTE ValidKernelPte = {.u.Hard.Valid = 1, .u.Hard.Sbo = 1};
-
-/* Template PDE for a demand-zero page */
-MMPDE DemandZeroPde  = {.u.Long = (MM_READWRITE << MM_PTE_SOFTWARE_PROTECTION_BITS)};
-MMPTE DemandZeroPte  = {.u.Long = (MM_READWRITE << MM_PTE_SOFTWARE_PROTECTION_BITS)};
-
-/* Template PTE for prototype page */
-MMPTE PrototypePte = {.u.Long = (MM_READWRITE << MM_PTE_SOFTWARE_PROTECTION_BITS) | PTE_PROTOTYPE | (MI_PTE_LOOKUP_NEEDED << PAGE_SHIFT)};
+MMPDE HyperTemplatePde;
 
 /* PRIVATE FUNCTIONS **********************************************************/
 
@@ -150,6 +49,25 @@ MmUpdatePageDir(IN PEPROCESS Process,
     return;
 }
 
+NTSTATUS
+NTAPI
+Mmi386ReleaseMmInfo(IN PEPROCESS Process)
+{
+    UNIMPLEMENTED;
+    while (TRUE);
+    return 0;
+}
+
+NTSTATUS
+NTAPI
+MmInitializeHandBuiltProcess(IN PEPROCESS Process,
+                             IN PULONG DirectoryTableBase)
+{
+    UNIMPLEMENTED;
+    while (TRUE);
+    return STATUS_SUCCESS;
+}
+
 PULONG
 NTAPI
 MmGetPageDirectory(VOID)
@@ -328,7 +246,16 @@ MmInitGlobalKernelPageDirectory(VOID)
 {
     ULONG i;
     PULONG CurrentPageDirectory = (PULONG)PDE_BASE;
-
+    extern MMPTE HyperTemplatePte;
+    
+    /* Setup PTE template */
+    HyperTemplatePte.u.Long = 0;
+    HyperTemplatePte.u.Hard.Valid = 1;
+    HyperTemplatePte.u.Hard.Access = 1;
+
+    /* Setup PDE template */
+    HyperTemplatePde.u.Long = 0;
+    HyperTemplatePde.u.Hard.Valid = 1;
         
     /* Loop the 2GB of address space which belong to the kernel */
     for (i = MiGetPdeOffset(MmSystemRangeStart); i < 2048; i++)