\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
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
)\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
// 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
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
\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