--- /dev/null
+/** @file\r
+ TCG PPI services.\r
+\r
+Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#ifndef _TCG_PPI_H_\r
+#define _TCG_PPI_H_\r
+\r
+#include <IndustryStandard/UefiTcgPlatform.h>\r
+\r
+typedef struct _EDKII_TCG_PPI EDKII_TCG_PPI;\r
+\r
+//\r
+// This bit is shall be set when HashData is the pre-hash digest.\r
+//\r
+#define EDKII_TCG_PRE_HASH 0x0000000000000001\r
+\r
+/**\r
+ Tpm measure and log data, and extend the measurement result into a specific PCR.\r
+\r
+ @param[in] This Indicates the calling context\r
+ @param[in] Flags Bitmap providing additional information\r
+ @param[in] HashData If BIT0 of Flags is 0, it is physical address of the\r
+ start of the data buffer to be hashed, extended, and logged.\r
+ If BIT0 of Flags is 1, it is physical address of the\r
+ start of the pre-hash data buffter to be extended, and logged.\r
+ The pre-hash data format is TPML_DIGEST_VALUES.\r
+ @param[in] HashDataLen The length, in bytes, of the buffer referenced by HashData.\r
+ @param[in] NewEventHdr Pointer to a TCG_PCR_EVENT_HDR data structure.\r
+ @param[in] NewEventData Pointer to the new event data.\r
+\r
+ @retval EFI_SUCCESS Operation completed successfully.\r
+ @retval EFI_UNSUPPORTED TPM device not available.\r
+ @retval EFI_OUT_OF_RESOURCES Out of memory.\r
+ @retval EFI_DEVICE_ERROR The operation was unsuccessful.\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EDKII_TCG_HASH_LOG_EXTEND_EVENT)(\r
+ IN EDKII_TCG_PPI *This,\r
+ IN UINT64 Flags,\r
+ IN UINT8 *HashData,\r
+ IN UINTN HashDataLen,\r
+ IN TCG_PCR_EVENT_HDR *NewEventHdr,\r
+ IN UINT8 *NewEventData\r
+ );\r
+\r
+///\r
+/// The EFI_TCG Protocol abstracts TCG activity.\r
+///\r
+struct _EDKII_TCG_PPI {\r
+ EDKII_TCG_HASH_LOG_EXTEND_EVENT HashLogExtendEvent;\r
+};\r
+\r
+extern EFI_GUID gEdkiiTcgPpiGuid;\r
+\r
+#endif\r