REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the MdePkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
		
			
				
	
	
		
			196 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			196 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   TCG Service Protocol as defined in TCG_EFI_Protocol_1_22_Final
 | |
|   See http://trustedcomputinggroup.org for the latest specification
 | |
| 
 | |
| Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
 | |
| SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef _TCG_SERVICE_PROTOCOL_H_
 | |
| #define _TCG_SERVICE_PROTOCOL_H_
 | |
| 
 | |
| #include <IndustryStandard/UefiTcgPlatform.h>
 | |
| 
 | |
| #define EFI_TCG_PROTOCOL_GUID  \
 | |
|   {0xf541796d, 0xa62e, 0x4954, { 0xa7, 0x75, 0x95, 0x84, 0xf6, 0x1b, 0x9c, 0xdd } }
 | |
| 
 | |
| typedef struct _EFI_TCG_PROTOCOL EFI_TCG_PROTOCOL;
 | |
| 
 | |
| typedef struct {
 | |
|   UINT8    Major;
 | |
|   UINT8    Minor;
 | |
|   UINT8    RevMajor;
 | |
|   UINT8    RevMinor;
 | |
| } TCG_VERSION;
 | |
| 
 | |
| typedef struct _TCG_EFI_BOOT_SERVICE_CAPABILITY {
 | |
|   UINT8          Size;                /// Size of this structure.
 | |
|   TCG_VERSION    StructureVersion;
 | |
|   TCG_VERSION    ProtocolSpecVersion;
 | |
|   UINT8          HashAlgorithmBitmap; /// Hash algorithms .
 | |
|                                       /// This protocol is capable of : 01=SHA-1.
 | |
|   BOOLEAN        TPMPresentFlag;      /// 00h = TPM not present.
 | |
|   BOOLEAN        TPMDeactivatedFlag;  /// 01h = TPM currently deactivated.
 | |
| } TCG_EFI_BOOT_SERVICE_CAPABILITY;
 | |
| 
 | |
| typedef UINT32 TCG_ALGORITHM_ID;
 | |
| 
 | |
