xref: /optee_os/lib/libutee/include/tee_api_compat.h (revision 7509620b8b95fa57f9c786c15b216cdd3b5ddc7c)
18bbc2e9cSJens Wiklander /* SPDX-License-Identifier: BSD-2-Clause */
28bbc2e9cSJens Wiklander /*
38bbc2e9cSJens Wiklander  * Copyright (c) 2022, Linaro Limited
48bbc2e9cSJens Wiklander  */
58bbc2e9cSJens Wiklander 
68bbc2e9cSJens Wiklander #ifndef __TEE_API_COMPAT_H
78bbc2e9cSJens Wiklander #define __TEE_API_COMPAT_H
88bbc2e9cSJens Wiklander 
9*7509620bSJens Wiklander /*
10*7509620bSJens Wiklander  * This function will be called from TA_OpenSessionEntryPoint() in
11*7509620bSJens Wiklander  * user_ta_header.c (if compiled with __OPTEE_CORE_API_COMPAT_1_1), the
12*7509620bSJens Wiklander  * compatibility entry function is passed as a function pointer in @fp.
13*7509620bSJens Wiklander  * This is needed since libutee is never compiled with
14*7509620bSJens Wiklander  * __OPTEE_CORE_API_COMPAT_1_1, but we still need a way to call the
15*7509620bSJens Wiklander  * compatibility function __GP11_TA_InvokeCommandEntryPoint(), but only
16*7509620bSJens Wiklander  * when __OPTEE_CORE_API_COMPAT_1_1 is defined.
17*7509620bSJens Wiklander  */
18*7509620bSJens Wiklander TEE_Result __ta_open_sess(uint32_t pt, TEE_Param params[TEE_NUM_PARAMS],
19*7509620bSJens Wiklander 			  void **sess_ctx,
20*7509620bSJens Wiklander 			  TEE_Result (*fp)(uint32_t,
21*7509620bSJens Wiklander 					   __GP11_TEE_Param [TEE_NUM_PARAMS],
22*7509620bSJens Wiklander 					   void **));
23*7509620bSJens Wiklander 
24*7509620bSJens Wiklander /*
25*7509620bSJens Wiklander  * Same as for __ta_open_sess_func(), except that @fp now is a pointer to
26*7509620bSJens Wiklander  * __GP11_TA_InvokeCommandEntryPoint().
27*7509620bSJens Wiklander  */
28*7509620bSJens Wiklander TEE_Result __ta_invoke_cmd(void *sess_ctx, uint32_t cmd_id, uint32_t pt,
29*7509620bSJens Wiklander 			   TEE_Param params[TEE_NUM_PARAMS],
30*7509620bSJens Wiklander 			   TEE_Result (*fp)(void *, uint32_t, uint32_t,
31*7509620bSJens Wiklander 					    __GP11_TEE_Param [TEE_NUM_PARAMS]));
32*7509620bSJens Wiklander 
33d372a47cSJens Wiklander #if __OPTEE_CORE_API_COMPAT_1_1
34d372a47cSJens Wiklander /* Types */
354f4374c8SJens Wiklander #define TEE_Attribute __GP11_TEE_Attribute
36d372a47cSJens Wiklander #define TEE_ObjectInfo __GP11_TEE_ObjectInfo
37*7509620bSJens Wiklander #define TEE_Param __GP11_TEE_Param
38d372a47cSJens Wiklander 
39d372a47cSJens Wiklander /* Functions */
40*7509620bSJens Wiklander #define TA_InvokeCommandEntryPoint __GP11_TA_InvokeCommandEntryPoint
41*7509620bSJens Wiklander #define TA_OpenSessionEntryPoint __GP11_TA_OpenSessionEntryPoint
424f4374c8SJens Wiklander #define TEE_AsymmetricDecrypt __GP11_TEE_AsymmetricDecrypt
434f4374c8SJens Wiklander #define TEE_AsymmetricEncrypt __GP11_TEE_AsymmetricEncrypt
444f4374c8SJens Wiklander #define TEE_AsymmetricSignDigest __GP11_TEE_AsymmetricSignDigest
454f4374c8SJens Wiklander #define TEE_AsymmetricVerifyDigest __GP11_TEE_AsymmetricVerifyDigest
464f4374c8SJens Wiklander #define TEE_DeriveKey __GP11_TEE_DeriveKey
474f4374c8SJens Wiklander #define TEE_GenerateKey __GP11_TEE_GenerateKey
48d372a47cSJens Wiklander #define TEE_GetNextPersistentObject __GP11_TEE_GetNextPersistentObject
49d372a47cSJens Wiklander #define TEE_GetObjectInfo1 __GP11_TEE_GetObjectInfo1
50d372a47cSJens Wiklander #define TEE_GetObjectInfo __GP11_TEE_GetObjectInfo
514f4374c8SJens Wiklander #define TEE_InitRefAttribute __GP11_TEE_InitRefAttribute
524f4374c8SJens Wiklander #define TEE_InitValueAttribute __GP11_TEE_InitValueAttribute
53*7509620bSJens Wiklander #define TEE_InvokeTACommand __GP11_TEE_InvokeTACommand
54*7509620bSJens Wiklander #define TEE_OpenTASession __GP11_TEE_OpenTASession
554f4374c8SJens Wiklander #define TEE_PopulateTransientObject __GP11_TEE_PopulateTransientObject
56d372a47cSJens Wiklander #endif
57d372a47cSJens Wiklander 
588bbc2e9cSJens Wiklander #endif /*__TEE_API_COMPAT_H*/
59