/// Please refer to the library useage of BdsLibGetBootMode, BdsLibGetTimeout \r
/// and PlatformBdsDiagnostics in BdsPlatform.c\r
///\r
-EFI_BDS_ARCH_PROTOCOL_INSTANCE gBdsInstanceTemplate = {\r
- EFI_BDS_ARCH_PROTOCOL_INSTANCE_SIGNATURE,\r
- NULL,\r
- {BdsEntry},\r
- 0xFFFF,\r
- TRUE,\r
- 0,\r
- EXTENSIVE\r
+EFI_HANDLE gBdsHandle = NULL;\r
+\r
+EFI_BDS_ARCH_PROTOCOL gBds = {\r
+ BdsEntry\r
};\r
\r
UINT16 *mBootNext = NULL;\r
//\r
// Install protocol interface\r
//\r
- Status = gBS->InstallProtocolInterface (\r
- &gBdsInstanceTemplate.Handle,\r
- &gEfiBdsArchProtocolGuid,\r
- EFI_NATIVE_INTERFACE,\r
- &gBdsInstanceTemplate.Bds\r
+ Status = gBS->InstallMultipleProtocolInterfaces (\r
+ &gBdsHandle,\r
+ &gEfiBdsArchProtocolGuid, &gBds,\r
+ NULL\r
);\r
ASSERT_EFI_ERROR (Status);\r
\r
IN EFI_BDS_ARCH_PROTOCOL *This\r
)\r
{\r
- EFI_BDS_ARCH_PROTOCOL_INSTANCE *PrivateData;\r
LIST_ENTRY DriverOptionList;\r
LIST_ENTRY BootOptionList;\r
UINTN BootNextSize;\r
//\r
InitializeHotkeyService ();\r
\r
- //\r
- // Get the BDS private data\r
- //\r
- PrivateData = EFI_BDS_ARCH_PROTOCOL_INSTANCE_FROM_THIS (This);\r
-\r
//\r
// Do the platform init, can be customized by OEM/IBV\r
//\r
PERF_START (0, "PlatformBds", "BDS", 0);\r
- PlatformBdsInit (PrivateData);\r
+ PlatformBdsInit ();\r
\r
InitializeHwErrRecSupport();\r
\r
//\r
// Setup some platform policy here\r
//\r
- PlatformBdsPolicyBehavior (PrivateData, &DriverOptionList, &BootOptionList);\r
+ PlatformBdsPolicyBehavior (&DriverOptionList, &BootOptionList);\r
PERF_END (0, "PlatformBds", "BDS", 0);\r
\r
//\r