EDK2 doxygen online documents - Firmware Encoding Index 1
EDK2 doxygen online documents - Firmware Encoding Index

MdePkg/Include/Protocol/TcgService.h

Go to the documentation of this file.
00001 
00016 #ifndef _TCG_SERVICE_PROTOCOL_H_
00017 #define _TCG_SERVICE_PROTOCOL_H_
00018 
00019 #include <IndustryStandard/UefiTcgPlatform.h>
00020 
00021 #define EFI_TCG_PROTOCOL_GUID  \
00022   {0xf541796d, 0xa62e, 0x4954, { 0xa7, 0x75, 0x95, 0x84, 0xf6, 0x1b, 0x9c, 0xdd } } 
00023 
00024 typedef struct _EFI_TCG_PROTOCOL EFI_TCG_PROTOCOL;
00025 
00026 typedef struct {
00027   UINT8  Major;
00028   UINT8  Minor;
00029   UINT8  RevMajor;
00030   UINT8  RevMinor;
00031 } TCG_VERSION;
00032 
00033 typedef struct _TCG_EFI_BOOT_SERVICE_CAPABILITY {
00034   UINT8          Size;                
00035   TCG_VERSION    StructureVersion;    
00036   TCG_VERSION    ProtocolSpecVersion;
00037   UINT8          HashAlgorithmBitmap; 
00038 
00039   BOOLEAN        TPMPresentFlag;      
00040   BOOLEAN        TPMDeactivatedFlag;  
00041 } TCG_EFI_BOOT_SERVICE_CAPABILITY;
00042 
00043 typedef UINT32   TCG_ALGORITHM_ID;
00044 
00050 
00072 typedef
00073 EFI_STATUS
00074 (EFIAPI *EFI_TCG_STATUS_CHECK)(
00075   IN      EFI_TCG_PROTOCOL          *This,
00076   OUT     TCG_EFI_BOOT_SERVICE_CAPABILITY
00077                                     *ProtocolCapability,
00078   OUT     UINT32                    *TCGFeatureFlags,
00079   OUT     EFI_PHYSICAL_ADDRESS      *EventLogLocation,
00080   OUT     EFI_PHYSICAL_ADDRESS      *EventLogLastEntry
00081   );
00082 
00100 typedef
00101 EFI_STATUS
00102 (EFIAPI *EFI_TCG_HASH_ALL)(
00103   IN      EFI_TCG_PROTOCOL          *This,
00104   IN      UINT8                     *HashData,
00105   IN      UINT64                    HashDataLen,
00106   IN      TCG_ALGORITHM_ID          AlgorithmId,
00107   IN OUT  UINT64                    *HashedDataLen,
00108   IN OUT  UINT8                     **HashedDataResult
00109   );
00110 
00127 typedef
00128 EFI_STATUS
00129 (EFIAPI *EFI_TCG_LOG_EVENT)(
00130   IN      EFI_TCG_PROTOCOL          *This,
00131   IN      TCG_PCR_EVENT             *TCGLogData,
00132   IN OUT  UINT32                    *EventNumber,
00133   IN      UINT32                    Flags
00134   );
00135 
00150 typedef
00151 EFI_STATUS
00152 (EFIAPI *EFI_TCG_PASS_THROUGH_TO_TPM)(
00153   IN      EFI_TCG_PROTOCOL          *This,
00154   IN      UINT32                    TpmInputParameterBlockSize,
00155   IN      UINT8                     *TpmInputParameterBlock,
00156   IN      UINT32                    TpmOutputParameterBlockSize,
00157   IN      UINT8                     *TpmOutputParameterBlock
00158   );
00159 
00182 typedef
00183 EFI_STATUS
00184 (EFIAPI *EFI_TCG_HASH_LOG_EXTEND_EVENT)(
00185   IN      EFI_TCG_PROTOCOL          *This,
00186   IN      EFI_PHYSICAL_ADDRESS      HashData,
00187   IN      UINT64                    HashDataLen,
00188   IN      TCG_ALGORITHM_ID          AlgorithmId,
00189   IN OUT  TCG_PCR_EVENT             *TCGLogData,
00190   IN OUT  UINT32                    *EventNumber,
00191      OUT  EFI_PHYSICAL_ADDRESS      *EventLogLastEntry
00192   );
00193 
00197 struct _EFI_TCG_PROTOCOL {
00198   EFI_TCG_STATUS_CHECK              StatusCheck;
00199   EFI_TCG_HASH_ALL                  HashAll;
00200   EFI_TCG_LOG_EVENT                 LogEvent;
00201   EFI_TCG_PASS_THROUGH_TO_TPM       PassThroughToTpm;
00202   EFI_TCG_HASH_LOG_EXTEND_EVENT     HashLogExtendEvent;
00203 };
00204 
00205 extern EFI_GUID gEfiTcgProtocolGuid;
00206 
00207 #endif
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Defines