mirror of https://github.com/acidanthera/audk.git
137 lines
4.2 KiB
C
137 lines
4.2 KiB
C
/*++
|
|
|
|
Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>
|
|
|
|
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
|
|
|
|
|
|
|
|
Module Name:
|
|
|
|
Tpm.h
|
|
|
|
Abstract:
|
|
|
|
|
|
--*/
|
|
|
|
#ifndef __EFI_TPM_MP_DRIVER_PROTOCOL_H__
|
|
#define __EFI_TPM_MP_DRIVER_PROTOCOL_H__
|
|
|
|
|
|
#define EFI_TPM_MP_DRIVER_PROTOCOL_GUID \
|
|
{ 0xde161cfe, 0x1e60, 0x42a1, 0x8c, 0xc3, 0xee, 0x7e, 0xf0, 0x73, 0x52, 0x12 }
|
|
|
|
|
|
EFI_FORWARD_DECLARATION (EFI_TPM_MP_DRIVER_PROTOCOL);
|
|
|
|
#define TPM_DRIVER_STATUS 0
|
|
#define TPM_DEVICE_STATUS 1
|
|
|
|
#define TPM_DRIVER_OK 0
|
|
#define TPM_DRIVER_FAILED 1
|
|
#define TPM_DRIVER_NOT_OPENED 2
|
|
#define TPM_DEVICE_OK 0
|
|
#define TPM_DEVICE_UNRECOVERABLE 1
|
|
#define TPM_DEVICE_RECOVERABLE 2
|
|
#define TPM_DEVICE_NOT_FOUND 3
|
|
|
|
//
|
|
// Prototypes for the TPM MP Driver Protocol
|
|
//
|
|
|
|
/**
|
|
This service Open the TPM interface
|
|
|
|
@param[in] This A pointer to the EFI_TPM_MP_DRIVER_PROTOCOL.
|
|
|
|
@retval EFI_SUCCESS Operation completed successfully
|
|
@retval EFI_DEVICE_ERROR The command was unsuccessful
|
|
@retval EFI_NOT_FOUND The component was not running
|
|
|
|
**/
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_TPM_MP_INIT) (
|
|
IN EFI_TPM_MP_DRIVER_PROTOCOL *This
|
|
);
|
|
|
|
/**
|
|
This service close the TPM interface and deactivate TPM
|
|
|
|
@param[in] This A pointer to the EFI_TPM_MP_DRIVER_PROTOCOL.
|
|
|
|
@retval EFI_SUCCESS Operation completed successfully
|
|
@retval EFI_DEVICE_ERROR The command was unsuccessful
|
|
@retval EFI_NOT_FOUND The component was not running
|
|
|
|
**/
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_TPM_MP_CLOSE) (
|
|
IN EFI_TPM_MP_DRIVER_PROTOCOL *This
|
|
);
|
|
|
|
/**
|
|
This service get the current status infomation of TPM
|
|
|
|
@param[in] This A pointer to the EFI_TPM_MP_DRIVER_PROTOCOL.
|
|
@param[in] ReqStatusType Requested type of status information, driver or device.
|
|
@param[in] Status Pointer to the returned status.
|
|
|
|
@retval EFI_SUCCESS Operation completed successfully
|
|
@retval EFI_DEVICE_ERROR The command was unsuccessful
|
|
@retval EFI_INVALID_PARAMETER One or more of the parameters are incorrect
|
|
@retval EFI_BUFFER_TOO_SMALL The receive buffer is too small
|
|
@retval EFI_NOT_FOUND The component was not running
|
|
|
|
**/
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_TPM_MP_GET_STATUS_INFO) (
|
|
IN EFI_TPM_MP_DRIVER_PROTOCOL *This,
|
|
IN UINT32 ReqStatusType,
|
|
OUT UINT32 *Status
|
|
);
|
|
|
|
/**
|
|
This service transmit data to the TPM and get response from TPM
|
|
|
|
@param[in] This A pointer to the EFI_TPM_MP_DRIVER_PROTOCOL.
|
|
@param[in] TransmitBuf Pointer to a buffer containing TPM transmit data.
|
|
@param[in] TransmitBufLen Sizeof TPM input buffer in bytes.
|
|
@param[in] ReceiveBuf Pointer to a buffer containing TPM receive data.
|
|
@param[in] ReceiveBufLen On input, size of TPM receive buffer in bytes.
|
|
On output, number of bytes written.
|
|
|
|
@retval EFI_SUCCESS Operation completed successfully
|
|
@retval EFI_DEVICE_ERROR The command was unsuccessful
|
|
@retval EFI_INVALID_PARAMETER One or more of the parameters are incorrect
|
|
@retval EFI_BUFFER_TOO_SMALL The receive buffer is too small
|
|
@retval EFI_NOT_FOUND The component was not running
|
|
|
|
**/
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_TPM_MP_TRANSMIT) (
|
|
IN EFI_TPM_MP_DRIVER_PROTOCOL *This,
|
|
IN UINT8 *TransmitBuffer,
|
|
IN UINT32 TransmitBufferLen,
|
|
OUT UINT8 *ReceiveBuf,
|
|
IN OUT UINT32 *ReceiveBufLen
|
|
);
|
|
|
|
|
|
|
|
typedef struct _EFI_TPM_MP_DRIVER_PROTOCOL {
|
|
EFI_TPM_MP_INIT Init;
|
|
EFI_TPM_MP_CLOSE Close;
|
|
EFI_TPM_MP_GET_STATUS_INFO GetStatusInfo;
|
|
EFI_TPM_MP_TRANSMIT Transmit;
|
|
} EFI_TPM_MP_DRIVER_PROTOCOL;
|
|
|
|
extern EFI_GUID gEfiTpmMpDriverProtocolGuid;
|
|
|
|
#endif
|