-/**\r
- ReadyToBoot callback to send BlockSid command.\r
-\r
- @param Event Pointer to this event\r
- @param Context Event handler private Data\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-ReadyToBootCallback (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
- )\r
-{\r
- OPAL_DRIVER_DEVICE *Itr;\r
- TCG_RESULT Result;\r
- OPAL_SESSION Session;\r
- UINT32 PpStorageFlag;\r
-\r
- gBS->CloseEvent (Event);\r
-\r
- PpStorageFlag = Tcg2PhysicalPresenceLibGetManagementFlags ();\r
- if ((PpStorageFlag & TCG2_BIOS_STORAGE_MANAGEMENT_FLAG_ENABLE_BLOCK_SID) != 0) {\r
- //\r
- // Send BlockSID command to each Opal disk\r
- //\r
- Itr = mOpalDriver.DeviceList;\r
- while (Itr != NULL) {\r
- if (Itr->OpalDisk.SupportedAttributes.BlockSid) {\r
- ZeroMem(&Session, sizeof(Session));\r
- Session.Sscp = Itr->OpalDisk.Sscp;\r
- Session.MediaId = Itr->OpalDisk.MediaId;\r
- Session.OpalBaseComId = Itr->OpalDisk.OpalBaseComId;\r
-\r
- DEBUG ((DEBUG_INFO, "OpalPassword: ReadyToBoot point, send BlockSid command to device!\n"));\r
- Result = OpalBlockSid (&Session, TRUE); // HardwareReset must always be TRUE\r
- if (Result != TcgResultSuccess) {\r
- DEBUG ((DEBUG_ERROR, "OpalBlockSid fail\n"));\r
- break;\r
- }\r
- }\r
-\r
- Itr = Itr->Next;\r
- }\r
- }\r
-}\r
-\r