[NTOS:MM]
[reactos.git] / reactos / ntoskrnl / mm / ARM3 / i386 / init.c
index d4f05fb..05c1007 100644 (file)
@@ -42,7 +42,7 @@ MMPTE MmDecommittedPte = {{MM_DECOMMIT << MM_PTE_SOFTWARE_PROTECTION_BITS}};
 VOID
 NTAPI
 INIT_FUNCTION
-MiInitializeSessionSpaceLayout()
+MiInitializeSessionSpaceLayout(VOID)
 {
     //
     // Set the size of session view, pool, and image
@@ -245,19 +245,23 @@ MiInitMachineDependent(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
     PMMPTE StartPde, EndPde, PointerPte, LastPte;
     MMPTE TempPde, TempPte;
     PVOID NonPagedPoolExpansionVa;
+    SIZE_T NonPagedSystemSize;
     KIRQL OldIrql;
     PMMPFN Pfn1;
     ULONG Flags;
 
+#if defined(_GLOBAL_PAGES_ARE_AWESOME_)
+
     /* Check for global bit */
-#if 0
     if (KeFeatureBits & KF_GLOBAL_PAGE)
     {
         /* Set it on the template PTE and PDE */
         ValidKernelPte.u.Hard.Global = TRUE;
         ValidKernelPde.u.Hard.Global = TRUE;
     }
+
 #endif
+
     /* Now templates are ready */
     TempPte = ValidKernelPte;
     TempPde = ValidKernelPde;
@@ -295,9 +299,9 @@ MiInitMachineDependent(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
     // nonpaged pool expansion (above) and the system PTEs. Note that it is
     // then aligned to a PDE boundary (4MB).
     //
-    MiNonPagedSystemSize = (MmNumberOfSystemPtes + 1) * PAGE_SIZE;
+    NonPagedSystemSize = (MmNumberOfSystemPtes + 1) * PAGE_SIZE;
     MmNonPagedSystemStart = (PVOID)((ULONG_PTR)MmNonPagedPoolStart -
-                                    MiNonPagedSystemSize);
+                                    NonPagedSystemSize);
     MmNonPagedSystemStart = (PVOID)((ULONG_PTR)MmNonPagedSystemStart &
                                     ~(PDE_MAPPED_VA - 1));
 
@@ -489,8 +493,8 @@ MiInitMachineDependent(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
     MI_SET_USAGE(MI_USAGE_PAGE_TABLE);
     MI_SET_PROCESS2("Kernel");
     PageFrameIndex = MiRemoveAnyPage(0);
+    TempPde = ValidKernelPdeLocal;
     TempPde.u.Hard.PageFrameNumber = PageFrameIndex;
-    TempPde.u.Hard.Global = FALSE; // Hyperspace is local!
     MI_WRITE_VALID_PTE(StartPde, TempPde);
 
     /* Flush the TLB */
@@ -539,6 +543,7 @@ MiInitMachineDependent(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
     MI_SET_USAGE(MI_USAGE_PAGE_TABLE);
     MI_SET_PROCESS2("Kernel WS List");
     PageFrameIndex = MiRemoveAnyPage(0);
+    TempPte = ValidKernelPteLocal;
     TempPte.u.Hard.PageFrameNumber = PageFrameIndex;
 
     /* Map the working set list */