OPAL request.\r
@param[in] PopUpString Pop up string.\r
@param[in] PopUpString2 Pop up string in line 2.\r
+ @param[in] PopUpString3 Pop up string in line 3.\r
\r
@param[out] PressEsc Whether user escape function through Press ESC.\r
\r
IN OPAL_DRIVER_DEVICE *Dev,\r
IN CHAR16 *PopUpString,\r
IN CHAR16 *PopUpString2,\r
+ IN CHAR16 *PopUpString3,\r
OUT BOOLEAN *PressEsc\r
)\r
{\r
NULL\r
);\r
} else {\r
- CreatePopUp (\r
- EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,\r
- &InputKey,\r
- PopUpString,\r
- PopUpString2,\r
- L"---------------------",\r
- Mask,\r
- NULL\r
- );\r
+ if (PopUpString3 == NULL) {\r
+ CreatePopUp (\r
+ EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,\r
+ &InputKey,\r
+ PopUpString,\r
+ PopUpString2,\r
+ L"---------------------",\r
+ Mask,\r
+ NULL\r
+ );\r
+ } else {\r
+ CreatePopUp (\r
+ EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,\r
+ &InputKey,\r
+ PopUpString,\r
+ PopUpString2,\r
+ PopUpString3,\r
+ L"---------------------",\r
+ Mask,\r
+ NULL\r
+ );\r
+ }\r
}\r
\r
//\r
process OPAL request.\r
@param[in] PopUpString1 Pop up string 1.\r
@param[in] PopUpString2 Pop up string 2.\r
+ @param[in] PopUpString3 Pop up string 3.\r
@param[out] PressEsc Whether user escape function through Press ESC.\r
\r
@retval Password string if success. NULL if failed.\r
IN OPAL_DRIVER_DEVICE *Dev,\r
IN CHAR16 *PopUpString1,\r
IN CHAR16 *PopUpString2,\r
+ IN CHAR16 *PopUpString3,\r
OUT BOOLEAN *PressEsc\r
)\r
{\r
NULL\r
);\r
} else {\r
- CreatePopUp (\r
- EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,\r
- &InputKey,\r
- PopUpString1,\r
- PopUpString2,\r
- L"---------------------",\r
- Mask,\r
- NULL\r
- );\r
+ if (PopUpString3 == NULL) {\r
+ CreatePopUp (\r
+ EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,\r
+ &InputKey,\r
+ PopUpString1,\r
+ PopUpString2,\r
+ L"---------------------",\r
+ Mask,\r
+ NULL\r
+ );\r
+ } else {\r
+ CreatePopUp (\r
+ EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,\r
+ &InputKey,\r
+ PopUpString1,\r
+ PopUpString2,\r
+ PopUpString3,\r
+ L"---------------------",\r
+ Mask,\r
+ NULL\r
+ );\r
+ }\r
}\r
\r
//\r
}\r
\r
while (Count < MAX_PASSWORD_TRY_COUNT) {\r
- Password = OpalDriverPopUpPasswordInput (Dev, PopUpString, NULL, &PressEsc);\r
+ Password = OpalDriverPopUpPasswordInput (Dev, PopUpString, NULL, NULL, &PressEsc);\r
if (PressEsc) {\r
if (IsLocked) {\r
//\r
Session.OpalBaseComId = Dev->OpalDisk.OpalBaseComId;\r
\r
while (Count < MAX_PASSWORD_TRY_COUNT) {\r
- Password = OpalDriverPopUpPasswordInput (Dev, PopUpString, L"Please type in your new password", &PressEsc);\r
+ Password = OpalDriverPopUpPasswordInput (Dev, PopUpString, L"Please type in your new password", NULL, &PressEsc);\r
if (PressEsc) {\r
do {\r
CreatePopUp (\r
}\r
PasswordLen = (UINT32) AsciiStrLen(Password);\r
\r
- PasswordConfirm = OpalDriverPopUpPasswordInput (Dev, PopUpString, L"Please confirm your new password", &PressEsc);\r
+ PasswordConfirm = OpalDriverPopUpPasswordInput (Dev, PopUpString, L"Please confirm your new password", NULL, &PressEsc);\r
if (PasswordConfirm == NULL) {\r
ZeroMem (Password, PasswordLen);\r
FreePool (Password);\r
Session.OpalBaseComId = Dev->OpalDisk.OpalBaseComId;\r
\r
while (Count < MAX_PASSWORD_TRY_COUNT) {\r
- Password = OpalDriverPopUpPasswordInput (Dev, PopUpString, NULL, &PressEsc);\r
+ Password = OpalDriverPopUpPasswordInput (Dev, PopUpString, NULL, NULL, &PressEsc);\r
if (PressEsc) {\r
do {\r
CreatePopUp (\r
TCG_RESULT Ret;\r
CHAR16 *PopUpString;\r
CHAR16 *PopUpString2;\r
+ CHAR16 *PopUpString3;\r
UINTN BufferSize;\r
\r
if (Dev == NULL) {\r
PopUpString = OpalGetPopUpString (Dev, RequestString);\r
\r
if (Dev->OpalDisk.EstimateTimeCost > MAX_ACCEPTABLE_REVERTING_TIME) {\r
- BufferSize = StrSize (L"Warning: Revert action will take about ####### seconds, DO NOT power off system during the revert action!");\r
+ BufferSize = StrSize (L"Warning: Revert action will take about ####### seconds");\r
PopUpString2 = AllocateZeroPool (BufferSize);\r
ASSERT (PopUpString2 != NULL);\r
UnicodeSPrint (\r
PopUpString2,\r
BufferSize,\r
- L"WARNING: Revert action will take about %d seconds, DO NOT power off system during the revert action!",\r
+ L"WARNING: Revert action will take about %d seconds",\r
Dev->OpalDisk.EstimateTimeCost\r
);\r
+ PopUpString3 = L"DO NOT power off system during the revert action!";\r
} else {\r
PopUpString2 = NULL;\r
+ PopUpString3 = NULL;\r
}\r
\r
Count = 0;\r
Session.OpalBaseComId = Dev->OpalDisk.OpalBaseComId;\r
\r
while (Count < MAX_PSID_TRY_COUNT) {\r
- Psid = OpalDriverPopUpPsidInput (Dev, PopUpString, PopUpString2, &PressEsc);\r
+ Psid = OpalDriverPopUpPsidInput (Dev, PopUpString, PopUpString2, PopUpString3, &PressEsc);\r
if (PressEsc) {\r
do {\r
CreatePopUp (\r
BOOLEAN PasswordFailed;\r
CHAR16 *PopUpString;\r
CHAR16 *PopUpString2;\r
+ CHAR16 *PopUpString3;\r
UINTN BufferSize;\r
\r
if (Dev == NULL) {\r
\r
if ((!KeepUserData) &&\r
(Dev->OpalDisk.EstimateTimeCost > MAX_ACCEPTABLE_REVERTING_TIME)) {\r
- BufferSize = StrSize (L"Warning: Revert action will take about ####### seconds, DO NOT power off system during the revert action!");\r
+ BufferSize = StrSize (L"Warning: Revert action will take about ####### seconds");\r
PopUpString2 = AllocateZeroPool (BufferSize);\r
ASSERT (PopUpString2 != NULL);\r
UnicodeSPrint (\r
PopUpString2,\r
BufferSize,\r
- L"WARNING: Revert action will take about %d seconds, DO NOT power off system during the revert action!",\r
+ L"WARNING: Revert action will take about %d seconds",\r
Dev->OpalDisk.EstimateTimeCost\r
);\r
+ PopUpString3 = L"DO NOT power off system during the revert action!";\r
} else {\r
PopUpString2 = NULL;\r
+ PopUpString3 = NULL;\r
}\r
\r
Count = 0;\r
Session.OpalBaseComId = Dev->OpalDisk.OpalBaseComId;\r
\r
while (Count < MAX_PASSWORD_TRY_COUNT) {\r
- Password = OpalDriverPopUpPasswordInput (Dev, PopUpString, PopUpString2, &PressEsc);\r
+ Password = OpalDriverPopUpPasswordInput (Dev, PopUpString, PopUpString2, PopUpString3, &PressEsc);\r
if (PressEsc) {\r
do {\r
CreatePopUp (\r
TCG_RESULT Ret;\r
BOOLEAN PasswordFailed;\r
CHAR16 *PopUpString;\r
+ CHAR16 *PopUpString2;\r
+ CHAR16 *PopUpString3;\r
+ UINTN BufferSize;\r
\r
if (Dev == NULL) {\r
return;\r
\r
PopUpString = OpalGetPopUpString (Dev, RequestString);\r
\r
+ if (Dev->OpalDisk.EstimateTimeCost > MAX_ACCEPTABLE_REVERTING_TIME) {\r
+ BufferSize = StrSize (L"Warning: Secure erase action will take about ####### seconds");\r
+ PopUpString2 = AllocateZeroPool (BufferSize);\r
+ ASSERT (PopUpString2 != NULL);\r
+ UnicodeSPrint (\r
+ PopUpString2,\r
+ BufferSize,\r
+ L"WARNING: Secure erase action will take about %d seconds",\r
+ Dev->OpalDisk.EstimateTimeCost\r
+ );\r
+ PopUpString3 = L"DO NOT power off system during the action!";\r
+ } else {\r
+ PopUpString2 = NULL;\r
+ PopUpString3 = NULL;\r
+ }\r
Count = 0;\r
\r
ZeroMem(&Session, sizeof(Session));\r
Session.OpalBaseComId = Dev->OpalDisk.OpalBaseComId;\r
\r
while (Count < MAX_PASSWORD_TRY_COUNT) {\r
- Password = OpalDriverPopUpPasswordInput (Dev, PopUpString, NULL, &PressEsc);\r
+ Password = OpalDriverPopUpPasswordInput (Dev, PopUpString, PopUpString2, PopUpString3, &PressEsc);\r
if (PressEsc) {\r
do {\r
CreatePopUp (\r
\r
if (Key.UnicodeChar == CHAR_CARRIAGE_RETURN) {\r
gST->ConOut->ClearScreen(gST->ConOut);\r
- return;\r
+ goto Done;\r
} else {\r
//\r
// Let user input password again.\r
} while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);\r
gST->ConOut->ClearScreen(gST->ConOut);\r
}\r
+\r
+Done:\r
+ if (PopUpString2 != NULL) {\r
+ FreePool (PopUpString2);\r
+ }\r
}\r
\r
/**\r
Count = 0;\r
\r
while (Count < MAX_PASSWORD_TRY_COUNT) {\r
- OldPassword = OpalDriverPopUpPasswordInput (Dev, PopUpString, L"Please type in your password", &PressEsc);\r
+ OldPassword = OpalDriverPopUpPasswordInput (Dev, PopUpString, L"Please type in your password", NULL, &PressEsc);\r
if (PressEsc) {\r
do {\r
CreatePopUp (\r
}\r
}\r
\r
- Password = OpalDriverPopUpPasswordInput (Dev, PopUpString, L"Please type in your new password", &PressEsc);\r
+ Password = OpalDriverPopUpPasswordInput (Dev, PopUpString, L"Please type in your new password", NULL, &PressEsc);\r
if (Password == NULL) {\r
ZeroMem (OldPassword, OldPasswordLen);\r
FreePool (OldPassword);\r
}\r
PasswordLen = (UINT32) AsciiStrLen(Password);\r
\r
- PasswordConfirm = OpalDriverPopUpPasswordInput (Dev, PopUpString, L"Please confirm your new password", &PressEsc);\r
+ PasswordConfirm = OpalDriverPopUpPasswordInput (Dev, PopUpString, L"Please confirm your new password", NULL, &PressEsc);\r
if (PasswordConfirm == NULL) {\r
ZeroMem (OldPassword, OldPasswordLen);\r
FreePool (OldPassword);\r
Count = 0;\r
\r
while (Count < MAX_PASSWORD_TRY_COUNT) {\r
- OldPassword = OpalDriverPopUpPasswordInput (Dev, PopUpString, L"Please type in your password", &PressEsc);\r
+ OldPassword = OpalDriverPopUpPasswordInput (Dev, PopUpString, L"Please type in your password", NULL, &PressEsc);\r
if (PressEsc) {\r
do {\r
CreatePopUp (\r
continue;\r
}\r
\r
- Password = OpalDriverPopUpPasswordInput (Dev, PopUpString, L"Please type in your new password", &PressEsc);\r
+ Password = OpalDriverPopUpPasswordInput (Dev, PopUpString, L"Please type in your new password", NULL, &PressEsc);\r
if (Password == NULL) {\r
ZeroMem (OldPassword, OldPasswordLen);\r
FreePool (OldPassword);\r
}\r
PasswordLen = (UINT32) AsciiStrLen(Password);\r
\r
- PasswordConfirm = OpalDriverPopUpPasswordInput (Dev, PopUpString, L"Please confirm your new password", &PressEsc);\r
+ PasswordConfirm = OpalDriverPopUpPasswordInput (Dev, PopUpString, L"Please confirm your new password", NULL, &PressEsc);\r
if (PasswordConfirm == NULL) {\r
ZeroMem (OldPassword, OldPasswordLen);\r
FreePool (OldPassword);\r