]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPkg/Library/BdsLib/BdsLoadOption.c
ArmPkg: update BdsLib to updated definition of EFI_LOAD_OPTION
[mirror_edk2.git] / ArmPkg / Library / BdsLib / BdsLoadOption.c
index be5ed41980a325177414fea9f2b9ea9884b77bab..766a9890fc090c77c5bd40c964626d5040e2ae4e 100644 (file)
 \r
 EFI_STATUS\r
 BootOptionParseLoadOption (\r
-  IN     EFI_LOAD_OPTION EfiLoadOption,\r
+  IN     EFI_LOAD_OPTION *EfiLoadOption,\r
   IN     UINTN           EfiLoadOptionSize,\r
   IN OUT BDS_LOAD_OPTION **BdsLoadOption\r
   )\r
 {\r
   BDS_LOAD_OPTION *LoadOption;\r
   UINTN           DescriptionLength;\r
+  UINTN           EfiLoadOptionPtr;\r
 \r
   if (EfiLoadOption == NULL) {\r
     return EFI_INVALID_PARAMETER;\r
@@ -41,22 +42,23 @@ BootOptionParseLoadOption (
     LoadOption = *BdsLoadOption;\r
   }\r
 \r
+  EfiLoadOptionPtr           = (UINTN)EfiLoadOption;\r
   LoadOption->LoadOption     = EfiLoadOption;\r
   LoadOption->LoadOptionSize = EfiLoadOptionSize;\r
 \r
-  LoadOption->Attributes         = *(UINT32*)EfiLoadOption;\r
-  LoadOption->FilePathListLength = *(UINT16*)(EfiLoadOption + sizeof(UINT32));\r
-  LoadOption->Description        = (CHAR16*)(EfiLoadOption + sizeof(UINT32) + sizeof(UINT16));\r
+  LoadOption->Attributes         = *(UINT32*)EfiLoadOptionPtr;\r
+  LoadOption->FilePathListLength = *(UINT16*)(EfiLoadOptionPtr + sizeof(UINT32));\r
+  LoadOption->Description        = (CHAR16*)(EfiLoadOptionPtr + sizeof(UINT32) + sizeof(UINT16));\r
   DescriptionLength              = StrSize (LoadOption->Description);\r
-  LoadOption->FilePathList       = (EFI_DEVICE_PATH_PROTOCOL*)(EfiLoadOption + sizeof(UINT32) + sizeof(UINT16) + DescriptionLength);\r
+  LoadOption->FilePathList       = (EFI_DEVICE_PATH_PROTOCOL*)(EfiLoadOptionPtr + sizeof(UINT32) + sizeof(UINT16) + DescriptionLength);\r
 \r
   // If ((End of EfiLoadOptiony - Start of EfiLoadOption) == EfiLoadOptionSize) then No Optional Data\r
-  if ((UINTN)((UINTN)LoadOption->FilePathList + LoadOption->FilePathListLength - (UINTN)EfiLoadOption) == EfiLoadOptionSize) {\r
+  if ((UINTN)((UINTN)LoadOption->FilePathList + LoadOption->FilePathListLength - EfiLoadOptionPtr) == EfiLoadOptionSize) {\r
     LoadOption->OptionalData     = NULL;\r
     LoadOption->OptionalDataSize = 0;\r
   } else {\r
     LoadOption->OptionalData     = (VOID*)((UINTN)(LoadOption->FilePathList) + LoadOption->FilePathListLength);\r
-    LoadOption->OptionalDataSize = EfiLoadOptionSize - ((UINTN)LoadOption->OptionalData - (UINTN)EfiLoadOption);\r
+    LoadOption->OptionalDataSize = EfiLoadOptionSize - ((UINTN)LoadOption->OptionalData - EfiLoadOptionPtr);\r
   }\r
 \r
   if (*BdsLoadOption == NULL) {\r
@@ -73,7 +75,7 @@ BootOptionFromLoadOptionVariable (
   )\r
 {\r
   EFI_STATUS            Status;\r
-  EFI_LOAD_OPTION       EfiLoadOption;\r
+  EFI_LOAD_OPTION       *EfiLoadOption;\r
   UINTN                 EfiLoadOptionSize;\r
 \r
   Status = GetGlobalEnvironmentVariable (BootVariableName, NULL, &EfiLoadOptionSize, (VOID**)&EfiLoadOption);\r
@@ -141,12 +143,12 @@ BootOptionToLoadOptionVariable (
   // Allocate the memory for the EFI Load Option\r
   BdsLoadOption->LoadOptionSize = sizeof(UINT32) + sizeof(UINT16) + DescriptionSize + BdsLoadOption->FilePathListLength + BdsLoadOption->OptionalDataSize;\r
 \r
-  BdsLoadOption->LoadOption = (EFI_LOAD_OPTION)AllocateZeroPool (BdsLoadOption->LoadOptionSize);\r
+  BdsLoadOption->LoadOption = (EFI_LOAD_OPTION *)AllocateZeroPool (BdsLoadOption->LoadOptionSize);\r
   if (BdsLoadOption->LoadOption == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
 \r
-  EfiLoadOptionPtr = BdsLoadOption->LoadOption;\r
+  EfiLoadOptionPtr = (UINT8 *) BdsLoadOption->LoadOption;\r
 \r
   //\r
   // Populate the EFI Load Option and BDS Boot Option structures\r