metee.h(3) | Library Functions Manual | metee.h(3) |
NAME
metee.h - metee library API
SYNOPSIS
#include <stddef.h>
#include <stdint.h>
#include <stdbool.h>
Data Structures
struct _TEEHANDLE
struct tee_device_address
struct teeDriverVersion_t
Macros
#define TEEHANDLE_ZERO {0}
#define TEE_ERROR_BASE 0x0000U
#define TEE_SUCCESS (TEE_ERROR_BASE + 0)
#define TEE_INTERNAL_ERROR (TEE_ERROR_BASE + 1)
#define TEE_DEVICE_NOT_FOUND (TEE_ERROR_BASE + 2)
#define TEE_DEVICE_NOT_READY (TEE_ERROR_BASE + 3)
#define TEE_INVALID_PARAMETER (TEE_ERROR_BASE + 4)
#define TEE_UNABLE_TO_COMPLETE_OPERATION (TEE_ERROR_BASE + 5)
#define TEE_TIMEOUT (TEE_ERROR_BASE + 6)
#define TEE_NOTSUPPORTED (TEE_ERROR_BASE + 7)
#define TEE_CLIENT_NOT_FOUND (TEE_ERROR_BASE + 8)
#define TEE_BUSY (TEE_ERROR_BASE + 9)
#define TEE_DISCONNECTED (TEE_ERROR_BASE + 10)
#define TEE_INSUFFICIENT_BUFFER (TEE_ERROR_BASE + 11)
#define TEE_PERMISSION_DENIED (TEE_ERROR_BASE + 12)
#define TEE_IS_SUCCESS(Status)
Typedefs
typedef void(* TeeLogCallback) (bool is_error, const char
*fmt,...)
typedef struct _TEEHANDLE TEEHANDLE
typedef TEEHANDLE * PTEEHANDLE
A type definition for pointer to TEEHANDLE. typedef uint16_t
TEESTATUS
Enumerations
enum tee_log_level { TEE_LOG_LEVEL_QUIET = 0,
TEE_LOG_LEVEL_ERROR = 1, TEE_LOG_LEVEL_VERBOSE = 2,
TEE_LOG_LEVEL_MAX = 3 }
Functions
TEESTATUS TEEAPI TeeInitFull (IN OUT
PTEEHANDLE handle, IN const GUID *guid, IN const struct
tee_device_address device, IN uint32_t log_level, IN OPTIONAL
TeeLogCallback log_callback)
TEESTATUS TEEAPI TeeInit (IN OUT PTEEHANDLE handle, IN
const GUID *guid, IN OPTIONAL const char *device)
TEESTATUS TEEAPI TeeInitHandle (IN OUT PTEEHANDLE handle,
IN const GUID *guid, IN const TEE_DEVICE_HANDLE device_handle)
TEESTATUS TEEAPI TeeConnect (OUT PTEEHANDLE handle)
TEESTATUS TEEAPI TeeRead (IN PTEEHANDLE handle, IN OUT
void *buffer, IN size_t bufferSize, OUT OPTIONAL size_t *pNumOfBytesRead, IN
OPTIONAL uint32_t timeout)
TEESTATUS TEEAPI TeeWrite (IN PTEEHANDLE handle, IN const
void *buffer, IN size_t bufferSize, OUT OPTIONAL size_t
*numberOfBytesWritten, IN OPTIONAL uint32_t timeout)
TEESTATUS TEEAPI TeeFWStatus (IN PTEEHANDLE handle, IN
uint32_t fwStatusNum, OUT uint32_t *fwStatus)
TEESTATUS TEEAPI TeeGetTRC (IN PTEEHANDLE handle, OUT
uint32_t *trc_val)
void TEEAPI TeeDisconnect (IN PTEEHANDLE handle)
TEE_DEVICE_HANDLE TEEAPI TeeGetDeviceHandle (IN PTEEHANDLE
handle)
TEESTATUS TEEAPI GetDriverVersion (IN PTEEHANDLE handle,
IN OUT teeDriverVersion_t *driverVersion)
uint32_t TEEAPI TeeSetLogLevel (IN PTEEHANDLE handle, IN
uint32_t log_level)
uint32_t TEEAPI TeeGetLogLevel (IN const PTEEHANDLE handle)
TEESTATUS TEEAPI TeeSetLogCallback (IN const PTEEHANDLE
handle, TeeLogCallback log_callback)
uint32_t TEEAPI TeeGetMaxMsgLen (IN const PTEEHANDLE handle)
uint8_t TEEAPI TeeGetProtocolVer (IN const PTEEHANDLE handle)
Detailed Description
metee library API
Definition in file metee.h.
Macro Definition Documentation
#define TEE_BUSY (TEE_ERROR_BASE + 9)
The device is busy
Definition at line 176 of file metee.h.
#define TEE_CLIENT_NOT_FOUND (TEE_ERROR_BASE + 8)
The ME client is not present in the firmware
Definition at line 174 of file metee.h.
#define TEE_DEVICE_NOT_FOUND (TEE_ERROR_BASE + 2)
The device is not in the system or is not working
Definition at line 162 of file metee.h.
#define TEE_DEVICE_NOT_READY (TEE_ERROR_BASE + 3)
The device is not ready for the operation
Definition at line 164 of file metee.h.
#define TEE_DISCONNECTED (TEE_ERROR_BASE + 10)
The ME client is not connected
Definition at line 178 of file metee.h.
#define TEE_ERROR_BASE 0x0000U
METEE ERROR BASE
Definition at line 156 of file metee.h.
#define TEE_INSUFFICIENT_BUFFER (TEE_ERROR_BASE + 11)
The buffer for read not big enough
Definition at line 180 of file metee.h.
#define TEE_INTERNAL_ERROR (TEE_ERROR_BASE + 1)
An internal error occurred in the library
Definition at line 160 of file metee.h.
#define TEE_INVALID_PARAMETER (TEE_ERROR_BASE + 4)
An invalid parameter was used in the call
Definition at line 166 of file metee.h.
#define TEE_IS_SUCCESS( Status)
Value:
(((TEESTATUS)(Status)) == TEE_SUCCESS)
Macro for successful operation result check
Definition at line 186 of file metee.h.
#define TEE_NOTSUPPORTED (TEE_ERROR_BASE + 7)
The operation is not supported
Definition at line 172 of file metee.h.
#define TEE_PERMISSION_DENIED (TEE_ERROR_BASE + 12)
The user don't have permission for this operation
Definition at line 182 of file metee.h.
#define TEE_SUCCESS (TEE_ERROR_BASE + 0)
METEE SUCCESS
Definition at line 158 of file metee.h.
#define TEE_TIMEOUT (TEE_ERROR_BASE + 6)
The operation has timed out
Definition at line 170 of file metee.h.
#define TEE_UNABLE_TO_COMPLETE_OPERATION (TEE_ERROR_BASE + 5)
It is not possible to complete the operation
Definition at line 168 of file metee.h.
#define TEEHANDLE_ZERO {0}
ZERO/NULL device handle
Definition at line 152 of file metee.h.
Typedef Documentation
typedef TEEHANDLE* PTEEHANDLE
A type definition for pointer to TEEHANDLE.
Definition at line 113 of file metee.h.
typedef struct _TEEHANDLE TEEHANDLE
Structure to store connection data
typedef void(* TeeLogCallback) (bool is_error, const char *fmt,...)
log callback function format
Definition at line 95 of file metee.h.
typedef uint16_t TEESTATUS
return status for API functions
Definition at line 154 of file metee.h.
Enumeration Type Documentation
enum tee_log_level
log level
Enumerator
- TEE_LOG_LEVEL_QUIET
- no log prints
- TEE_LOG_LEVEL_ERROR
- error log prints
- TEE_LOG_LEVEL_VERBOSE
- verbose log prints
- TEE_LOG_LEVEL_MAX
- upper sentinel
Definition at line 86 of file metee.h.
Function Documentation
TEESTATUS TEEAPI GetDriverVersion (IN PTEEHANDLE handle, IN OUT teeDriverVersion_t * driverVersion)
Obtains version of the TEE device driver Not implemented on Linux
Parameters
driverVersion Pointer to driver version struct
Returns
TEESTATUS TEEAPI TeeConnect (OUT PTEEHANDLE handle)
Connects to the TEE driver and starts a session
Parameters
Returns
void TEEAPI TeeDisconnect (IN PTEEHANDLE handle)
Closes the session to TEE driver Make sure that you call this function as soon as you are done with the device, as other clients might be blocked until the session is closed.
Parameters
TEESTATUS TEEAPI TeeFWStatus (IN PTEEHANDLE handle, IN uint32_t fwStatusNum, OUT uint32_t * fwStatus)
Retrieves specified FW status register.
Parameters
fwStatusNum The FW status register number (0-5).
fwStatus The memory to store obtained FW status.
Returns
TEE_DEVICE_HANDLE TEEAPI TeeGetDeviceHandle (IN PTEEHANDLE handle)
Returns handle of TEE device Obtains HECI device handle on Windows and mei device file descriptor on Linux
Parameters
Returns
uint32_t TEEAPI TeeGetLogLevel (IN const PTEEHANDLE handle)
Retrieve current log level
Parameters
Returns
uint32_t TEEAPI TeeGetMaxMsgLen (IN const PTEEHANDLE handle)
Retrieve client maximum message length (MTU)
Parameters
Returns
uint8_t TEEAPI TeeGetProtocolVer (IN const PTEEHANDLE handle)
Retrieve client protocol version
Parameters
Returns
TEESTATUS TEEAPI TeeGetTRC (IN PTEEHANDLE handle, OUT uint32_t * trc_val)
Retrieves TRC register.
Parameters
trc_val The memory to store obtained TRC value.
Returns
TEESTATUS TEEAPI TeeInit (IN OUT PTEEHANDLE handle, IN const GUID * guid, IN OPTIONAL const char * device)
Initializes a TEE connection
Parameters
guid GUID of the FW client that want to start a session
device optional device path, set NULL to use default
Returns
TEESTATUS TEEAPI TeeInitFull (IN OUT PTEEHANDLE handle, IN const GUID * guid, IN const struct tee_device_address device, IN uint32_t log_level, IN OPTIONAL TeeLogCallback log_callback)
Initializes a TEE connection
Parameters
guid GUID of the FW client that want to start a session
device device address structure
log_level log level to set (from enum tee_log_level)
log_callback pointer to function to run for log write, set NULL to use built-in function
Returns
TEESTATUS TEEAPI TeeInitHandle (IN OUT PTEEHANDLE handle, IN const GUID * guid, IN const TEE_DEVICE_HANDLE device_handle)
Initializes a TEE connection
Parameters
guid GUID of the FW client that want to start a session
device_handle open file handle
Returns
TEESTATUS TEEAPI TeeRead (IN PTEEHANDLE handle, IN OUT void * buffer, IN size_t bufferSize, OUT OPTIONAL size_t * pNumOfBytesRead, IN OPTIONAL uint32_t timeout)
Read data from the TEE device synchronously.
Parameters
buffer A pointer to a buffer that receives the data read from the TEE device.
bufferSize The number of bytes to be read.
pNumOfBytesRead A pointer to the variable that receives the number of bytes read, ignored if set to NULL.
timeout The timeout to complete read in milliseconds, zero for infinite
Returns
TEESTATUS TEEAPI TeeSetLogCallback (IN const PTEEHANDLE handle, TeeLogCallback log_callback)
Set log callback
Parameters
log_callback pointer to function to run for log write, set NULL to use built-in function
Returns
uint32_t TEEAPI TeeSetLogLevel (IN PTEEHANDLE handle, IN uint32_t log_level)
Set log level
Parameters
log_level log level to set
Returns
TEESTATUS TEEAPI TeeWrite (IN PTEEHANDLE handle, IN const void * buffer, IN size_t bufferSize, OUT OPTIONAL size_t * numberOfBytesWritten, IN OPTIONAL uint32_t timeout)
Writes the specified buffer to the TEE device synchronously.
Parameters
buffer A pointer to the buffer containing the data to be written to the TEE device.
bufferSize The number of bytes to be written.
numberOfBytesWritten A pointer to the variable that receives the number of bytes written, ignored if set to NULL.
timeout The timeout to complete write in milliseconds, zero for infinite
Returns
Author
Generated automatically by Doxygen for metee from the source code.
metee |