Check ExitBootServices() status code
Alle Prüfungen waren erfolgreich
ci/woodpecker/push/build Pipeline was successful

Dieser Commit ist enthalten in:
2023-01-15 16:52:02 +01:00
Ursprung fb60625abc
Commit 0461d975e0
3 geänderte Dateien mit 17 neuen und 3 gelöschten Zeilen

Datei anzeigen

@@ -113,7 +113,12 @@ BlEnablePaging(IN PLIST_ENTRY MemoryMappings,
/* Exit EFI Boot Services */ /* Exit EFI Boot Services */
BlDbgPrint(L"Exiting EFI boot services\n"); BlDbgPrint(L"Exiting EFI boot services\n");
EfiSystemTable->BootServices->ExitBootServices(EfiImageHandle, MemoryMap->MapKey); Status = EfiSystemTable->BootServices->ExitBootServices(EfiImageHandle, MemoryMap->MapKey);
if(Status != STATUS_EFI_SUCCESS)
{
BlDbgPrint(L"Failed to exit boot services (Status code: %lx)\n", Status);
return STATUS_EFI_ABORTED;
}
/* No runtime services should touch boot services code, so get rid of it all at this point */ /* No runtime services should touch boot services code, so get rid of it all at this point */
EfiSystemTable->RuntimeServices->SetVirtualAddressMap(MemoryMap->MapSize, MemoryMap->DescriptorSize, EfiSystemTable->RuntimeServices->SetVirtualAddressMap(MemoryMap->MapSize, MemoryMap->DescriptorSize,

Datei anzeigen

@@ -199,7 +199,12 @@ BlEnablePaging(IN PLIST_ENTRY MemoryMappings,
/* Exit EFI Boot Services */ /* Exit EFI Boot Services */
BlDbgPrint(L"Exiting EFI boot services\n"); BlDbgPrint(L"Exiting EFI boot services\n");
EfiSystemTable->BootServices->ExitBootServices(EfiImageHandle, MemoryMap->MapKey); Status = EfiSystemTable->BootServices->ExitBootServices(EfiImageHandle, MemoryMap->MapKey);
if(Status != STATUS_EFI_SUCCESS)
{
BlDbgPrint(L"Failed to exit boot services (Status code: %lx)\n", Status);
return STATUS_EFI_ABORTED;
}
/* No runtime services should touch boot services code, so get rid of it all at this point */ /* No runtime services should touch boot services code, so get rid of it all at this point */
EfiSystemTable->RuntimeServices->SetVirtualAddressMap(MemoryMap->MapSize, MemoryMap->DescriptorSize, EfiSystemTable->RuntimeServices->SetVirtualAddressMap(MemoryMap->MapSize, MemoryMap->DescriptorSize,

Datei anzeigen

@@ -238,7 +238,11 @@ XtpBootSequence(IN PEFI_FILE_HANDLE BootDir,
/* Enable paging */ /* Enable paging */
EfiSystemTable->BootServices->HandleProtocol(EfiImageHandle, &LoadedImageGuid, (PVOID*)&ImageProtocol); EfiSystemTable->BootServices->HandleProtocol(EfiImageHandle, &LoadedImageGuid, (PVOID*)&ImageProtocol);
XtLdrProtocol->EnablePaging(&MemoryMappings, VirtualAddress, ImageProtocol, &XtPageMap); Status = XtLdrProtocol->EnablePaging(&MemoryMappings, VirtualAddress, ImageProtocol, &XtPageMap);
if(Status != STATUS_EFI_SUCCESS)
{
return Status;
}
/* Call XTOS kernel */ /* Call XTOS kernel */
XtLdrProtocol->DbgPrint(L"Booting the XTOS kernel\n"); XtLdrProtocol->DbgPrint(L"Booting the XTOS kernel\n");