ARM_BDS_LOADER_ARGUMENTS Arguments;\r
} ARM_BDS_LOADER_OPTIONAL_DATA;\r
\r
+typedef struct {\r
+ LIST_ENTRY Link;\r
+ BDS_LOAD_OPTION* BdsLoadOption;\r
+} BDS_LOAD_OPTION_ENTRY;\r
+\r
typedef enum {\r
BDS_DEVICE_FILESYSTEM = 0,\r
BDS_DEVICE_MEMMAP,\r
\r
#define SUPPORTED_BOOT_DEVICE_FROM_LINK(a) BASE_CR(a, BDS_SUPPORTED_DEVICE, Link)\r
\r
-typedef UINT8* EFI_LOAD_OPTION;\r
-\r
-/* This is defined by the UEFI specs, don't change it */\r
-typedef struct {\r
- LIST_ENTRY Link;\r
-\r
- UINT16 LoadOptionIndex;\r
- EFI_LOAD_OPTION LoadOption;\r
- UINTN LoadOptionSize;\r
-\r
- UINT32 Attributes;\r
- UINT16 FilePathListLength;\r
- CHAR16 *Description;\r
- EFI_DEVICE_PATH_PROTOCOL *FilePathList;\r
- BDS_LOADER_OPTIONAL_DATA *OptionalData;\r
-} BDS_LOAD_OPTION;\r
-\r
typedef struct _BDS_LOAD_OPTION_SUPPORT {\r
BDS_SUPPORTED_DEVICE_TYPE Type;\r
EFI_STATUS (*ListDevices)(IN OUT LIST_ENTRY* BdsLoadOptionList);\r
EFI_STATUS (*UpdateDevicePathNode)(IN EFI_DEVICE_PATH *OldDevicePath, OUT EFI_DEVICE_PATH_PROTOCOL** NewDevicePath, OUT ARM_BDS_LOADER_TYPE *BootType, OUT UINT32 *Attributes);\r
} BDS_LOAD_OPTION_SUPPORT;\r
\r
-#define LOAD_OPTION_FROM_LINK(a) BASE_CR(a, BDS_LOAD_OPTION, Link)\r
+#define LOAD_OPTION_ENTRY_FROM_LINK(a) BASE_CR(a, BDS_LOAD_OPTION_ENTRY, Link)\r
+#define LOAD_OPTION_FROM_LINK(a) ((BDS_LOAD_OPTION_ENTRY*)BASE_CR(a, BDS_LOAD_OPTION_ENTRY, Link))->BdsLoadOption\r
\r
EFI_STATUS\r
GetEnvironmentVariable (\r