1 /** @file 2 This library abstract how to access TPM12 hardware device. 3 4 Copyright (c) 2013, Intel Corporation. All rights reserved. <BR> 5 This program and the accompanying materials 6 are licensed and made available under the terms and conditions of the BSD License 7 which accompanies this distribution. The full text of the license may be found at 8 http://opensource.org/licenses/bsd-license.php 9 10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 13 **/ 14 15 #ifndef _TPM12_DEVICE_LIB_H_ 16 #define _TPM12_DEVICE_LIB_H_ 17 18 #include <IndustryStandard/Tpm12.h> 19 20 /** 21 This service enables the sending of commands to the TPM12. 22 23 @param[in] InputParameterBlockSize Size of the TPM12 input parameter block. 24 @param[in] InputParameterBlock Pointer to the TPM12 input parameter block. 25 @param[in,out] OutputParameterBlockSize Size of the TPM12 output parameter block. 26 @param[in] OutputParameterBlock Pointer to the TPM12 output parameter block. 27 28 @retval EFI_SUCCESS The command byte stream was successfully sent to the device and a response was successfully received. 29 @retval EFI_DEVICE_ERROR The command was not successfully sent to the device or a response was not successfully received from the device. 30 @retval EFI_BUFFER_TOO_SMALL The output parameter block is too small. 31 **/ 32 EFI_STATUS 33 EFIAPI 34 Tpm12SubmitCommand ( 35 IN UINT32 InputParameterBlockSize, 36 IN UINT8 *InputParameterBlock, 37 IN OUT UINT32 *OutputParameterBlockSize, 38 IN UINT8 *OutputParameterBlock 39 ); 40 41 /** 42 This service requests use TPM12. 43 44 @retval EFI_SUCCESS Get the control of TPM12 chip. 45 @retval EFI_NOT_FOUND TPM12 not found. 46 @retval EFI_DEVICE_ERROR Unexpected device behavior. 47 **/ 48 EFI_STATUS 49 EFIAPI 50 Tpm12RequestUseTpm ( 51 VOID 52 ); 53 54 #endif 55