]> git.proxmox.com Git - mirror_edk2.git/blame - Vlv2DeviceRefCodePkg/Include/Protocol/PttPassThru.h
Vlv2DeviceRefCodePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / Vlv2DeviceRefCodePkg / Include / Protocol / PttPassThru.h
CommitLineData
f4e7aa05
TH
1/*++\r
2\r
3 Copyright (c) 2004 - 2015, Intel Corporation. All rights reserved.<BR>\r
4 \r
7ede8060 5 SPDX-License-Identifier: BSD-2-Clause-Patent\r
f4e7aa05
TH
6 \r
7--*/\r
8\r
9#ifndef _EFI_PTT_PASS_THRU_H\r
10#define _EFI_PTT_PASS_THRU_H\r
11\r
12#define PTT_PASS_THRU_PROTOCOL_GUID \\r
13 { \\r
14 0x73e2576, 0xf6c1, 0x4b91, 0x92, 0xa9, 0xd4, 0x67, 0x5d, 0xda, 0x34, 0xb1 \\r
15 }\r
16// {073E2576-F6C1-4b91-92A9-D4675DDA34B1}\r
17//static const GUID <<name>> = \r
18//{ 0x73e2576, 0xf6c1, 0x4b91, { 0x92, 0xa9, 0xd4, 0x67, 0x5d, 0xda, 0x34, 0xb1 } };\r
19\r
20\r
21//#define EFI_PTT_PROTOCOL_GUID HECI_PROTOCOL_GUID\r
22\r
23typedef struct _PTT_PASS_THRU_PROTOCOL PTT_PASS_THRU_PROTOCOL;\r
24\r
25/**\r
26 This service enables the sending of commands to the TPM2.\r
27\r
28 @param[in] InputParameterBlockSize Size of the TPM2 input parameter block.\r
29 @param[in] InputParameterBlock Pointer to the TPM2 input parameter block.\r
30 @param[in,out] OutputParameterBlockSize Size of the TPM2 output parameter block.\r
31 @param[in] OutputParameterBlock Pointer to the TPM2 output parameter block.\r
32\r
33 @retval EFI_SUCCESS The command byte stream was successfully sent to the device and a response was successfully received.\r
34 @retval EFI_DEVICE_ERROR The command was not successfully sent to the device or a response was not successfully received from the device.\r
35 @retval EFI_BUFFER_TOO_SMALL The output parameter block is too small. \r
36**/\r
37typedef\r
38EFI_STATUS\r
39(EFIAPI *TPM2_SUBMIT_COMMAND) (\r
40 IN PTT_PASS_THRU_PROTOCOL *This,\r
41 IN UINT32 InputParameterBlockSize,\r
42 IN UINT8 *InputParameterBlock,\r
43 IN OUT UINT32 *OutputParameterBlockSize,\r
44 IN UINT8 *OutputParameterBlock\r
45 );\r
46\r
47/**\r
48 This service requests use TPM2.\r
49\r
50 @retval EFI_SUCCESS Get the control of TPM2 chip.\r
51 @retval EFI_NOT_FOUND TPM2 not found.\r
52 @retval EFI_DEVICE_ERROR Unexpected device behavior.\r
53**/\r
54typedef\r
55EFI_STATUS\r
56(EFIAPI *TPM2_REQUEST_USE_TPM) (\r
57 IN PTT_PASS_THRU_PROTOCOL *This\r
58 );\r
59\r
60typedef struct {\r
61 EFI_GUID ProviderGuid;\r
62 TPM2_SUBMIT_COMMAND Tpm2SubmitCommand;\r
63 TPM2_REQUEST_USE_TPM Tpm2RequestUseTpm;\r
64} PTT_TPM2_DEVICE_INTERFACE;\r
65\r
66\r
67/**\r
68 This service register TPM2 device.\r
69\r
70 @param Tpm2Device TPM2 device\r
71\r
72 @retval EFI_SUCCESS This TPM2 device is registered successfully.\r
73 @retval EFI_UNSUPPORTED System does not support register this TPM2 device.\r
74 @retval EFI_ALREADY_STARTED System already register this TPM2 device.\r
75**/\r
76typedef\r
77EFI_STATUS\r
78(EFIAPI *TPM2_REGISTER_TPM2_DEVICE_LIB) (\r
79 IN PTT_PASS_THRU_PROTOCOL *This,\r
80 IN PTT_TPM2_DEVICE_INTERFACE *Tpm2Device\r
81 );\r
82 \r
83typedef struct _PTT_PASS_THRU_PROTOCOL {\r
84 TPM2_SUBMIT_COMMAND Tpm2SubmitCommand;\r
85 TPM2_REQUEST_USE_TPM Tpm2RequestUseTpm;\r
86 TPM2_REGISTER_TPM2_DEVICE_LIB Tpm2RegisterTpm2DeviceLib;\r
87} PTT_PASS_THRU_PROTOCOL;\r
88\r
89extern EFI_GUID gPttPassThruProtocolGuid;\r
90\r
91#endif // _EFI_HECI_H\r