IN BDS_LOAD_OPTION *BootOption\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_DEVICE_PATH* FdtDevicePath;\r
- EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL *EfiDevicePathFromTextProtocol;\r
+ EFI_STATUS Status;\r
+ EFI_DEVICE_PATH* FdtDevicePath;\r
+ EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL* EfiDevicePathFromTextProtocol;\r
+ UINT32 LoaderType;\r
\r
Status = EFI_UNSUPPORTED;\r
+ LoaderType = ReadUnaligned32 (&BootOption->OptionalData->LoaderType);\r
\r
- if (BootOption->OptionalData->LoaderType == BDS_LOADER_EFI_APPLICATION) {\r
+ if (LoaderType == BDS_LOADER_EFI_APPLICATION) {\r
// Need to connect every drivers to ensure no dependencies are missing for the application\r
BdsConnectAllDrivers();\r
\r
Status = BdsStartEfiApplication (mImageHandle, BootOption->FilePathList);\r
- } else if (BootOption->OptionalData->LoaderType == BDS_LOADER_KERNEL_LINUX_ATAG) {\r
+ } else if (LoaderType == BDS_LOADER_KERNEL_LINUX_ATAG) {\r
Status = BdsBootLinux (BootOption->FilePathList, BootOption->OptionalData->Arguments, NULL);\r
- } else if (BootOption->OptionalData->LoaderType == BDS_LOADER_KERNEL_LINUX_FDT) {\r
+ } else if (LoaderType == BDS_LOADER_KERNEL_LINUX_FDT) {\r
// Convert the FDT path into a Device Path\r
Status = gBS->LocateProtocol (&gEfiDevicePathFromTextProtocolGuid, NULL, (VOID **)&EfiDevicePathFromTextProtocol);\r
ASSERT_EFI_ERROR(Status);\r
STATIC\r
EFI_STATUS\r
BootOptionSetFields (\r
- IN BDS_LOAD_OPTION *BootOption,\r
- IN UINT32 Attributes,\r
- IN CHAR16* BootDescription,\r
- IN EFI_DEVICE_PATH_PROTOCOL* DevicePath,\r
- IN BDS_LOADER_TYPE BootType,\r
- IN CHAR8* BootArguments\r
+ IN BDS_LOAD_OPTION* BootOption,\r
+ IN UINT32 Attributes,\r
+ IN CHAR16* BootDescription,\r
+ IN EFI_DEVICE_PATH_PROTOCOL* DevicePath,\r
+ IN BDS_LOADER_TYPE BootType,\r
+ IN CHAR8* BootArguments\r
)\r
{\r
EFI_LOAD_OPTION EfiLoadOption;\r
\r
EFI_STATUS\r
BootOptionCreate (\r
- IN UINT32 Attributes,\r
- IN CHAR16* BootDescription,\r
+ IN UINT32 Attributes,\r
+ IN CHAR16* BootDescription,\r
IN EFI_DEVICE_PATH_PROTOCOL* DevicePath,\r
- IN BDS_LOADER_TYPE BootType,\r
- IN CHAR8* BootArguments,\r
- OUT BDS_LOAD_OPTION **BdsLoadOption\r
+ IN BDS_LOADER_TYPE BootType,\r
+ IN CHAR8* BootArguments,\r
+ OUT BDS_LOAD_OPTION **BdsLoadOption\r
)\r
{\r
- EFI_STATUS Status;\r
- BDS_LOAD_OPTION *BootOption;\r
- CHAR16 BootVariableName[9];\r
+ EFI_STATUS Status;\r
+ BDS_LOAD_OPTION *BootOption;\r
+ CHAR16 BootVariableName[9];\r
UINT16 *BootOrder;\r
UINTN BootOrderSize;\r
\r