]> git.proxmox.com Git - mirror_edk2.git/blobdiff - SecurityPkg/Library/Tpm12CommandLib/Tpm12Ownership.c
SecurityPkg/Tpm12CommandLib: Add TPM 1.2 commands used by TCG modules
[mirror_edk2.git] / SecurityPkg / Library / Tpm12CommandLib / Tpm12Ownership.c
index 5ca1323c30f02feb5a9deaa9d9a643ff8fe71157..0b1bf5c536112e37b5b4a9bcd0cfd6198879cafd 100644 (file)
@@ -12,24 +12,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \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
@@ -42,28 +29,24 @@ Tpm12ForceClear (
   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