Author: ion Date: Sun Feb 5 06:02:11 2017 New Revision: 73693 URL: http://svn.reactos.org/svn/reactos?rev=73693&view=rev Log: [ROSLOAD]: Implement most of OslMain, which will try to initialize BootLib in Virtual Protected Mode (mostly unimplemented). [BOOTLIB]: Fix GCC build. Bootmgr now correctly switches execution into rosload, which must now be implemented.
Modified: trunk/reactos/boot/environ/app/rosload/rosload.c trunk/reactos/boot/environ/lib/firmware/efi/firmware.c trunk/reactos/boot/environ/lib/misc/image.c Modified: trunk/reactos/boot/environ/app/rosload/rosload.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/environ/app/rosload/rosload.c?rev=73693&r1=73692&r2=73693&view=diff ============================================================================== --- trunk/reactos/boot/environ/app/rosload/rosload.c [iso-8859-1] (original) +++ trunk/reactos/boot/environ/app/rosload/rosload.c [iso-8859-1] Sun Feb 5 06:02:11 2017 @@ -33,7 +33,22 @@ _In_ PBOOT_APPLICATION_PARAMETER_BLOCK BootParameters ) { - EfiPrintf(L"ReactOS UEFI OS Loader Initializing...\r\n"); - return STATUS_NOT_IMPLEMENTED; + BL_LIBRARY_PARAMETERS LibraryParameters; + NTSTATUS Status; + + /* Setup the boot library parameters for this application */ + BlSetupDefaultParameters(&LibraryParameters); + LibraryParameters.TranslationType = BlVirtual; + LibraryParameters.LibraryFlags = BL_LIBRARY_FLAG_INITIALIZATION_COMPLETED; + LibraryParameters.MinimumAllocationCount = 1024; + LibraryParameters.MinimumHeapSize = 2 * 1024 * 1024; + LibraryParameters.HeapAllocationAttributes = 0x20000; + LibraryParameters.FontBaseDirectory = L"\\Reactos\\Boot\\Fonts"; + LibraryParameters.DescriptorCount = 512; + Status = BlInitializeLibrary(BootParameters, &LibraryParameters); + + //EfiPrintf(L"ReactOS UEFI OS Loader Initializing...\r\n"); + EfiConOut->OutputString(EfiConOut, L"ReactOS UEFI OS Loader Initializing...\r\n"); + return Status; } Modified: trunk/reactos/boot/environ/lib/firmware/efi/firmware.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/environ/lib/firmware/efi/firmware.c?rev=73693&r1=73692&r2=73693&view=diff ============================================================================== --- trunk/reactos/boot/environ/lib/firmware/efi/firmware.c [iso-8859-1] (original) +++ trunk/reactos/boot/environ/lib/firmware/efi/firmware.c [iso-8859-1] Sun Feb 5 06:02:11 2017 @@ -1758,7 +1758,7 @@ /* FIXME: Not supported */ Status = STATUS_NOT_SUPPORTED; } - else if (FirmwareData->Version >= 2) + else if (FirmwareData->Version >= BL_FIRMWARE_DESCRIPTOR_VERSION) { /* Version 2 -- save the data */ EfiFirmwareData = *FirmwareData; Modified: trunk/reactos/boot/environ/lib/misc/image.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/environ/lib/misc/image.c?rev=73693&r1=73692&r2=73693&view=diff ============================================================================== --- trunk/reactos/boot/environ/lib/misc/image.c [iso-8859-1] (original) +++ trunk/reactos/boot/environ/lib/misc/image.c [iso-8859-1] Sun Feb 5 06:02:11 2017 @@ -22,7 +22,7 @@ KDESCRIPTOR BootAppGdtRegister; KDESCRIPTOR BootAppIdtRegister; PVOID BootApp32EntryRoutine; -PVOID BootApp32Parameters; +PBOOT_APPLICATION_PARAMETER_BLOCK BootApp32Parameters; PVOID BootApp32Stack; /* FUNCTIONS *****************************************************************/ @@ -1710,7 +1710,7 @@ ParameterBlock->Signature[1] = BOOT_APPLICATION_SIGNATURE_2; ParameterBlock->MemoryTranslationType = MmTranslationType; ParameterBlock->ImageType = IMAGE_FILE_MACHINE_I386; - ParameterBlock->ImageBase = (ULONGLONG)ImageBase; + ParameterBlock->ImageBase = (ULONG_PTR)ImageBase; ParameterBlock->ImageSize = NtHeaders->OptionalHeader.SizeOfImage; /* Get the offset to the memory data */ @@ -1870,9 +1870,6 @@ /* Disable the kernel debugger */ BlBdStop(); #endif - /* Not yet implemented. This is the last step! */ - EfiPrintf(L"EFI APPLICATION START!!!\r\n"); - /* Make it so */ Archx86TransferTo32BitApplicationAsm();