26 #ifdef METEE_DLL_EXPORT
27 #define METEE_DLL_API __declspec(dllexport)
29 #define METEE_DLL_API __declspec(dllimport)
32 #define TEEAPI METEE_DLL_API __stdcall
33 #define TEE_DEVICE_HANDLE HANDLE
34 #define TEE_INVALID_DEVICE_HANDLE ((void*)0)
39 #define TEE_DEVICE_HANDLE void *
40 #define TEE_INVALID_DEVICE_HANDLE ((void*)-1)
49 #ifdef METEE_DLL_EXPORT
50 #define METEE_DLL_API __attribute__((__visibility__("default")))
55 #define TEEAPI METEE_DLL_API
58 #define GUID_DEFINED 1
59 typedef struct _GUID {
65 #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
67 = { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }
70 #define TEE_DEVICE_HANDLE int
71 #define TEE_INVALID_DEVICE_HANDLE (-1)
144 HECI_HW_TYPE_GFX_GSC,
145 HECI_HW_TYPE_GFX_CSC,
152#define TEEHANDLE_ZERO {0}
156#define TEE_ERROR_BASE 0x0000U
158#define TEE_SUCCESS (TEE_ERROR_BASE + 0)
160#define TEE_INTERNAL_ERROR (TEE_ERROR_BASE + 1)
162#define TEE_DEVICE_NOT_FOUND (TEE_ERROR_BASE + 2)
164#define TEE_DEVICE_NOT_READY (TEE_ERROR_BASE + 3)
166#define TEE_INVALID_PARAMETER (TEE_ERROR_BASE + 4)
168#define TEE_UNABLE_TO_COMPLETE_OPERATION (TEE_ERROR_BASE + 5)
170#define TEE_TIMEOUT (TEE_ERROR_BASE + 6)
172#define TEE_NOTSUPPORTED (TEE_ERROR_BASE + 7)
174#define TEE_CLIENT_NOT_FOUND (TEE_ERROR_BASE + 8)
176#define TEE_BUSY (TEE_ERROR_BASE + 9)
178#define TEE_DISCONNECTED (TEE_ERROR_BASE + 10)
180#define TEE_INSUFFICIENT_BUFFER (TEE_ERROR_BASE + 11)
182#define TEE_PERMISSION_DENIED (TEE_ERROR_BASE + 12)
186#define TEE_IS_SUCCESS(Status) (((TEESTATUS)(Status)) == TEE_SUCCESS)
209 IN OPTIONAL
const char *device);
221 IN OPTIONAL
const GUID *device);
232 IN
const TEE_DEVICE_HANDLE device_handle);
250 OUT OPTIONAL
size_t *pNumOfBytesRead, IN OPTIONAL uint32_t timeout);
262 OUT OPTIONAL
size_t *numberOfBytesWritten, IN OPTIONAL uint32_t timeout);
271 IN uint32_t fwStatusNum, OUT uint32_t *fwStatus);
void(* TeeLogCallback)(bool is_error, const char *fmt,...)
TEESTATUS TEEAPI TeeSetLogCallback(IN const PTEEHANDLE handle, TeeLogCallback log_callback)
TEESTATUS TEEAPI GetDriverVersion(IN PTEEHANDLE handle, IN OUT teeDriverVersion_t *driverVersion)
TEEHANDLE * PTEEHANDLE
A type definition for pointer to TEEHANDLE.
TEESTATUS TEEAPI TeeRead(IN PTEEHANDLE handle, IN OUT void *buffer, IN size_t bufferSize, OUT OPTIONAL size_t *pNumOfBytesRead, IN OPTIONAL uint32_t timeout)
TEE_DEVICE_HANDLE TEEAPI TeeGetDeviceHandle(IN PTEEHANDLE handle)
TEESTATUS TEEAPI TeeFWStatus(IN PTEEHANDLE handle, IN uint32_t fwStatusNum, OUT uint32_t *fwStatus)
uint32_t TEEAPI TeeGetLogLevel(IN const PTEEHANDLE handle)
TEESTATUS TEEAPI TeeGetTRC(IN PTEEHANDLE handle, OUT uint32_t *trc_val)
TEESTATUS TEEAPI TeeGetKind(IN PTEEHANDLE handle, IN OUT char *kind, IN OUT size_t *kindSize)
TEESTATUS TEEAPI TeeInitHandle(IN OUT PTEEHANDLE handle, IN const GUID *guid, IN const TEE_DEVICE_HANDLE device_handle)
TEESTATUS TEEAPI TeeInit(IN OUT PTEEHANDLE handle, IN const GUID *guid, IN OPTIONAL const char *device)
uint32_t TEEAPI TeeGetMaxMsgLen(IN const PTEEHANDLE handle)
void TEEAPI TeeDisconnect(IN PTEEHANDLE handle)
TEESTATUS TEEAPI TeeConnect(OUT PTEEHANDLE handle)
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 TeeWrite(IN PTEEHANDLE handle, IN const void *buffer, IN size_t bufferSize, OUT OPTIONAL size_t *numberOfBytesWritten, IN OPTIONAL uint32_t timeout)
struct _TEEHANDLE TEEHANDLE
uint32_t TEEAPI TeeSetLogLevel(IN PTEEHANDLE handle, IN uint32_t log_level)
uint8_t TEEAPI TeeGetProtocolVer(IN const PTEEHANDLE handle)
TeeLogCallback log_callback
enum tee_log_level log_level
enum tee_device_address::@220041201241373174261223305347271173367150124220 type
union tee_device_address::@010030075322257344335370003372211367112252041015 data