]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmPkg: update BdsLib to updated definition of EFI_LOAD_OPTION
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Mon, 11 May 2015 17:37:24 +0000 (17:37 +0000)
committeroliviermartin <oliviermartin@Edk2>
Mon, 11 May 2015 17:37:24 +0000 (17:37 +0000)
Since there is now a formal definition of EFI_LOAD_OPTION, we can no
longer typedef it as a UINT8*. So update the code to use the common
definition, which is not a pointer type, hence the additional changes
to the C code.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
Reviewed-by: Ronald Cron <Ronald.Cron@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17410 6f19259b-4bc3-4df7-8a09-765794883524

ArmPkg/Include/Library/BdsLib.h
ArmPkg/Library/BdsLib/BdsLoadOption.c
ArmPlatformPkg/Bds/BootOption.c

index eb7f8f293fb1ffb4edc2aad57a409d4457bf789f..c6416db8ae79aabb0d46edb1ad86a44348064ce6 100644 (file)
 #ifndef __BDS_ENTRY_H__\r
 #define __BDS_ENTRY_H__\r
 \r
-typedef UINT8* EFI_LOAD_OPTION;\r
-\r
 /**\r
   This is defined by the UEFI specs, don't change it\r
 **/\r
 typedef struct {\r
   UINT16                      LoadOptionIndex;\r
-  EFI_LOAD_OPTION             LoadOption;\r
+  EFI_LOAD_OPTION             *LoadOption;\r
   UINTN                       LoadOptionSize;\r
 \r
   UINT32                      Attributes;\r
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
index 889040e3b63a26be25245ba9954f3b0fc4676a57..bb218f82aaf4d4f8eb5b1aaf467ca8d0484d775a 100644 (file)
@@ -141,7 +141,7 @@ BootOptionSetFields (
   IN UINTN                      OptionalDataSize\r
   )\r
 {\r
-  EFI_LOAD_OPTION               EfiLoadOption;\r
+  EFI_LOAD_OPTION               *EfiLoadOption;\r
   UINTN                         EfiLoadOptionSize;\r
   UINTN                         BootDescriptionSize;\r
   UINT16                        FilePathListLength;\r
@@ -168,8 +168,8 @@ BootOptionSetFields (
 \r
   // Allocate the memory for the EFI Load Option\r
   EfiLoadOptionSize = sizeof(UINT32) + sizeof(UINT16) + BootDescriptionSize + FilePathListLength + OptionalDataSize;\r
-  EfiLoadOption = (EFI_LOAD_OPTION)AllocatePool(EfiLoadOptionSize);\r
-  EfiLoadOptionPtr = EfiLoadOption;\r
+  EfiLoadOption = (EFI_LOAD_OPTION *)AllocatePool(EfiLoadOptionSize);\r
+  EfiLoadOptionPtr = (UINT8 *)EfiLoadOption;\r
 \r
   //\r
   // Populate the EFI Load Option and BDS Boot Option structures\r