\r
#pragma pack (1)\r
typedef struct {\r
- EFI_DEVICE_PATH_PROTOCOL FilePathHeader;\r
- CHAR16 FilePath[ARRAY_SIZE (L"kernel")];\r
+ EFI_DEVICE_PATH_PROTOCOL FilePathHeader;\r
+ CHAR16 FilePath[ARRAY_SIZE (L"kernel")];\r
} KERNEL_FILE_DEVPATH;\r
\r
typedef struct {\r
- VENDOR_DEVICE_PATH VenMediaNode;\r
- KERNEL_FILE_DEVPATH FileNode;\r
- EFI_DEVICE_PATH_PROTOCOL EndNode;\r
+ VENDOR_DEVICE_PATH VenMediaNode;\r
+ KERNEL_FILE_DEVPATH FileNode;\r
+ EFI_DEVICE_PATH_PROTOCOL EndNode;\r
} KERNEL_VENMEDIA_FILE_DEVPATH;\r
#pragma pack ()\r
\r
-STATIC CONST KERNEL_VENMEDIA_FILE_DEVPATH mKernelDevicePath = {\r
+STATIC CONST KERNEL_VENMEDIA_FILE_DEVPATH mKernelDevicePath = {\r
{\r
{\r
MEDIA_DEVICE_PATH, MEDIA_VENDOR_DP,\r
- { sizeof (VENDOR_DEVICE_PATH) }\r
+ { sizeof (VENDOR_DEVICE_PATH) }\r
},\r
QEMU_KERNEL_LOADER_FS_MEDIA_GUID\r
- }, {\r
+ }, {\r
{\r
MEDIA_DEVICE_PATH, MEDIA_FILEPATH_DP,\r
- { sizeof (KERNEL_FILE_DEVPATH) }\r
+ { sizeof (KERNEL_FILE_DEVPATH) }\r
},\r
L"kernel",\r
- }, {\r
+ }, {\r
END_DEVICE_PATH_TYPE, END_ENTIRE_DEVICE_PATH_SUBTYPE,\r
{ sizeof (EFI_DEVICE_PATH_PROTOCOL) }\r
}\r
STATIC\r
VOID\r
FreeLegacyImage (\r
- IN OVMF_LOADED_X86_LINUX_KERNEL *LoadedImage\r
+ IN OVMF_LOADED_X86_LINUX_KERNEL *LoadedImage\r
)\r
{\r
if (LoadedImage->SetupBuf != NULL) {\r
- FreePages (LoadedImage->SetupBuf,\r
- EFI_SIZE_TO_PAGES (LoadedImage->SetupSize));\r
+ FreePages (\r
+ LoadedImage->SetupBuf,\r
+ EFI_SIZE_TO_PAGES (LoadedImage->SetupSize)\r
+ );\r
}\r
+\r
if (LoadedImage->KernelBuf != NULL) {\r
- FreePages (LoadedImage->KernelBuf,\r
- EFI_SIZE_TO_PAGES (LoadedImage->KernelInitialSize));\r
+ FreePages (\r
+ LoadedImage->KernelBuf,\r
+ EFI_SIZE_TO_PAGES (LoadedImage->KernelInitialSize)\r
+ );\r
}\r
+\r
if (LoadedImage->CommandLine != NULL) {\r
- FreePages (LoadedImage->CommandLine,\r
- EFI_SIZE_TO_PAGES (LoadedImage->CommandLineSize));\r
+ FreePages (\r
+ LoadedImage->CommandLine,\r
+ EFI_SIZE_TO_PAGES (LoadedImage->CommandLineSize)\r
+ );\r
}\r
+\r
if (LoadedImage->InitrdData != NULL) {\r
- FreePages (LoadedImage->InitrdData,\r
- EFI_SIZE_TO_PAGES (LoadedImage->InitrdSize));\r
+ FreePages (\r
+ LoadedImage->InitrdData,\r
+ EFI_SIZE_TO_PAGES (LoadedImage->InitrdSize)\r
+ );\r
}\r
}\r
\r
STATIC\r
EFI_STATUS\r
QemuLoadLegacyImage (\r
- OUT EFI_HANDLE *ImageHandle\r
+ OUT EFI_HANDLE *ImageHandle\r
)\r
{\r
- EFI_STATUS Status;\r
- UINTN KernelSize;\r
- UINTN SetupSize;\r
- OVMF_LOADED_X86_LINUX_KERNEL *LoadedImage;\r
+ EFI_STATUS Status;\r
+ UINTN KernelSize;\r
+ UINTN SetupSize;\r
+ OVMF_LOADED_X86_LINUX_KERNEL *LoadedImage;\r
\r
QemuFwCfgSelectItem (QemuFwCfgItemKernelSize);\r
KernelSize = (UINTN)QemuFwCfgRead32 ();\r
QemuFwCfgSelectItem (QemuFwCfgItemKernelSetupSize);\r
SetupSize = (UINTN)QemuFwCfgRead32 ();\r
\r
- if (KernelSize == 0 || SetupSize == 0) {\r
+ if ((KernelSize == 0) || (SetupSize == 0)) {\r
DEBUG ((DEBUG_INFO, "qemu -kernel was not used.\n"));\r
return EFI_NOT_FOUND;\r
}\r
}\r
\r
LoadedImage->SetupSize = SetupSize;\r
- LoadedImage->SetupBuf = LoadLinuxAllocateKernelSetupPages (\r
- EFI_SIZE_TO_PAGES (LoadedImage->SetupSize));\r
+ LoadedImage->SetupBuf = LoadLinuxAllocateKernelSetupPages (\r
+ EFI_SIZE_TO_PAGES (LoadedImage->SetupSize)\r
+ );\r
if (LoadedImage->SetupBuf == NULL) {\r
DEBUG ((DEBUG_ERROR, "Unable to allocate memory for kernel setup!\n"));\r
Status = EFI_OUT_OF_RESOURCES;\r
QemuFwCfgReadBytes (LoadedImage->SetupSize, LoadedImage->SetupBuf);\r
DEBUG ((DEBUG_INFO, " [done]\n"));\r
\r
- Status = LoadLinuxCheckKernelSetup (LoadedImage->SetupBuf,\r
- LoadedImage->SetupSize);\r
+ Status = LoadLinuxCheckKernelSetup (\r
+ LoadedImage->SetupBuf,\r
+ LoadedImage->SetupSize\r
+ );\r
if (EFI_ERROR (Status)) {\r
goto FreeImage;\r
}\r
}\r
\r
LoadedImage->KernelInitialSize = LoadLinuxGetKernelSize (\r
- LoadedImage->SetupBuf, KernelSize);\r
+ LoadedImage->SetupBuf,\r
+ KernelSize\r
+ );\r
if (LoadedImage->KernelInitialSize == 0) {\r
Status = EFI_UNSUPPORTED;\r
goto FreeImage;\r
if (LoadedImage->CommandLineSize > 0) {\r
LoadedImage->CommandLine = LoadLinuxAllocateCommandLinePages (\r
EFI_SIZE_TO_PAGES (\r
- LoadedImage->CommandLineSize));\r
+ LoadedImage->CommandLineSize\r
+ )\r
+ );\r
if (LoadedImage->CommandLine == NULL) {\r
DEBUG ((DEBUG_ERROR, "Unable to allocate memory for kernel command line!\n"));\r
Status = EFI_OUT_OF_RESOURCES;\r
goto FreeImage;\r
}\r
+\r
QemuFwCfgSelectItem (QemuFwCfgItemCommandLineData);\r
QemuFwCfgReadBytes (LoadedImage->CommandLineSize, LoadedImage->CommandLine);\r
}\r
\r
- Status = LoadLinuxSetCommandLine (LoadedImage->SetupBuf,\r
- LoadedImage->CommandLine);\r
+ Status = LoadLinuxSetCommandLine (\r
+ LoadedImage->SetupBuf,\r
+ LoadedImage->CommandLine\r
+ );\r
if (EFI_ERROR (Status)) {\r
goto FreeImage;\r
}\r
if (LoadedImage->InitrdSize > 0) {\r
LoadedImage->InitrdData = LoadLinuxAllocateInitrdPages (\r
LoadedImage->SetupBuf,\r
- EFI_SIZE_TO_PAGES (LoadedImage->InitrdSize));\r
+ EFI_SIZE_TO_PAGES (LoadedImage->InitrdSize)\r
+ );\r
if (LoadedImage->InitrdData == NULL) {\r
DEBUG ((DEBUG_ERROR, "Unable to allocate memory for initrd!\n"));\r
Status = EFI_OUT_OF_RESOURCES;\r
goto FreeImage;\r
}\r
- DEBUG ((DEBUG_INFO, "Initrd size: 0x%x\n",\r
- (UINT32)LoadedImage->InitrdSize));\r
+\r
+ DEBUG ((\r
+ DEBUG_INFO,\r
+ "Initrd size: 0x%x\n",\r
+ (UINT32)LoadedImage->InitrdSize\r
+ ));\r
DEBUG ((DEBUG_INFO, "Reading initrd image ..."));\r
QemuFwCfgSelectItem (QemuFwCfgItemInitrdData);\r
QemuFwCfgReadBytes (LoadedImage->InitrdSize, LoadedImage->InitrdData);\r
DEBUG ((DEBUG_INFO, " [done]\n"));\r
}\r
\r
- Status = LoadLinuxSetInitrd (LoadedImage->SetupBuf, LoadedImage->InitrdData,\r
- LoadedImage->InitrdSize);\r
+ Status = LoadLinuxSetInitrd (\r
+ LoadedImage->SetupBuf,\r
+ LoadedImage->InitrdData,\r
+ LoadedImage->InitrdSize\r
+ );\r
if (EFI_ERROR (Status)) {\r
goto FreeImage;\r
}\r
\r
*ImageHandle = NULL;\r
- Status = gBS->InstallProtocolInterface (ImageHandle,\r
- &gOvmfLoadedX86LinuxKernelProtocolGuid, EFI_NATIVE_INTERFACE,\r
- LoadedImage);\r
+ Status = gBS->InstallProtocolInterface (\r
+ ImageHandle,\r
+ &gOvmfLoadedX86LinuxKernelProtocolGuid,\r
+ EFI_NATIVE_INTERFACE,\r
+ LoadedImage\r
+ );\r
if (EFI_ERROR (Status)) {\r
goto FreeImage;\r
}\r
+\r
return EFI_SUCCESS;\r
\r
FreeImage:\r
STATIC\r
EFI_STATUS\r
QemuStartLegacyImage (\r
- IN EFI_HANDLE ImageHandle\r
+ IN EFI_HANDLE ImageHandle\r
)\r
{\r
EFI_STATUS Status;\r
STATIC\r
EFI_STATUS\r
QemuUnloadLegacyImage (\r
- IN EFI_HANDLE ImageHandle\r
+ IN EFI_HANDLE ImageHandle\r
)\r
{\r
EFI_STATUS Status;\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- Status = gBS->UninstallProtocolInterface (ImageHandle,\r
- &gOvmfLoadedX86LinuxKernelProtocolGuid, LoadedImage);\r
+ Status = gBS->UninstallProtocolInterface (\r
+ ImageHandle,\r
+ &gOvmfLoadedX86LinuxKernelProtocolGuid,\r
+ LoadedImage\r
+ );\r
ASSERT_EFI_ERROR (Status);\r
\r
FreeLegacyImage (LoadedImage);\r
EFI_STATUS\r
EFIAPI\r
QemuLoadKernelImage (\r
- OUT EFI_HANDLE *ImageHandle\r
+ OUT EFI_HANDLE *ImageHandle\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_HANDLE KernelImageHandle;\r
- EFI_LOADED_IMAGE_PROTOCOL *KernelLoadedImage;\r
- UINTN CommandLineSize;\r
- CHAR8 *CommandLine;\r
- UINTN InitrdSize;\r
+ EFI_STATUS Status;\r
+ EFI_HANDLE KernelImageHandle;\r
+ EFI_LOADED_IMAGE_PROTOCOL *KernelLoadedImage;\r
+ UINTN CommandLineSize;\r
+ CHAR8 *CommandLine;\r
+ UINTN InitrdSize;\r
\r
//\r
// Redundant assignment to work around GCC48/GCC49 limitations.\r
&KernelImageHandle\r
);\r
switch (Status) {\r
- case EFI_SUCCESS:\r
- break;\r
+ case EFI_SUCCESS:\r
+ break;\r
\r
- case EFI_NOT_FOUND:\r
- //\r
- // The image does not exist - no -kernel image was supplied via the\r
- // command line so no point in invoking the legacy fallback\r
- //\r
- return EFI_NOT_FOUND;\r
+ case EFI_NOT_FOUND:\r
+ //\r
+ // The image does not exist - no -kernel image was supplied via the\r
+ // command line so no point in invoking the legacy fallback\r
+ //\r
+ return EFI_NOT_FOUND;\r
\r
- case EFI_SECURITY_VIOLATION:\r
- //\r
- // Since the image has been loaded, we need to unload it before proceeding\r
- // to the EFI_ACCESS_DENIED case below.\r
- //\r
- gBS->UnloadImage (KernelImageHandle);\r
+ case EFI_SECURITY_VIOLATION:\r
+ //\r
+ // Since the image has been loaded, we need to unload it before proceeding\r
+ // to the EFI_ACCESS_DENIED case below.\r
+ //\r
+ gBS->UnloadImage (KernelImageHandle);\r
//\r
// Fall through\r
//\r
- case EFI_ACCESS_DENIED:\r
+ case EFI_ACCESS_DENIED:\r
//\r
// We are running with UEFI secure boot enabled, and the image failed to\r
// authenticate. For compatibility reasons, we fall back to the legacy\r
//\r
// Fall through\r
//\r
- case EFI_UNSUPPORTED:\r
- //\r
- // The image is not natively supported or cross-type supported. Let's try\r
- // loading it using the loader that parses the bzImage metadata directly.\r
- //\r
- Status = QemuLoadLegacyImage (&KernelImageHandle);\r
- if (EFI_ERROR (Status)) {\r
- DEBUG ((DEBUG_ERROR, "%a: QemuLoadLegacyImage(): %r\n", __FUNCTION__,\r
- Status));\r
+ case EFI_UNSUPPORTED:\r
+ //\r
+ // The image is not natively supported or cross-type supported. Let's try\r
+ // loading it using the loader that parses the bzImage metadata directly.\r
+ //\r
+ Status = QemuLoadLegacyImage (&KernelImageHandle);\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((\r
+ DEBUG_ERROR,\r
+ "%a: QemuLoadLegacyImage(): %r\n",\r
+ __FUNCTION__,\r
+ Status\r
+ ));\r
+ return Status;\r
+ }\r
+\r
+ *ImageHandle = KernelImageHandle;\r
+ return EFI_SUCCESS;\r
+\r
+ default:\r
+ DEBUG ((DEBUG_ERROR, "%a: LoadImage(): %r\n", __FUNCTION__, Status));\r
return Status;\r
- }\r
- *ImageHandle = KernelImageHandle;\r
- return EFI_SUCCESS;\r
-\r
- default:\r
- DEBUG ((DEBUG_ERROR, "%a: LoadImage(): %r\n", __FUNCTION__, Status));\r
- return Status;\r
}\r
\r
//\r
// Verify NUL-termination of the command line.\r
//\r
if (CommandLine[CommandLineSize - 1] != '\0') {\r
- DEBUG ((DEBUG_ERROR, "%a: kernel command line is not NUL-terminated\n",\r
- __FUNCTION__));\r
+ DEBUG ((\r
+ DEBUG_ERROR,\r
+ "%a: kernel command line is not NUL-terminated\n",\r
+ __FUNCTION__\r
+ ));\r
Status = EFI_PROTOCOL_ERROR;\r
goto FreeCommandLine;\r
}\r
//\r
// Drop the terminating NUL, convert to UTF-16.\r
//\r
- KernelLoadedImage->LoadOptionsSize = (UINT32) ((CommandLineSize - 1) * 2);\r
+ KernelLoadedImage->LoadOptionsSize = (UINT32)((CommandLineSize - 1) * 2);\r
}\r
\r
QemuFwCfgSelectItem (QemuFwCfgItemInitrdSize);\r
KernelLoadedImage->LoadOptionsSize += 2;\r
\r
KernelLoadedImage->LoadOptions = AllocatePool (\r
- KernelLoadedImage->LoadOptionsSize);\r
+ KernelLoadedImage->LoadOptionsSize\r
+ );\r
if (KernelLoadedImage->LoadOptions == NULL) {\r
KernelLoadedImage->LoadOptionsSize = 0;\r
- Status = EFI_OUT_OF_RESOURCES;\r
+ Status = EFI_OUT_OF_RESOURCES;\r
goto FreeCommandLine;\r
}\r
\r
(CommandLineSize == 0) ? "" : CommandLine,\r
(InitrdSize == 0) ? "" : " initrd=initrd"\r
);\r
- DEBUG ((DEBUG_INFO, "%a: command line: \"%s\"\n", __FUNCTION__,\r
- (CHAR16 *)KernelLoadedImage->LoadOptions));\r
+ DEBUG ((\r
+ DEBUG_INFO,\r
+ "%a: command line: \"%s\"\n",\r
+ __FUNCTION__,\r
+ (CHAR16 *)KernelLoadedImage->LoadOptions\r
+ ));\r
}\r
\r
*ImageHandle = KernelImageHandle;\r
- Status = EFI_SUCCESS;\r
+ Status = EFI_SUCCESS;\r
\r
FreeCommandLine:\r
if (CommandLineSize > 0) {\r
FreePool (CommandLine);\r
}\r
+\r
UnloadImage:\r
if (EFI_ERROR (Status)) {\r
gBS->UnloadImage (KernelImageHandle);\r
EFI_STATUS\r
EFIAPI\r
QemuStartKernelImage (\r
- IN OUT EFI_HANDLE *ImageHandle\r
+ IN OUT EFI_HANDLE *ImageHandle\r
)\r
{\r
EFI_STATUS Status;\r
NULL, // ExitDataSize\r
NULL // ExitData\r
);\r
-#ifdef MDE_CPU_IA32\r
+ #ifdef MDE_CPU_IA32\r
if (Status == EFI_UNSUPPORTED) {\r
- EFI_HANDLE KernelImageHandle;\r
+ EFI_HANDLE KernelImageHandle;\r
\r
//\r
// On IA32, EFI_UNSUPPORTED means that the image's machine type is X64 while\r
//\r
return Status;\r
}\r
+\r
//\r
// Swap in the legacy-loaded image.\r
//\r
*ImageHandle = KernelImageHandle;\r
return QemuStartLegacyImage (KernelImageHandle);\r
}\r
-#endif\r
+\r
+ #endif\r
return Status;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
QemuUnloadKernelImage (\r
- IN EFI_HANDLE ImageHandle\r
+ IN EFI_HANDLE ImageHandle\r
)\r
{\r
- EFI_LOADED_IMAGE_PROTOCOL *KernelLoadedImage;\r
- EFI_STATUS Status;\r
+ EFI_LOADED_IMAGE_PROTOCOL *KernelLoadedImage;\r
+ EFI_STATUS Status;\r
\r
Status = gBS->OpenProtocol (\r
ImageHandle,\r
FreePool (KernelLoadedImage->LoadOptions);\r
KernelLoadedImage->LoadOptions = NULL;\r
}\r
+\r
KernelLoadedImage->LoadOptionsSize = 0;\r
\r
return gBS->UnloadImage (ImageHandle);\r