[BOOTMGFW]:
[reactos.git] / reactos / boot / environ / lib / bootlib.c
index da676ff..e15da5c 100644 (file)
@@ -19,9 +19,6 @@ PBOOT_APPLICATION_PARAMETER_BLOCK BlpApplicationParameters;
 BL_APPLICATION_ENTRY BlpApplicationEntry;
 BOOLEAN BlpLibraryParametersInitialized;
 
-/* temp */
-BL_TRANSLATION_TYPE MmTranslationType;
-
 /* FUNCTIONS *****************************************************************/
 
 /* HACKKKYYY */
@@ -68,7 +65,7 @@ InitializeLibrary (
     )
 {
     NTSTATUS Status;
-    //PBL_MEMORY_DATA MemoryData;
+    PBL_MEMORY_DATA MemoryData;
     PBL_APPLICATION_ENTRY AppEntry;
     PBL_FIRMWARE_DESCRIPTOR FirmwareDescriptor;
     ULONG_PTR ParamPointer = (ULONG_PTR)BootAppParameters;
@@ -84,7 +81,7 @@ InitializeLibrary (
     }
 
     /* Get sub-structures */
-    //MemoryData = (PBL_MEMORY_DATA)(ParamPointer + BootAppParameters->MemoryDataOffset);
+    MemoryData = (PBL_MEMORY_DATA)(ParamPointer + BootAppParameters->MemoryDataOffset);
     FirmwareDescriptor = (PBL_FIRMWARE_DESCRIPTOR)(ParamPointer + BootAppParameters->FirmwareParametersOffset);
     AppEntry = (PBL_APPLICATION_ENTRY)(ParamPointer + BootAppParameters->AppEntryOffset);
     BlpBootDevice = (PBL_DEVICE_DESCRIPTOR)(ParamPointer + BootAppParameters->BootDeviceOffset);
@@ -125,6 +122,16 @@ InitializeLibrary (
         goto Quickie;
     }
 
+    /* Initialize the memory manager */
+    Status = BlpMmInitialize(MemoryData,
+                             BootAppParameters->MemoryTranslationType,
+                             LibraryParameters);
+    if (!NT_SUCCESS(Status))
+    {
+        EarlyPrint(L"MM init failed!\n");
+        goto Quickie;
+    }
+
     EarlyPrint(L"TODO!\n");
     Status = STATUS_NOT_IMPLEMENTED;
 
@@ -158,11 +165,11 @@ BlInitializeLibrary(
     NTSTATUS Status;
 
     /* Are we re-initializing the library? */
-    if (LibraryParameters->LibraryFlags & 2)
+    if (LibraryParameters->LibraryFlags & BL_LIBRARY_FLAG_REINITIALIZE)
     {
         /* From scratch? */
         BlpLibraryParameters = *LibraryParameters;
-        if (LibraryParameters->LibraryFlags & 4)
+        if (LibraryParameters->LibraryFlags & BL_LIBRARY_FLAG_REINITIALIZE_ALL)
         {
 #if 0
             /* Initialize all the core modules again */