\r
**/\r
\r
-#include <Uefi.h>\r
-#include <IndustryStandard/Tpm12.h>\r
+#include <PiPei.h>\r
#include <Library/BaseMemoryLib.h>\r
#include <Library/BaseLib.h>\r
#include <Library/Tpm12DeviceLib.h>\r
\r
-#pragma pack(1)\r
-\r
-typedef struct {\r
- TPM_RQU_COMMAND_HDR Hdr;\r
-} TPM_CMD_FORCE_CLEAR;\r
-\r
-typedef struct {\r
- TPM_RSP_COMMAND_HDR Hdr;\r
-} TPM_RSP_FORCE_CLEAR;\r
-\r
-#pragma pack()\r
-\r
/**\r
Send ForceClear command to TPM1.2.\r
\r
VOID\r
)\r
{\r
- EFI_STATUS Status;\r
- UINT32 TpmRecvSize;\r
- UINT32 TpmSendSize;\r
- TPM_CMD_FORCE_CLEAR SendBuffer;\r
- TPM_RSP_FORCE_CLEAR RecvBuffer;\r
- UINT32 ReturnCode;\r
+ EFI_STATUS Status;\r
+ TPM_RQU_COMMAND_HDR Command;\r
+ TPM_RSP_COMMAND_HDR Response;\r
+ UINT32 Length;\r
\r
//\r
// send Tpm command TPM_ORD_ForceClear\r
//\r
- TpmRecvSize = sizeof (TPM_RSP_FORCE_CLEAR);\r
- TpmSendSize = sizeof (TPM_CMD_FORCE_CLEAR);\r
- SendBuffer.Hdr.tag = SwapBytes16 (TPM_TAG_RQU_COMMAND);\r
- SendBuffer.Hdr.paramSize = SwapBytes32 (TpmSendSize);\r
- SendBuffer.Hdr.ordinal = SwapBytes32 (TPM_ORD_ForceClear);\r
+ Command.tag = SwapBytes16 (TPM_TAG_RQU_COMMAND);\r
+ Command.paramSize = SwapBytes32 (sizeof (Command));\r
+ Command.ordinal = SwapBytes32 (TPM_ORD_ForceClear);\r
+ Length = sizeof (Response);\r
\r
- Status = Tpm12SubmitCommand (TpmSendSize, (UINT8 *)&SendBuffer, &TpmRecvSize, (UINT8 *)&RecvBuffer);\r
+ Status = Tpm12SubmitCommand (sizeof (Command), (UINT8 *)&Command, &Length, (UINT8 *)&Response);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
- ReturnCode = SwapBytes32(RecvBuffer.Hdr.returnCode);\r
- switch (ReturnCode) {\r
+ switch (SwapBytes32 (Response.returnCode)) {\r
case TPM_SUCCESS:\r
return EFI_SUCCESS;\r
default:\r