\r
#include "HddPasswordPei.h"\r
\r
-EFI_GUID mHddPasswordDeviceInfoGuid = HDD_PASSWORD_DEVICE_INFO_GUID;\r
-\r
+EFI_GUID mHddPasswordDeviceInfoGuid = HDD_PASSWORD_DEVICE_INFO_GUID;\r
\r
/**\r
Send unlock hdd password cmd through ATA PassThru PPI.\r
**/\r
EFI_STATUS\r
UnlockDevice (\r
- IN EDKII_PEI_ATA_PASS_THRU_PPI *AtaPassThru,\r
- IN UINT16 Port,\r
- IN UINT16 PortMultiplierPort,\r
- IN CHAR8 Identifier,\r
- IN CHAR8 *Password\r
+ IN EDKII_PEI_ATA_PASS_THRU_PPI *AtaPassThru,\r
+ IN UINT16 Port,\r
+ IN UINT16 PortMultiplierPort,\r
+ IN CHAR8 Identifier,\r
+ IN CHAR8 *Password\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_ATA_COMMAND_BLOCK Acb;\r
- EFI_ATA_STATUS_BLOCK *Asb;\r
- EFI_ATA_PASS_THRU_COMMAND_PACKET Packet;\r
- UINT8 Buffer[HDD_PAYLOAD];\r
+ EFI_STATUS Status;\r
+ EFI_ATA_COMMAND_BLOCK Acb;\r
+ EFI_ATA_STATUS_BLOCK *Asb;\r
+ EFI_ATA_PASS_THRU_COMMAND_PACKET Packet;\r
+ UINT8 Buffer[HDD_PAYLOAD];\r
\r
if ((AtaPassThru == NULL) || (Password == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
ZeroMem (&Acb, sizeof (Acb));\r
ZeroMem (Asb, sizeof (EFI_ATA_STATUS_BLOCK));\r
Acb.AtaCommand = ATA_SECURITY_UNLOCK_CMD;\r
- Acb.AtaDeviceHead = (UINT8) (PortMultiplierPort == 0xFFFF ? 0 : (PortMultiplierPort << 4));\r
+ Acb.AtaDeviceHead = (UINT8)(PortMultiplierPort == 0xFFFF ? 0 : (PortMultiplierPort << 4));\r
\r
//\r
// Prepare for ATA pass through packet.\r
Packet.Asb = Asb;\r
Packet.Acb = &Acb;\r
\r
- ((CHAR16 *) Buffer)[0] = Identifier & BIT0;\r
- CopyMem (&((CHAR16 *) Buffer)[1], Password, HDD_PASSWORD_MAX_LENGTH);\r
+ ((CHAR16 *)Buffer)[0] = Identifier & BIT0;\r
+ CopyMem (&((CHAR16 *)Buffer)[1], Password, HDD_PASSWORD_MAX_LENGTH);\r
\r
Packet.OutDataBuffer = Buffer;\r
Packet.OutTransferLength = sizeof (Buffer);\r
);\r
if (!EFI_ERROR (Status) &&\r
((Asb->AtaStatus & ATA_STSREG_ERR) != 0) &&\r
- ((Asb->AtaError & ATA_ERRREG_ABRT) != 0)) {\r
+ ((Asb->AtaError & ATA_ERRREG_ABRT) != 0))\r
+ {\r
Status = EFI_DEVICE_ERROR;\r
}\r
\r
**/\r
EFI_STATUS\r
FreezeLockDevice (\r
- IN EDKII_PEI_ATA_PASS_THRU_PPI *AtaPassThru,\r
- IN UINT16 Port,\r
- IN UINT16 PortMultiplierPort\r
+ IN EDKII_PEI_ATA_PASS_THRU_PPI *AtaPassThru,\r
+ IN UINT16 Port,\r
+ IN UINT16 PortMultiplierPort\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_ATA_COMMAND_BLOCK Acb;\r
- EFI_ATA_STATUS_BLOCK *Asb;\r
- EFI_ATA_PASS_THRU_COMMAND_PACKET Packet;\r
+ EFI_STATUS Status;\r
+ EFI_ATA_COMMAND_BLOCK Acb;\r
+ EFI_ATA_STATUS_BLOCK *Asb;\r
+ EFI_ATA_PASS_THRU_COMMAND_PACKET Packet;\r
\r
if (AtaPassThru == NULL) {\r
return EFI_INVALID_PARAMETER;\r
ZeroMem (&Acb, sizeof (Acb));\r
ZeroMem (Asb, sizeof (EFI_ATA_STATUS_BLOCK));\r
Acb.AtaCommand = ATA_SECURITY_FREEZE_LOCK_CMD;\r
- Acb.AtaDeviceHead = (UINT8) (PortMultiplierPort == 0xFFFF ? 0 : (PortMultiplierPort << 4));\r
+ Acb.AtaDeviceHead = (UINT8)(PortMultiplierPort == 0xFFFF ? 0 : (PortMultiplierPort << 4));\r
\r
//\r
// Prepare for ATA pass through packet.\r
);\r
if (!EFI_ERROR (Status) &&\r
((Asb->AtaStatus & ATA_STSREG_ERR) != 0) &&\r
- ((Asb->AtaError & ATA_ERRREG_ABRT) != 0)) {\r
+ ((Asb->AtaError & ATA_ERRREG_ABRT) != 0))\r
+ {\r
Status = EFI_DEVICE_ERROR;\r
}\r
\r
**/\r
VOID\r
UnlockHddPassword (\r
- IN EDKII_PEI_ATA_PASS_THRU_PPI *AtaPassThruPpi\r
+ IN EDKII_PEI_ATA_PASS_THRU_PPI *AtaPassThruPpi\r
)\r
{\r
- EFI_STATUS Status;\r
- VOID *Buffer;\r
- UINTN Length;\r
- UINT8 DummyData;\r
- HDD_PASSWORD_DEVICE_INFO *DevInfo;\r
- UINT16 Port;\r
- UINT16 PortMultiplierPort;\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
- UINTN DevicePathLength;\r
+ EFI_STATUS Status;\r
+ VOID *Buffer;\r
+ UINTN Length;\r
+ UINT8 DummyData;\r
+ HDD_PASSWORD_DEVICE_INFO *DevInfo;\r
+ UINT16 Port;\r
+ UINT16 PortMultiplierPort;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+ UINTN DevicePathLength;\r
\r
//\r
// Get HDD password device info from LockBox.\r
//\r
- Buffer = (VOID *) &DummyData;\r
+ Buffer = (VOID *)&DummyData;\r
Length = sizeof (DummyData);\r
Status = RestoreLockBox (&mHddPasswordDeviceInfoGuid, Buffer, &Length);\r
if (Status == EFI_BUFFER_TOO_SMALL) {\r
Status = RestoreLockBox (&mHddPasswordDeviceInfoGuid, Buffer, &Length);\r
}\r
}\r
- if ((Buffer == NULL) || (Buffer == (VOID *) &DummyData)) {\r
+\r
+ if ((Buffer == NULL) || (Buffer == (VOID *)&DummyData)) {\r
return;\r
} else if (EFI_ERROR (Status)) {\r
FreePages (Buffer, EFI_SIZE_TO_PAGES (Length));\r
//\r
// Search the device in the restored LockBox.\r
//\r
- DevInfo = (HDD_PASSWORD_DEVICE_INFO *) Buffer;\r
- while ((UINTN) DevInfo < ((UINTN) Buffer + Length)) {\r
+ DevInfo = (HDD_PASSWORD_DEVICE_INFO *)Buffer;\r
+ while ((UINTN)DevInfo < ((UINTN)Buffer + Length)) {\r
//\r
// Find the matching device.\r
//\r
(DevInfo->Device.PortMultiplierPort == PortMultiplierPort) &&\r
(DevInfo->DevicePathLength >= DevicePathLength) &&\r
(CompareMem (\r
- DevInfo->DevicePath,\r
- DevicePath,\r
- DevicePathLength - sizeof (EFI_DEVICE_PATH_PROTOCOL)) == 0)) {\r
+ DevInfo->DevicePath,\r
+ DevicePath,\r
+ DevicePathLength - sizeof (EFI_DEVICE_PATH_PROTOCOL)\r
+ ) == 0))\r
+ {\r
//\r
// If device locked, unlock first.\r
//\r
if (!IsZeroBuffer (DevInfo->Password, HDD_PASSWORD_MAX_LENGTH)) {\r
UnlockDevice (AtaPassThruPpi, Port, PortMultiplierPort, 0, DevInfo->Password);\r
}\r
+\r
//\r
// Freeze lock the device.\r
//\r
}\r
\r
DevInfo = (HDD_PASSWORD_DEVICE_INFO *)\r
- ((UINTN) DevInfo + sizeof (HDD_PASSWORD_DEVICE_INFO) + DevInfo->DevicePathLength);\r
+ ((UINTN)DevInfo + sizeof (HDD_PASSWORD_DEVICE_INFO) + DevInfo->DevicePathLength);\r
}\r
}\r
}\r
Exit:\r
ZeroMem (Buffer, Length);\r
FreePages (Buffer, EFI_SIZE_TO_PAGES (Length));\r
-\r
}\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
HddPasswordAtaPassThruNotify (\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() - enter at S3 resume\n", __FUNCTION__));\r
\r
- UnlockHddPassword ((EDKII_PEI_ATA_PASS_THRU_PPI *) Ppi);\r
+ UnlockHddPassword ((EDKII_PEI_ATA_PASS_THRU_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 mHddPasswordAtaPassThruPpiNotifyDesc = {\r
+EFI_PEI_NOTIFY_DESCRIPTOR mHddPasswordAtaPassThruPpiNotifyDesc = {\r
(EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),\r
&gEdkiiPeiAtaPassThruPpiGuid,\r
HddPasswordAtaPassThruNotify\r
};\r
\r
-\r
/**\r
Main entry for this module.\r
\r
EFI_STATUS\r
EFIAPI\r
HddPasswordPeiInit (\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
ASSERT_EFI_ERROR (Status);\r
return Status;\r
}\r
-\r