xref: /optee_os/lib/libutee/include/tee_api_compat.h (revision fe03ed8b9ec34c158bf7bdb1bc4f94e6ce9d360f)
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 
97509620bSJens Wiklander /*
107509620bSJens Wiklander  * This function will be called from TA_OpenSessionEntryPoint() in
117509620bSJens Wiklander  * user_ta_header.c (if compiled with __OPTEE_CORE_API_COMPAT_1_1), the
127509620bSJens Wiklander  * compatibility entry function is passed as a function pointer in @fp.
137509620bSJens Wiklander  * This is needed since libutee is never compiled with
147509620bSJens Wiklander  * __OPTEE_CORE_API_COMPAT_1_1, but we still need a way to call the
157509620bSJens Wiklander  * compatibility function __GP11_TA_InvokeCommandEntryPoint(), but only
167509620bSJens Wiklander  * when __OPTEE_CORE_API_COMPAT_1_1 is defined.
177509620bSJens Wiklander  */
187509620bSJens Wiklander TEE_Result __ta_open_sess(uint32_t pt, TEE_Param params[TEE_NUM_PARAMS],
197509620bSJens Wiklander 			  void **sess_ctx,
207509620bSJens Wiklander 			  TEE_Result (*fp)(uint32_t,
217509620bSJens Wiklander 					   __GP11_TEE_Param [TEE_NUM_PARAMS],
227509620bSJens Wiklander 					   void **));
237509620bSJens Wiklander 
247509620bSJens Wiklander /*
257509620bSJens Wiklander  * Same as for __ta_open_sess_func(), except that @fp now is a pointer to
267509620bSJens Wiklander  * __GP11_TA_InvokeCommandEntryPoint().
277509620bSJens Wiklander  */
287509620bSJens Wiklander TEE_Result __ta_invoke_cmd(void *sess_ctx, uint32_t cmd_id, uint32_t pt,
297509620bSJens Wiklander 			   TEE_Param params[TEE_NUM_PARAMS],
307509620bSJens Wiklander 			   TEE_Result (*fp)(void *, uint32_t, uint32_t,
317509620bSJens Wiklander 					    __GP11_TEE_Param [TEE_NUM_PARAMS]));
327509620bSJens 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
377509620bSJens Wiklander #define TEE_Param __GP11_TEE_Param
38d372a47cSJens Wiklander 
39d372a47cSJens Wiklander /* Functions */
407509620bSJens Wiklander #define TA_InvokeCommandEntryPoint __GP11_TA_InvokeCommandEntryPoint
417509620bSJens Wiklander #define TA_OpenSessionEntryPoint __GP11_TA_OpenSessionEntryPoint
42d9096215SJens Wiklander #define TEE_AEDecryptFinal __GP11_TEE_AEDecryptFinal
43d9096215SJens Wiklander #define TEE_AEEncryptFinal __GP11_TEE_AEEncryptFinal
44d9096215SJens Wiklander #define TEE_AEInit __GP11_TEE_AEInit
45d9096215SJens Wiklander #define TEE_AEUpdateAAD __GP11_TEE_AEUpdateAAD
46d9096215SJens Wiklander #define TEE_AEUpdate __GP11_TEE_AEUpdate
47edc817baSJens Wiklander #define TEE_AllocateTransientObject __GP11_TEE_AllocateTransientObject
484f4374c8SJens Wiklander #define TEE_AsymmetricDecrypt __GP11_TEE_AsymmetricDecrypt
494f4374c8SJens Wiklander #define TEE_AsymmetricEncrypt __GP11_TEE_AsymmetricEncrypt
504f4374c8SJens Wiklander #define TEE_AsymmetricSignDigest __GP11_TEE_AsymmetricSignDigest
514f4374c8SJens Wiklander #define TEE_AsymmetricVerifyDigest __GP11_TEE_AsymmetricVerifyDigest
52*fe03ed8bSJens Wiklander #define TEE_BigIntConvertFromOctetString __GP11_TEE_BigIntConvertFromOctetString
53*fe03ed8bSJens Wiklander #define TEE_BigIntConvertToOctetString __GP11_TEE_BigIntConvertToOctetString
54*fe03ed8bSJens Wiklander #define TEE_BigIntFMMContextSizeInU32 __GP11_TEE_BigIntFMMContextSizeInU32
55*fe03ed8bSJens Wiklander #define TEE_BigIntFMMSizeInU32 __GP11_TEE_BigIntFMMSizeInU32
56*fe03ed8bSJens Wiklander #define TEE_BigIntInitFMMContext __GP11_TEE_BigIntInitFMMContext
57*fe03ed8bSJens Wiklander #define TEE_BigIntInitFMM __GP11_TEE_BigIntInitFMM
58*fe03ed8bSJens Wiklander #define TEE_BigIntShiftRight __GP11_TEE_BigIntShiftRight
59cd3a8caeSJens Wiklander #define TEE_CheckMemoryAccessRights __GP11_TEE_CheckMemoryAccessRights
60185bf58cSJens Wiklander #define TEE_CipherDoFinal __GP11_TEE_CipherDoFinal
61185bf58cSJens Wiklander #define TEE_CipherInit __GP11_TEE_CipherInit
62185bf58cSJens Wiklander #define TEE_CipherUpdate __GP11_TEE_CipherUpdate
63f22e1655SJens Wiklander #define TEE_CreatePersistentObject __GP11_TEE_CreatePersistentObject
644f4374c8SJens Wiklander #define TEE_DeriveKey __GP11_TEE_DeriveKey
65185bf58cSJens Wiklander #define TEE_DigestDoFinal __GP11_TEE_DigestDoFinal
66185bf58cSJens Wiklander #define TEE_DigestUpdate __GP11_TEE_DigestUpdate
674f4374c8SJens Wiklander #define TEE_GenerateKey __GP11_TEE_GenerateKey
68411a488aSJens Wiklander #define TEE_GenerateRandom __GP11_TEE_GenerateRandom
69d372a47cSJens Wiklander #define TEE_GetNextPersistentObject __GP11_TEE_GetNextPersistentObject
7091c84248SJens Wiklander #define TEE_GetObjectBufferAttribute __GP11_TEE_GetObjectBufferAttribute
71d372a47cSJens Wiklander #define TEE_GetObjectInfo1 __GP11_TEE_GetObjectInfo1
72d372a47cSJens Wiklander #define TEE_GetObjectInfo __GP11_TEE_GetObjectInfo
73cb98b7b2SJens Wiklander #define TEE_GetOperationInfoMultiple __GP11_TEE_GetOperationInfoMultiple
746551d565SJens Wiklander #define TEE_GetPropertyAsBinaryBlock __GP11_TEE_GetPropertyAsBinaryBlock
756551d565SJens Wiklander #define TEE_GetPropertyAsString __GP11_TEE_GetPropertyAsString
766551d565SJens Wiklander #define TEE_GetPropertyName __GP11_TEE_GetPropertyName
774f4374c8SJens Wiklander #define TEE_InitRefAttribute __GP11_TEE_InitRefAttribute
784f4374c8SJens Wiklander #define TEE_InitValueAttribute __GP11_TEE_InitValueAttribute
797509620bSJens Wiklander #define TEE_InvokeTACommand __GP11_TEE_InvokeTACommand
80185bf58cSJens Wiklander #define TEE_MACCompareFinal __GP11_TEE_MACCompareFinal
81185bf58cSJens Wiklander #define TEE_MACComputeFinal __GP11_TEE_MACComputeFinal
82185bf58cSJens Wiklander #define TEE_MACInit __GP11_TEE_MACInit
83185bf58cSJens Wiklander #define TEE_MACUpdate __GP11_TEE_MACUpdate
8411285ebcSJens Wiklander #define TEE_Malloc __GP11_TEE_Malloc
851d0ed95aSJens Wiklander #define TEE_MemCompare __GP11_TEE_MemCompare
861d0ed95aSJens Wiklander #define TEE_MemFill __GP11_TEE_MemFill
871d0ed95aSJens Wiklander #define TEE_MemMove __GP11_TEE_MemMove
8864a530f9SJens Wiklander #define TEE_OpenPersistentObject __GP11_TEE_OpenPersistentObject
897509620bSJens Wiklander #define TEE_OpenTASession __GP11_TEE_OpenTASession
904f4374c8SJens Wiklander #define TEE_PopulateTransientObject __GP11_TEE_PopulateTransientObject
9141af5286SJens Wiklander #define TEE_ReadObjectData __GP11_TEE_ReadObjectData
9211285ebcSJens Wiklander #define TEE_Realloc __GP11_TEE_Realloc
931c12923fSJens Wiklander #define TEE_RenamePersistentObject __GP11_TEE_RenamePersistentObject
948a72cdaeSJens Wiklander #define TEE_SeekObjectData __GP11_TEE_SeekObjectData
95f29aa79cSJens Wiklander #define TEE_TruncateObjectData __GP11_TEE_TruncateObjectData
9641af5286SJens Wiklander #define TEE_WriteObjectData __GP11_TEE_WriteObjectData
97d372a47cSJens Wiklander #endif
98d372a47cSJens Wiklander 
998bbc2e9cSJens Wiklander #endif /*__TEE_API_COMPAT_H*/
100