Revision: 17410
          http://sourceforge.net/p/edk2/code/17410
Author:   oliviermartin
Date:     2015-05-11 17:37:24 +0000 (Mon, 11 May 2015)
Log Message:
-----------
ArmPkg: update BdsLib to updated definition of EFI_LOAD_OPTION

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 <[email protected]>
Signed-off-by: Olivier Martin <[email protected]>
Reviewed-by: Ronald Cron <[email protected]>

Modified Paths:
--------------
    trunk/edk2/ArmPkg/Include/Library/BdsLib.h
    trunk/edk2/ArmPkg/Library/BdsLib/BdsLoadOption.c
    trunk/edk2/ArmPlatformPkg/Bds/BootOption.c

Modified: trunk/edk2/ArmPkg/Include/Library/BdsLib.h
===================================================================
--- trunk/edk2/ArmPkg/Include/Library/BdsLib.h  2015-05-11 17:36:09 UTC (rev 
17409)
+++ trunk/edk2/ArmPkg/Include/Library/BdsLib.h  2015-05-11 17:37:24 UTC (rev 
17410)
@@ -15,14 +15,12 @@
 #ifndef __BDS_ENTRY_H__
 #define __BDS_ENTRY_H__
 
-typedef UINT8* EFI_LOAD_OPTION;
-
 /**
   This is defined by the UEFI specs, don't change it
 **/
 typedef struct {
   UINT16                      LoadOptionIndex;
-  EFI_LOAD_OPTION             LoadOption;
+  EFI_LOAD_OPTION             *LoadOption;
   UINTN                       LoadOptionSize;
 
   UINT32                      Attributes;

Modified: trunk/edk2/ArmPkg/Library/BdsLib/BdsLoadOption.c
===================================================================
--- trunk/edk2/ArmPkg/Library/BdsLib/BdsLoadOption.c    2015-05-11 17:36:09 UTC 
(rev 17409)
+++ trunk/edk2/ArmPkg/Library/BdsLib/BdsLoadOption.c    2015-05-11 17:37:24 UTC 
(rev 17410)
@@ -16,13 +16,14 @@
 
 EFI_STATUS
 BootOptionParseLoadOption (
-  IN     EFI_LOAD_OPTION EfiLoadOption,
+  IN     EFI_LOAD_OPTION *EfiLoadOption,
   IN     UINTN           EfiLoadOptionSize,
   IN OUT BDS_LOAD_OPTION **BdsLoadOption
   )
 {
   BDS_LOAD_OPTION *LoadOption;
   UINTN           DescriptionLength;
+  UINTN           EfiLoadOptionPtr;
 
   if (EfiLoadOption == NULL) {
     return EFI_INVALID_PARAMETER;
@@ -41,22 +42,23 @@
     LoadOption = *BdsLoadOption;
   }
 
+  EfiLoadOptionPtr           = (UINTN)EfiLoadOption;
   LoadOption->LoadOption     = EfiLoadOption;
   LoadOption->LoadOptionSize = EfiLoadOptionSize;
 
-  LoadOption->Attributes         = *(UINT32*)EfiLoadOption;
-  LoadOption->FilePathListLength = *(UINT16*)(EfiLoadOption + sizeof(UINT32));
-  LoadOption->Description        = (CHAR16*)(EfiLoadOption + sizeof(UINT32) + 
sizeof(UINT16));
+  LoadOption->Attributes         = *(UINT32*)EfiLoadOptionPtr;
+  LoadOption->FilePathListLength = *(UINT16*)(EfiLoadOptionPtr + 
sizeof(UINT32));
+  LoadOption->Description        = (CHAR16*)(EfiLoadOptionPtr + sizeof(UINT32) 
+ sizeof(UINT16));
   DescriptionLength              = StrSize (LoadOption->Description);
-  LoadOption->FilePathList       = (EFI_DEVICE_PATH_PROTOCOL*)(EfiLoadOption + 
sizeof(UINT32) + sizeof(UINT16) + DescriptionLength);
+  LoadOption->FilePathList       = 
(EFI_DEVICE_PATH_PROTOCOL*)(EfiLoadOptionPtr + sizeof(UINT32) + sizeof(UINT16) 
+ DescriptionLength);
 
   // If ((End of EfiLoadOptiony - Start of EfiLoadOption) == 
EfiLoadOptionSize) then No Optional Data
-  if ((UINTN)((UINTN)LoadOption->FilePathList + LoadOption->FilePathListLength 
- (UINTN)EfiLoadOption) == EfiLoadOptionSize) {
+  if ((UINTN)((UINTN)LoadOption->FilePathList + LoadOption->FilePathListLength 
- EfiLoadOptionPtr) == EfiLoadOptionSize) {
     LoadOption->OptionalData     = NULL;
     LoadOption->OptionalDataSize = 0;
   } else {
     LoadOption->OptionalData     = (VOID*)((UINTN)(LoadOption->FilePathList) + 
LoadOption->FilePathListLength);
-    LoadOption->OptionalDataSize = EfiLoadOptionSize - 
((UINTN)LoadOption->OptionalData - (UINTN)EfiLoadOption);
+    LoadOption->OptionalDataSize = EfiLoadOptionSize - 
((UINTN)LoadOption->OptionalData - EfiLoadOptionPtr);
   }
 
   if (*BdsLoadOption == NULL) {
@@ -73,7 +75,7 @@
   )
 {
   EFI_STATUS            Status;
-  EFI_LOAD_OPTION       EfiLoadOption;
+  EFI_LOAD_OPTION       *EfiLoadOption;
   UINTN                 EfiLoadOptionSize;
 
   Status = GetGlobalEnvironmentVariable (BootVariableName, NULL, 
&EfiLoadOptionSize, (VOID**)&EfiLoadOption);
@@ -141,12 +143,12 @@
   // Allocate the memory for the EFI Load Option
   BdsLoadOption->LoadOptionSize = sizeof(UINT32) + sizeof(UINT16) + 
DescriptionSize + BdsLoadOption->FilePathListLength + 
BdsLoadOption->OptionalDataSize;
 
-  BdsLoadOption->LoadOption = (EFI_LOAD_OPTION)AllocateZeroPool 
(BdsLoadOption->LoadOptionSize);
+  BdsLoadOption->LoadOption = (EFI_LOAD_OPTION *)AllocateZeroPool 
(BdsLoadOption->LoadOptionSize);
   if (BdsLoadOption->LoadOption == NULL) {
     return EFI_OUT_OF_RESOURCES;
   }
 
-  EfiLoadOptionPtr = BdsLoadOption->LoadOption;
+  EfiLoadOptionPtr = (UINT8 *) BdsLoadOption->LoadOption;
 
   //
   // Populate the EFI Load Option and BDS Boot Option structures

Modified: trunk/edk2/ArmPlatformPkg/Bds/BootOption.c
===================================================================
--- trunk/edk2/ArmPlatformPkg/Bds/BootOption.c  2015-05-11 17:36:09 UTC (rev 
17409)
+++ trunk/edk2/ArmPlatformPkg/Bds/BootOption.c  2015-05-11 17:37:24 UTC (rev 
17410)
@@ -141,7 +141,7 @@
   IN UINTN                      OptionalDataSize
   )
 {
-  EFI_LOAD_OPTION               EfiLoadOption;
+  EFI_LOAD_OPTION               *EfiLoadOption;
   UINTN                         EfiLoadOptionSize;
   UINTN                         BootDescriptionSize;
   UINT16                        FilePathListLength;
@@ -168,8 +168,8 @@
 
   // Allocate the memory for the EFI Load Option
   EfiLoadOptionSize = sizeof(UINT32) + sizeof(UINT16) + BootDescriptionSize + 
FilePathListLength + OptionalDataSize;
-  EfiLoadOption = (EFI_LOAD_OPTION)AllocatePool(EfiLoadOptionSize);
-  EfiLoadOptionPtr = EfiLoadOption;
+  EfiLoadOption = (EFI_LOAD_OPTION *)AllocatePool(EfiLoadOptionSize);
+  EfiLoadOptionPtr = (UINT8 *)EfiLoadOption;
 
   //
   // Populate the EFI Load Option and BDS Boot Option structures


------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to