REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the OvmfPkg 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: Andrew Fish <afish@apple.com>
		
			
				
	
	
		
			84 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Implement the InternalTpm12Detect() function on top of the Tpm12DeviceLib
 | |
|   class.
 | |
| 
 | |
|   Copyright (C) 2020, Red Hat, Inc.
 | |
| 
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| **/
 | |
| 
 | |
| #include <Library/BaseLib.h>
 | |
| #include <Library/Tpm12DeviceLib.h>
 | |
| 
 | |
| #include "Tpm12Support.h"
 | |
| 
 | |
| #pragma pack (1)
 | |
| typedef struct {
 | |
|   TPM_RSP_COMMAND_HDR    Hdr;
 | |
|   TPM_CURRENT_TICKS      CurrentTicks;
 | |
| } TPM_RSP_GET_TICKS;
 | |
| #pragma pack ()
 | |
| 
 | |
| /**
 | |
|   Probe for the TPM for 1.2 version, by sending TPM1.2 GetTicks
 | |
| 
 | |
|   Sending a TPM1.2 command to a TPM2 should return a TPM1.2
 | |
|   header (tag = 0xc4) and error code (TPM_BADTAG = 0x1e)
 | |
| 
 | |
|   @retval EFI_SUCCESS  TPM version 1.2 probing successful.
 | |
| 
 | |
|   @return              Error codes propagated from Tpm12SubmitCommand().
 | |
| **/
 | |
| STATIC
 | |
| EFI_STATUS
 | |
| TestTpm12 (
 | |
|   )
 | |
| {
 | |
|   EFI_STATUS           Status;
 | |
|   TPM_RQU_COMMAND_HDR  Command;
 | |
|   TPM_RSP_GET_TICKS    Response;
 | |
|   UINT32               Length;
 | |
| 
 | |
|   Command.tag       = SwapBytes16 (TPM_TAG_RQU_COMMAND);
 | |
|   Command.paramSize = SwapBytes32 (sizeof (Command));
 | |
|   Command.ordinal   = SwapBytes32 (TPM_ORD_GetTicks);
 | |
| 
 | |
|   Length = sizeof (Response);
 | |
|   Status = Tpm12SubmitCommand (
 | |
|              sizeof (Command),
 | |
|              (UINT8 *)&Command,
 | |
|              &Length,
 | |
|              (UINT8 *)&Response
 | |
|              );
 | |
|   if (EFI_ERROR (Status)) {
 | |
|     return Status;
 | |
|   }
 | |
| 
 | |
|   return EFI_SUCCESS;
 | |
| }
 | |
| 
 | |
| /**
 | |
|   Detect the presence of a TPM with interface version 1.2.
 | |
| 
 | |
|   @retval EFI_SUCCESS      TPM-1.2 available. The Tpm12RequestUseTpm() and
 | |
|                            Tpm12SubmitCommand(TPM_ORD_GetTicks) operations
 | |
|                            (from the Tpm12DeviceLib class) have succeeded.
 | |
| 
 | |
|   @return                  Error codes propagated from Tpm12RequestUseTpm() and
 | |
|                            Tpm12SubmitCommand().
 | |
| **/
 | |
| EFI_STATUS
 | |
| InternalTpm12Detect (
 | |
|   VOID
 | |
|   )
 | |
| {
 | |
|   EFI_STATUS  Status;
 | |
| 
 | |
|   Status = Tpm12RequestUseTpm ();
 | |
|   if (EFI_ERROR (Status)) {
 | |
|     return Status;
 | |
|   }
 | |
| 
 | |
|   return TestTpm12 ();
 | |
| }
 |