diff options
Diffstat (limited to 'Core/EM/TCG2/Common/Tpm20Includes/TrEEProtocol.h')
-rw-r--r-- | Core/EM/TCG2/Common/Tpm20Includes/TrEEProtocol.h | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/Core/EM/TCG2/Common/Tpm20Includes/TrEEProtocol.h b/Core/EM/TCG2/Common/Tpm20Includes/TrEEProtocol.h new file mode 100644 index 0000000..c94df74 --- /dev/null +++ b/Core/EM/TCG2/Common/Tpm20Includes/TrEEProtocol.h @@ -0,0 +1,152 @@ +//************************************************************************* +//************************************************************************* +//** ** +//** (C)Copyright 1985-2013, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 ** +//** ** +//** Phone: (770)-246-8600 ** +//** ** +//************************************************************************* +//************************************************************************* + +#ifndef TREE_PROTOCOL_H + +#define TREE_PROTOCOL_H + +#define EFI_TREE_SERVICE_BINDING_PROTOCOL_GUID \ +{0x4cf01d0a, 0xc48c, 0x4271, 0xa2, 0x2a, 0xad, 0x8e, 0x55, 0x97,\ + 0x81, 0x88} + +#define EFI_TREE_PROTOCOL_GUID \ +{0x607f766c, 0x7455, 0x42be, 0x93, 0x0b, 0xe4, 0xd7, 0x6d, 0xb2,\ + 0x72, 0x0f} + +typedef struct _EFI_TREE_PROTOCOL EFI_TREE_PROTOCOL; + +//#pragma pack(push,1) // Byte align structures + +typedef struct _TREE_VERSION { + UINT8 Major; + UINT8 Minor; +} TREE_VERSION; + +typedef UINT32 TREE_EVENT_LOG_BITMAP; +typedef UINT32 TREE_EVENT_LOG_FORMAT; +#define TREE_EVENT_LOG_FORMAT_TCG_1_2 0x00000001 + +#define TREE_STRUCTURE_VERSION_MAJOR (1) +#define TREE_STRUCTURE_VERSION_MINOR (0) + +#define TREE_PROTOCOL_VERSION_MAJOR (1) +#define TREE_PROTOCOL_VERSION_MINOR (0) + +typedef struct _TREE_BOOT_SERVICE_CAPABILITY { + UINT8 Size; + TREE_VERSION StructureVersion; + TREE_VERSION ProtocolVersion; + UINT32 HashAlgorithmBitmap; + TREE_EVENT_LOG_BITMAP SupportedEventLogs; + BOOLEAN TrEEPresentFlag; + UINT16 MaxCommandSize; + UINT16 MaxResponseSize; + UINT32 ManufacturerID; +} TREE_BOOT_SERVICE_CAPABILITY; + +#define TREE_BOOT_HASH_ALG_SHA1 0x00000001 +#define TREE_BOOT_HASH_ALG_SHA256 0x00000002 +#define TREE_BOOT_HASH_ALG_SHA384 0x00000004 +#define TREE_BOOT_HASH_ALG_SHA512 0x00000008 + +#define TREE_EXTEND_ONLY 0x0000000000000001 +#define PE_COFF_IMAGE 0x0000000000000010 + +//#define EV_EFI_VARIABLE_DRIVER_CONFIG 0x80000001 +//#define EV_EFI_VARIABLE_AUTHORITY 0x800000E0 +typedef UINT32 TCG_EVENTTYPE; +typedef UINT32 TCG_PCRINDEX; + +#pragma pack(push, 1) // Byte align structures + +typedef UINT32 TrEE_PCRINDEX; +typedef UINT32 TrEE_EVENTTYPE; +typedef UINT32 TREE_EVENTLOGTYPE; + +typedef struct _TrEE_EVENT_HEADER { + UINT32 HeaderSize; + UINT16 HeaderVersion; + TrEE_PCRINDEX PCRIndex; + TrEE_EVENTTYPE EventType; +} TrEE_EVENT_HEADER; + +typedef struct _TrEE_EVENT { + UINT32 Size; + TrEE_EVENT_HEADER Header; + UINT8 Event[1]; +} TrEE_EVENT; + +#pragma pack(pop) // Byte align structures + +#define SIZE_OF_TrEE_EVENT OFFSET_OF (TrEE_EVENT, Event) + +typedef +EFI_STATUS +(EFIAPI *EFI_TREE_GET_CAPABILITY) ( + IN EFI_TREE_PROTOCOL *This, + IN OUT TREE_BOOT_SERVICE_CAPABILITY *ProtocolCapability +); + +typedef +EFI_STATUS +(EFIAPI *EFI_TREE_GET_EVENT_LOG) ( + IN EFI_TREE_PROTOCOL *This, + IN TREE_EVENTLOGTYPE EventLogFormat, + OUT EFI_PHYSICAL_ADDRESS *EventLogLocation, + OUT EFI_PHYSICAL_ADDRESS *EventLogLastEntry, + OUT BOOLEAN *EventLogTruncated +); + +typedef +EFI_STATUS +(EFIAPI * EFI_TREE_HASH_LOG_EXTEND_EVENT) ( + IN EFI_TREE_PROTOCOL *This, + IN UINT64 Flags, + IN EFI_PHYSICAL_ADDRESS DataToHash, + IN UINT64 DataToHashLen, + IN TrEE_EVENT *Event +); + +typedef +EFI_STATUS +(EFIAPI *EFI_TREE_SUBMIT_COMMAND) ( + IN EFI_TREE_PROTOCOL *This, + IN UINT32 InputParameterBlockSize, + IN UINT8 *InputParameterBlock, + IN UINT32 OutputParameterBlockSize, + IN UINT8 *OutputParameterBlock +); + +struct _EFI_TREE_PROTOCOL { + EFI_TREE_GET_CAPABILITY GetCapability; + EFI_TREE_GET_EVENT_LOG GetEventLog; + EFI_TREE_HASH_LOG_EXTEND_EVENT HashLogExtendEvent; + EFI_TREE_SUBMIT_COMMAND SubmitCommand; +}; + +#endif //TREE_PROTOCOL_H + +//************************************************************************* +//************************************************************************* +//** ** +//** (C)Copyright 1985-2013, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 ** +//** ** +//** Phone: (770)-246-8600 ** +//** ** +//************************************************************************* +//************************************************************************* |