]> git.proxmox.com Git - mirror_edk2.git/blame - Vlv2TbltDevicePkg/Include/Protocol/TpmMp.h
Vlv2TbltDevicePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / Vlv2TbltDevicePkg / Include / Protocol / TpmMp.h
CommitLineData
3cbfba02
DW
1/*++\r
2\r
3 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
4 \r\r
9dc8036d
MK
5 SPDX-License-Identifier: BSD-2-Clause-Patent\r
6\r
3cbfba02
DW
7 \r\r
8\r
9\r
10Module Name:\r
11\r
12 Tpm.h\r
13\r
14Abstract:\r
15\r
16\r
17--*/\r
18\r
19#ifndef __EFI_TPM_MP_DRIVER_PROTOCOL_H__\r
20#define __EFI_TPM_MP_DRIVER_PROTOCOL_H__\r
21\r
22\r
23#define EFI_TPM_MP_DRIVER_PROTOCOL_GUID \\r
24 { 0xde161cfe, 0x1e60, 0x42a1, 0x8c, 0xc3, 0xee, 0x7e, 0xf0, 0x73, 0x52, 0x12 }\r
25\r
26\r
27EFI_FORWARD_DECLARATION (EFI_TPM_MP_DRIVER_PROTOCOL);\r
28\r
29#define TPM_DRIVER_STATUS 0\r
30#define TPM_DEVICE_STATUS 1\r
31\r
32#define TPM_DRIVER_OK 0\r
33#define TPM_DRIVER_FAILED 1\r
34#define TPM_DRIVER_NOT_OPENED 2\r
35#define TPM_DEVICE_OK 0\r
36#define TPM_DEVICE_UNRECOVERABLE 1\r
37#define TPM_DEVICE_RECOVERABLE 2\r
38#define TPM_DEVICE_NOT_FOUND 3\r
39\r
40//\r
41// Prototypes for the TPM MP Driver Protocol\r
42//\r
43\r
44/**\r
45 This service Open the TPM interface\r
46\r
47 @param[in] This A pointer to the EFI_TPM_MP_DRIVER_PROTOCOL.\r
48\r
49 @retval EFI_SUCCESS Operation completed successfully\r
50 @retval EFI_DEVICE_ERROR The command was unsuccessful\r
51 @retval EFI_NOT_FOUND The component was not running\r
52\r
53**/\r
54typedef\r
55EFI_STATUS\r
56(EFIAPI *EFI_TPM_MP_INIT) (\r
57 IN EFI_TPM_MP_DRIVER_PROTOCOL *This\r
58 );\r
59\r
60/**\r
61 This service close the TPM interface and deactivate TPM\r
62\r
63 @param[in] This A pointer to the EFI_TPM_MP_DRIVER_PROTOCOL.\r
64\r
65 @retval EFI_SUCCESS Operation completed successfully\r
66 @retval EFI_DEVICE_ERROR The command was unsuccessful\r
67 @retval EFI_NOT_FOUND The component was not running\r
68\r
69**/\r
70typedef\r
71EFI_STATUS\r
72(EFIAPI *EFI_TPM_MP_CLOSE) (\r
73 IN EFI_TPM_MP_DRIVER_PROTOCOL *This\r
74 );\r
75\r
76/**\r
77 This service get the current status infomation of TPM\r
78\r
79 @param[in] This A pointer to the EFI_TPM_MP_DRIVER_PROTOCOL.\r
80 @param[in] ReqStatusType Requested type of status information, driver or device.\r
81 @param[in] Status Pointer to the returned status.\r
82\r
83 @retval EFI_SUCCESS Operation completed successfully\r
84 @retval EFI_DEVICE_ERROR The command was unsuccessful\r
85 @retval EFI_INVALID_PARAMETER One or more of the parameters are incorrect\r
86 @retval EFI_BUFFER_TOO_SMALL The receive buffer is too small\r
87 @retval EFI_NOT_FOUND The component was not running\r
88\r
89**/\r
90typedef\r
91EFI_STATUS\r
92(EFIAPI *EFI_TPM_MP_GET_STATUS_INFO) (\r
93 IN EFI_TPM_MP_DRIVER_PROTOCOL *This,\r
94 IN UINT32 ReqStatusType,\r
95 OUT UINT32 *Status\r
96 );\r
97\r
98/**\r
99 This service transmit data to the TPM and get response from TPM\r
100\r
101 @param[in] This A pointer to the EFI_TPM_MP_DRIVER_PROTOCOL.\r
102 @param[in] TransmitBuf Pointer to a buffer containing TPM transmit data.\r
103 @param[in] TransmitBufLen Sizeof TPM input buffer in bytes.\r
104 @param[in] ReceiveBuf Pointer to a buffer containing TPM receive data.\r
105 @param[in] ReceiveBufLen On input, size of TPM receive buffer in bytes.\r
106 On output, number of bytes written.\r
107\r
108 @retval EFI_SUCCESS Operation completed successfully\r
109 @retval EFI_DEVICE_ERROR The command was unsuccessful\r
110 @retval EFI_INVALID_PARAMETER One or more of the parameters are incorrect\r
111 @retval EFI_BUFFER_TOO_SMALL The receive buffer is too small\r
112 @retval EFI_NOT_FOUND The component was not running\r
113\r
114**/\r
115typedef\r
116EFI_STATUS\r
117(EFIAPI *EFI_TPM_MP_TRANSMIT) (\r
118 IN EFI_TPM_MP_DRIVER_PROTOCOL *This,\r
119 IN UINT8 *TransmitBuffer,\r
120 IN UINT32 TransmitBufferLen,\r
121 OUT UINT8 *ReceiveBuf,\r
122 IN OUT UINT32 *ReceiveBufLen\r
123 );\r
124\r
125\r
126\r
127typedef struct _EFI_TPM_MP_DRIVER_PROTOCOL {\r
128 EFI_TPM_MP_INIT Init;\r
129 EFI_TPM_MP_CLOSE Close;\r
130 EFI_TPM_MP_GET_STATUS_INFO GetStatusInfo;\r
131 EFI_TPM_MP_TRANSMIT Transmit;\r
132} EFI_TPM_MP_DRIVER_PROTOCOL;\r
133\r
134extern EFI_GUID gEfiTpmMpDriverProtocolGuid;\r
135\r
136#endif\r