\r
#include "OpalPasswordPei.h"\r
\r
-EFI_GUID mOpalDeviceLockBoxGuid = OPAL_DEVICE_LOCKBOX_GUID;\r
-\r
+EFI_GUID mOpalDeviceLockBoxGuid = OPAL_DEVICE_LOCKBOX_GUID;\r
\r
/**\r
Send a security protocol command to a device that receives data and/or the result\r
EFI_STATUS\r
EFIAPI\r
SecurityReceiveData (\r
- IN EFI_STORAGE_SECURITY_COMMAND_PROTOCOL *This,\r
- IN UINT32 MediaId,\r
- IN UINT64 Timeout,\r
- IN UINT8 SecurityProtocolId,\r
- IN UINT16 SecurityProtocolSpecificData,\r
- IN UINTN PayloadBufferSize,\r
- OUT VOID *PayloadBuffer,\r
- OUT UINTN *PayloadTransferSize\r
+ IN EFI_STORAGE_SECURITY_COMMAND_PROTOCOL *This,\r
+ IN UINT32 MediaId,\r
+ IN UINT64 Timeout,\r
+ IN UINT8 SecurityProtocolId,\r
+ IN UINT16 SecurityProtocolSpecificData,\r
+ IN UINTN PayloadBufferSize,\r
+ OUT VOID *PayloadBuffer,\r
+ OUT UINTN *PayloadTransferSize\r
)\r
{\r
- OPAL_PEI_DEVICE *PeiDev;\r
+ OPAL_PEI_DEVICE *PeiDev;\r
\r
PeiDev = OPAL_PEI_DEVICE_FROM_THIS (This);\r
if (PeiDev == NULL) {\r
EFI_STATUS\r
EFIAPI\r
SecuritySendData (\r
- IN EFI_STORAGE_SECURITY_COMMAND_PROTOCOL *This,\r
- IN UINT32 MediaId,\r
- IN UINT64 Timeout,\r
- IN UINT8 SecurityProtocolId,\r
- IN UINT16 SecurityProtocolSpecificData,\r
- IN UINTN PayloadBufferSize,\r
- IN VOID *PayloadBuffer\r
+ IN EFI_STORAGE_SECURITY_COMMAND_PROTOCOL *This,\r
+ IN UINT32 MediaId,\r
+ IN UINT64 Timeout,\r
+ IN UINT8 SecurityProtocolId,\r
+ IN UINT16 SecurityProtocolSpecificData,\r
+ IN UINTN PayloadBufferSize,\r
+ IN VOID *PayloadBuffer\r
)\r
{\r
- OPAL_PEI_DEVICE *PeiDev;\r
+ OPAL_PEI_DEVICE *PeiDev;\r
\r
PeiDev = OPAL_PEI_DEVICE_FROM_THIS (This);\r
if (PeiDev == NULL) {\r
\r
**/\r
BOOLEAN\r
-IsOpalDeviceLocked(\r
- OPAL_PEI_DEVICE *OpalDev,\r
- BOOLEAN *BlockSidSupported\r
+IsOpalDeviceLocked (\r
+ OPAL_PEI_DEVICE *OpalDev,\r
+ BOOLEAN *BlockSidSupported\r
)\r
{\r
- OPAL_SESSION Session;\r
- OPAL_DISK_SUPPORT_ATTRIBUTE SupportedAttributes;\r
- TCG_LOCKING_FEATURE_DESCRIPTOR LockingFeature;\r
- UINT16 OpalBaseComId;\r
- TCG_RESULT Ret;\r
+ OPAL_SESSION Session;\r
+ OPAL_DISK_SUPPORT_ATTRIBUTE SupportedAttributes;\r
+ TCG_LOCKING_FEATURE_DESCRIPTOR LockingFeature;\r
+ UINT16 OpalBaseComId;\r
+ TCG_RESULT Ret;\r
\r
- Session.Sscp = &OpalDev->Sscp;\r
+ Session.Sscp = &OpalDev->Sscp;\r
Session.MediaId = 0;\r
\r
Ret = OpalGetSupportedAttributesInfo (&Session, &SupportedAttributes, &OpalBaseComId);\r
return FALSE;\r
}\r
\r
- Session.OpalBaseComId = OpalBaseComId;\r
- *BlockSidSupported = SupportedAttributes.BlockSid == 1 ? TRUE : FALSE;\r
+ Session.OpalBaseComId = OpalBaseComId;\r
+ *BlockSidSupported = SupportedAttributes.BlockSid == 1 ? TRUE : FALSE;\r
\r
- Ret = OpalGetLockingInfo(&Session, &LockingFeature);\r
+ Ret = OpalGetLockingInfo (&Session, &LockingFeature);\r
if (Ret != TcgResultSuccess) {\r
return FALSE;\r
}\r
**/\r
VOID\r
UnlockOpalPassword (\r
- IN OPAL_PEI_DEVICE *OpalDev\r
+ IN OPAL_PEI_DEVICE *OpalDev\r
)\r
{\r
- TCG_RESULT Result;\r
- OPAL_SESSION Session;\r
- BOOLEAN BlockSidSupport;\r
- UINT32 PpStorageFlags;\r
- BOOLEAN BlockSIDEnabled;\r
+ TCG_RESULT Result;\r
+ OPAL_SESSION Session;\r
+ BOOLEAN BlockSidSupport;\r
+ UINT32 PpStorageFlags;\r
+ BOOLEAN BlockSIDEnabled;\r
\r
BlockSidSupport = FALSE;\r
if (IsOpalDeviceLocked (OpalDev, &BlockSidSupport)) {\r
- ZeroMem(&Session, sizeof (Session));\r
- Session.Sscp = &OpalDev->Sscp;\r
- Session.MediaId = 0;\r
+ ZeroMem (&Session, sizeof (Session));\r
+ Session.Sscp = &OpalDev->Sscp;\r
+ Session.MediaId = 0;\r
Session.OpalBaseComId = OpalDev->Device->OpalBaseComId;\r
\r
Result = OpalUtilUpdateGlobalLockingRange (\r
} else {\r
BlockSIDEnabled = FALSE;\r
}\r
+\r
if (BlockSIDEnabled && BlockSidSupport) {\r
DEBUG ((DEBUG_INFO, "OpalPassword: S3 phase send BlockSid command to device!\n"));\r
- ZeroMem(&Session, sizeof (Session));\r
- Session.Sscp = &OpalDev->Sscp;\r
- Session.MediaId = 0;\r
+ ZeroMem (&Session, sizeof (Session));\r
+ Session.Sscp = &OpalDev->Sscp;\r
+ Session.MediaId = 0;\r
Session.OpalBaseComId = OpalDev->Device->OpalBaseComId;\r
- Result = OpalBlockSid (&Session, TRUE);\r
+ Result = OpalBlockSid (&Session, TRUE);\r
DEBUG ((\r
DEBUG_INFO,\r
"%a() OpalBlockSid() Result = 0x%x\n",\r
**/\r
VOID\r
UnlockOpalPasswordDevices (\r
- IN EDKII_PEI_STORAGE_SECURITY_CMD_PPI *SscPpi\r
+ IN EDKII_PEI_STORAGE_SECURITY_CMD_PPI *SscPpi\r
)\r
{\r
- EFI_STATUS Status;\r
- UINT8 *DevInfoBuffer;\r
- UINT8 DummyData;\r
- OPAL_DEVICE_LOCKBOX_DATA *DevInfo;\r
- UINTN DevInfoLength;\r
- EFI_DEVICE_PATH_PROTOCOL *SscDevicePath;\r
- UINTN SscDevicePathLength;\r
- UINTN SscDeviceNum;\r
- UINTN SscDeviceIndex;\r
- OPAL_PEI_DEVICE OpalDev;\r
+ EFI_STATUS Status;\r
+ UINT8 *DevInfoBuffer;\r
+ UINT8 DummyData;\r
+ OPAL_DEVICE_LOCKBOX_DATA *DevInfo;\r
+ UINTN DevInfoLength;\r
+ EFI_DEVICE_PATH_PROTOCOL *SscDevicePath;\r
+ UINTN SscDevicePathLength;\r
+ UINTN SscDeviceNum;\r
+ UINTN SscDeviceIndex;\r
+ OPAL_PEI_DEVICE OpalDev;\r
\r
//\r
// Get OPAL devices info from LockBox.\r
//\r
DevInfoBuffer = &DummyData;\r
DevInfoLength = sizeof (DummyData);\r
- Status = RestoreLockBox (&mOpalDeviceLockBoxGuid, DevInfoBuffer, &DevInfoLength);\r
+ Status = RestoreLockBox (&mOpalDeviceLockBoxGuid, DevInfoBuffer, &DevInfoLength);\r
if (Status == EFI_BUFFER_TOO_SMALL) {\r
DevInfoBuffer = AllocatePages (EFI_SIZE_TO_PAGES (DevInfoLength));\r
if (DevInfoBuffer != NULL) {\r
Status = RestoreLockBox (&mOpalDeviceLockBoxGuid, DevInfoBuffer, &DevInfoLength);\r
}\r
}\r
- if (DevInfoBuffer == NULL || DevInfoBuffer == &DummyData) {\r
+\r
+ if ((DevInfoBuffer == NULL) || (DevInfoBuffer == &DummyData)) {\r
return;\r
} else if (EFI_ERROR (Status)) {\r
FreePages (DevInfoBuffer, EFI_SIZE_TO_PAGES (DevInfoLength));\r
if (EFI_ERROR (Status)) {\r
goto Exit;\r
}\r
+\r
for (SscDeviceIndex = 1; SscDeviceIndex <= SscDeviceNum; SscDeviceIndex++) {\r
Status = SscPpi->GetDevicePath (\r
SscPpi,\r
//\r
// Search the device in the restored LockBox.\r
//\r
- for (DevInfo = (OPAL_DEVICE_LOCKBOX_DATA *) DevInfoBuffer;\r
- (UINTN) DevInfo < ((UINTN) DevInfoBuffer + DevInfoLength);\r
- DevInfo = (OPAL_DEVICE_LOCKBOX_DATA *) ((UINTN) DevInfo + DevInfo->Length)) {\r
+ for (DevInfo = (OPAL_DEVICE_LOCKBOX_DATA *)DevInfoBuffer;\r
+ (UINTN)DevInfo < ((UINTN)DevInfoBuffer + DevInfoLength);\r
+ DevInfo = (OPAL_DEVICE_LOCKBOX_DATA *)((UINTN)DevInfo + DevInfo->Length))\r
+ {\r
//\r
// Find the matching device.\r
//\r
(CompareMem (\r
DevInfo->DevicePath,\r
SscDevicePath,\r
- SscDevicePathLength - sizeof (EFI_DEVICE_PATH_PROTOCOL)) == 0)) {\r
+ SscDevicePathLength - sizeof (EFI_DEVICE_PATH_PROTOCOL)\r
+ ) == 0))\r
+ {\r
OpalDev.Signature = OPAL_PEI_DEVICE_SIGNATURE;\r
OpalDev.Sscp.ReceiveData = SecurityReceiveData;\r
OpalDev.Sscp.SendData = SecuritySendData;\r
Exit:\r
ZeroMem (DevInfoBuffer, DevInfoLength);\r
FreePages (DevInfoBuffer, EFI_SIZE_TO_PAGES (DevInfoLength));\r
-\r
}\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
OpalPasswordStorageSecurityPpiNotify (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDesc,\r
- IN VOID *Ppi\r
+ IN EFI_PEI_SERVICES **PeiServices,\r
+ IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDesc,\r
+ IN VOID *Ppi\r
)\r
{\r
DEBUG ((DEBUG_INFO, "%a entered at S3 resume!\n", __FUNCTION__));\r
\r
- UnlockOpalPasswordDevices ((EDKII_PEI_STORAGE_SECURITY_CMD_PPI *) Ppi);\r
+ UnlockOpalPasswordDevices ((EDKII_PEI_STORAGE_SECURITY_CMD_PPI *)Ppi);\r
\r
DEBUG ((DEBUG_INFO, "%a exit at S3 resume!\n", __FUNCTION__));\r
\r
return EFI_SUCCESS;\r
}\r
\r
-\r
-EFI_PEI_NOTIFY_DESCRIPTOR mOpalPasswordStorageSecurityPpiNotifyDesc = {\r
+EFI_PEI_NOTIFY_DESCRIPTOR mOpalPasswordStorageSecurityPpiNotifyDesc = {\r
(EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),\r
&gEdkiiPeiStorageSecurityCommandPpiGuid,\r
OpalPasswordStorageSecurityPpiNotify\r
};\r
\r
-\r
/**\r
Main entry for this module.\r
\r
EFI_STATUS\r
EFIAPI\r
OpalPasswordPeiInit (\r
- IN EFI_PEI_FILE_HANDLE FileHandle,\r
- IN CONST EFI_PEI_SERVICES **PeiServices\r
+ IN EFI_PEI_FILE_HANDLE FileHandle,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_BOOT_MODE BootMode;\r
+ EFI_STATUS Status;\r
+ EFI_BOOT_MODE BootMode;\r
\r
Status = PeiServicesGetBootMode (&BootMode);\r
if ((EFI_ERROR (Status)) || (BootMode != BOOT_ON_S3_RESUME)) {\r