+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution. The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php \r
- \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
-Module Name:\r
-\r
- TcgService.h\r
-\r
-Abstract:\r
-\r
- TCG Service Protocol as defined in TCG_EFI_Protocol_1_20_Final\r
-\r
- See http://trustedcomputinggroup.org for the latest specification\r
-\r
---*/\r
-\r
-#ifndef _TCG_SERVICE_PROTOCOL_H_\r
-#define _TCG_SERVICE_PROTOCOL_H_\r
-\r
-#include "EfiTpm.h"\r
-\r
-#define EFI_TCG_PROTOCOL_GUID \\r
- {0xf541796d, 0xa62e, 0x4954, {0xa7, 0x75, 0x95, 0x84, 0xf6, 0x1b, 0x9c, 0xdd}}\r
-\r
-#define EFI_TCG_PLATFORM_PROTOCOL_GUID \\r
- { 0x8c4c9a41, 0xbf56, 0x4627, {0x9e, 0xa, 0xc8, 0x38, 0x6d, 0x66, 0x11, 0x5c} }\r
-\r
-#define TSS_EVENT_DATA_MAX_SIZE 256\r
-\r
-#define EFI_CALLING_EFI_APPLICATION \\r
- "Calling EFI Application from Boot Option"\r
-#define EFI_RETURNING_FROM_EFI_APPLICATOIN \\r
- "Returning from EFI Application from Boot Option"\r
-#define EFI_EXIT_BOOT_SERVICES_INVOCATION \\r
- "Exit Boot Services Invocation"\r
-#define EFI_EXIT_BOOT_SERVICES_FAILED \\r
- "Exit Boot Services Returned with Failure"\r
-#define EFI_EXIT_BOOT_SERVICES_SUCCEEDED \\r
- "Exit Boot Services Returned with Success"\r
-\r
-EFI_FORWARD_DECLARATION (EFI_TCG_PROTOCOL);\r
-\r
-//\r
-// Set structure alignment to 1-byte\r
-//\r
-#pragma pack (1)\r
-\r
-typedef struct {\r
- UINT8 Major;\r
- UINT8 Minor;\r
- UINT8 RevMajor;\r
- UINT8 RevMinor;\r
-} TCG_VERSION;\r
-\r
-typedef struct _TCG_EFI_BOOT_SERVICE_CAPABILITY {\r
- UINT8 Size; // Size of this structure\r
- TCG_VERSION StructureVersion; \r
- TCG_VERSION ProtocolSpecVersion;\r
- UINT8 HashAlgorithmBitmap; // Hash algorithms \r
- // this protocol is capable of : 01=SHA-1\r
- BOOLEAN TPMPresentFlag; // 00h = TPM not present\r
- BOOLEAN TPMDeactivatedFlag; // 01h = TPM currently deactivated\r
-} TCG_EFI_BOOT_SERVICE_CAPABILITY;\r
-\r
-typedef UINT32 TCG_ALGORITHM_ID;\r
-\r
-//\r
-// Restore original structure alignment\r
-//\r
-#pragma pack ()\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_TCG_STATUS_CHECK) (\r
- IN EFI_TCG_PROTOCOL *This,\r
- OUT TCG_EFI_BOOT_SERVICE_CAPABILITY\r
- *ProtocolCapability,\r
- OUT UINT32 *TCGFeatureFlags,\r
- OUT EFI_PHYSICAL_ADDRESS *EventLogLocation,\r
- OUT EFI_PHYSICAL_ADDRESS *EventLogLastEntry\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_TCG_HASH_ALL) (\r
- IN EFI_TCG_PROTOCOL *This,\r
- IN UINT8 *HashData,\r
- IN UINT64 HashDataLen,\r
- IN TCG_ALGORITHM_ID AlgorithmId,\r
- IN OUT UINT64 *HashedDataLen,\r
- IN OUT UINT8 **HashedDataResult\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_TCG_LOG_EVENT) (\r
- IN EFI_TCG_PROTOCOL *This,\r
- IN TCG_PCR_EVENT *TCGLogData,\r
- IN OUT UINT32 *EventNumber,\r
- IN UINT32 Flags\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_TCG_PASS_THROUGH_TO_TPM) (\r
- IN EFI_TCG_PROTOCOL *This,\r
- IN UINT32 TpmInputParameterBlockSize,\r
- IN UINT8 *TpmInputParameterBlock,\r
- IN UINT32 TpmOutputParameterBlockSize,\r
- IN UINT8 *TpmOutputParameterBlock\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_TCG_HASH_LOG_EXTEND_EVENT) (\r
- IN EFI_TCG_PROTOCOL *This,\r
- IN EFI_PHYSICAL_ADDRESS HashData,\r
- IN UINT64 HashDataLen,\r
- IN TCG_ALGORITHM_ID AlgorithmId,\r
- IN OUT TCG_PCR_EVENT *TCGLogData,\r
- IN OUT UINT32 *EventNumber,\r
- OUT EFI_PHYSICAL_ADDRESS *EventLogLastEntry\r
- );\r
-\r
-struct _EFI_TCG_PROTOCOL {\r
- EFI_TCG_STATUS_CHECK StatusCheck;\r
- EFI_TCG_HASH_ALL HashAll;\r
- EFI_TCG_LOG_EVENT LogEvent;\r
- EFI_TCG_PASS_THROUGH_TO_TPM PassThroughToTpm;\r
- EFI_TCG_HASH_LOG_EXTEND_EVENT HashLogExtendEvent;\r
-};\r
-\r
-extern EFI_GUID gEfiTcgProtocolGuid;\r
-\r
-//\r
-// EFI TCG Platform Protocol\r
-//\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_TCG_MEASURE_PE_IMAGE) (\r
- IN BOOLEAN BootPolicy,\r
- IN EFI_PHYSICAL_ADDRESS ImageAddress,\r
- IN UINTN ImageSize,\r
- IN UINTN LinkTimeBase,\r
- IN UINT16 ImageType,\r
- IN EFI_HANDLE DeviceHandle,\r
- IN EFI_DEVICE_PATH_PROTOCOL *FilePath\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_TCG_MEASURE_ACTION) (\r
- IN CHAR8 *ActionString\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_TCG_MEASURE_GPT_TABLE) (\r
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
- );\r
-\r
-typedef struct _EFI_TCG_PLATFORM_PROTOCOL {\r
- EFI_TCG_MEASURE_PE_IMAGE MeasurePeImage;\r
- EFI_TCG_MEASURE_ACTION MeasureAction;\r
- EFI_TCG_MEASURE_GPT_TABLE MeasureGptTable;\r
-} EFI_TCG_PLATFORM_PROTOCOL;\r
-\r
-extern EFI_GUID gEfiTcgPlatformProtocolGuid;\r
-\r
-#endif\r