| /**
 | |
|   This service provides EFI protocol capability information, state information
 | |
|   about the TPM, and Event Log state information.
 | |
| 
 | |
|   @param  This                   Indicates the calling context
 | |
|   @param  ProtocolCapability     The callee allocates memory for a TCG_BOOT_SERVICE_CAPABILITY
 | |
|                                  structure and fills in the fields with the EFI protocol
 | |
|                                  capability information and the current TPM state information.
 | |
|   @param  TCGFeatureFlags        This is a pointer to the feature flags. No feature
 | |
|                                  flags are currently defined so this parameter
 | |
|                                  MUST be set to 0. However, in the future,
 | |
|                                  feature flags may be defined that, for example,
 | |
|                                  enable hash algorithm agility.
 | |
|   @param  EventLogLocation       This is a pointer to the address of the event log in memory.
 | |
|   @param  EventLogLastEntry      If the Event Log contains more than one entry,
 | |
|                                  this is a pointer to the address of the start of
 | |
|                                  the last entry in the event log in memory.
 | |
| 
 | |
|   @retval EFI_SUCCESS            The operation completed successfully.
 | |
|   @retval EFI_INVALID_PARAMETER  ProtocolCapability does not match TCG capability.
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_TCG_STATUS_CHECK)(
 | |
|   IN      EFI_TCG_PROTOCOL          *This,
 | |
|   OUT     TCG_EFI_BOOT_SERVICE_CAPABILITY
 | |
|   *ProtocolCapability,
 | |
|   OUT     UINT32                    *TCGFeatureFlags,
 | |
|   OUT     EFI_PHYSICAL_ADDRESS      *EventLogLocation,
 | |
|   OUT     EFI_PHYSICAL_ADDRESS      *EventLogLastEntry
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   This service abstracts the capability to do a hash operation on a data buffer.
 | |
| 
 | |
|   @param  This                   Indicates the calling context.
 | |
|   @param  HashData               The pointer to the data buffer to be hashed.
 | |
|   @param  HashDataLen            The length of the data buffer to be hashed.
 | |
|   @param  AlgorithmId            Identification of the Algorithm to use for the hashing operation.
 | |
|   @param  HashedDataLen          Resultant length of the hashed data.
 | |
|   @param  HashedDataResult       Resultant buffer of the hashed data.
 | |
| 
 | |
|   @retval EFI_SUCCESS            The operation completed successfully.
 | |
|   @retval EFI_INVALID_PARAMETER  HashDataLen is NULL.
 | |
|   @retval EFI_INVALID_PARAMETER  HashDataLenResult is NULL.
 | |
|   @retval EFI_OUT_OF_RESOURCES   Cannot allocate buffer of size *HashedDataLen.
 | |
|   @retval EFI_UNSUPPORTED        AlgorithmId not supported.
 | |
|   @retval EFI_BUFFER_TOO_SMALL   *HashedDataLen < sizeof (TCG_DIGEST).
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_TCG_HASH_ALL)(
 | |
|   IN      EFI_TCG_PROTOCOL          *This,
 | |
|   IN      UINT8                     *HashData,
 | |
|   IN      UINT64                    HashDataLen,
 | |
|   IN      TCG_ALGORITHM_ID          AlgorithmId,
 | |
|   IN OUT  UINT64                    *HashedDataLen,
 | |
|   IN OUT  UINT8                     **HashedDataResult
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   This service abstracts the capability to add an entry to the Event Log.
 | |
| 
 | |
|   @param  This                   Indicates the calling context
 | |
|   @param  TCGLogData             The pointer to the start of the data buffer containing
 | |
|                                  the TCG_PCR_EVENT data structure. All fields in
 | |
|                                  this structure are properly filled by the caller.
 | |
|   @param  EventNumber            The event number of the event just logged.
 | |
|   @param  Flags                  Indicates additional flags. Only one flag has been
 | |
|                                  defined at this time, which is 0x01 and means the
 | |
|                                  extend operation should not be performed. All
 | |
|                                  other bits are reserved.
 | |
| 
 | |
|   @retval EFI_SUCCESS            The operation completed successfully.
 | |
|   @retval EFI_OUT_OF_RESOURCES   Insufficient memory in the event log to complete this action.
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_TCG_LOG_EVENT)(
 | |
|   IN      EFI_TCG_PROTOCOL          *This,
 | |
|   IN      TCG_PCR_EVENT             *TCGLogData,
 | |
|   IN OUT  UINT32                    *EventNumber,
 | |
|   IN      UINT32                    Flags
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   This service is a proxy for commands to the TPM.
 | |
| 
 | |
|   @param  This                        Indicates the calling context.
 | |
|   @param  TpmInputParameterBlockSize  Size of the TPM input parameter block.
 | |
|   @param  TpmInputParameterBlock      The pointer to the TPM input parameter block.
 | |
|   @param  TpmOutputParameterBlockSize Size of the TPM output parameter block.
 | |
|   @param  TpmOutputParameterBlock     The pointer to the TPM output parameter block.
 | |
| 
 | |
|   @retval EFI_SUCCESS            The operation completed successfully.
 | |
|   @retval EFI_INVALID_PARAMETER  Invalid ordinal.
 | |
|   @retval EFI_UNSUPPORTED        Current Task Priority Level  >= EFI_TPL_CALLBACK.
 | |
|   @retval EFI_TIMEOUT            The TIS timed-out.
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_TCG_PASS_THROUGH_TO_TPM)(
 | |
|   IN      EFI_TCG_PROTOCOL          *This,
 | |
|   IN      UINT32                    TpmInputParameterBlockSize,
 | |
|   IN      UINT8                     *TpmInputParameterBlock,
 | |
|   IN      UINT32                    TpmOutputParameterBlockSize,
 | |
|   IN      UINT8                     *TpmOutputParameterBlock
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   This service abstracts the capability to do a hash operation on a data buffer, extend a specific TPM PCR with the hash result, and add an entry to the Event Log
 | |
| 
 | |
|   @param  This                   Indicates the calling context
 | |
|   @param  HashData               The physical address of the start of the data buffer
 | |
|                                  to be hashed, extended, and logged.
 | |
|   @param  HashDataLen            The length, in bytes, of the buffer referenced by HashData
 | |
|   @param  AlgorithmId            Identification of the Algorithm to use for the hashing operation
 | |
|   @param  TCGLogData             The physical address of the start of the data
 | |
|                                  buffer containing the TCG_PCR_EVENT data structure.
 | |
|   @param  EventNumber            The event number of the event just logged.
 | |
|   @param  EventLogLastEntry      The physical address of the first byte of the entry
 | |
|                                  just placed in the Event Log. If the Event Log was
 | |
|                                  empty when this function was called then this physical
 | |
|                                  address will be the same as the physical address of
 | |
|                                  the start of the Event Log.
 | |
| 
 | |
|   @retval EFI_SUCCESS            The operation completed successfully.
 | |
|   @retval EFI_UNSUPPORTED        AlgorithmId != TPM_ALG_SHA.
 | |
|   @retval EFI_UNSUPPORTED        Current TPL >= EFI_TPL_CALLBACK.
 | |
|   @retval EFI_DEVICE_ERROR       The command was unsuccessful.
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_TCG_HASH_LOG_EXTEND_EVENT)(
 | |
|   IN      EFI_TCG_PROTOCOL          *This,
 | |
|   IN      EFI_PHYSICAL_ADDRESS      HashData,
 | |
|   IN      UINT64                    HashDataLen,
 | |
|   IN      TCG_ALGORITHM_ID          AlgorithmId,
 | |
|   IN OUT  TCG_PCR_EVENT             *TCGLogData,
 | |
|   IN OUT  UINT32                    *EventNumber,
 | |
|   OUT  EFI_PHYSICAL_ADDRESS      *EventLogLastEntry
 | |
|   );
 | |
| 
 | |
| ///
 | |
| /// The EFI_TCG Protocol abstracts TCG activity.
 | |
| ///
 | |
| struct _EFI_TCG_PROTOCOL {
 | |
|   EFI_TCG_STATUS_CHECK             StatusCheck;
 | |
|   EFI_TCG_HASH_ALL                 HashAll;
 | |
|   EFI_TCG_LOG_EVENT                LogEvent;
 | |
|   EFI_TCG_PASS_THROUGH_TO_TPM      PassThroughToTpm;
 | |
|   EFI_TCG_HASH_LOG_EXTEND_EVENT    HashLogExtendEvent;
 | |
| };
 | |
| 
 | |
| extern EFI_GUID  gEfiTcgProtocolGuid;
 | |
| 
 | |
| #endif
 |