1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /* Copyright (c) 2018, Linaro Limited */
3 
4 #ifndef __ARITH_TAF_H
5 #define __ARITH_TAF_H
6 
7 #include <tee_internal_api.h>
8 
9 TEE_Result ta_entry_arith_new_var(uint32_t param_type,
10 				  TEE_Param params[TEE_NUM_PARAMS]);
11 TEE_Result ta_entry_arith_new_fmm_ctx(uint32_t param_type,
12 				      TEE_Param params[TEE_NUM_PARAMS]);
13 TEE_Result ta_entry_arith_new_fmm_var(uint32_t param_type,
14 				      TEE_Param params[TEE_NUM_PARAMS]);
15 TEE_Result ta_entry_arith_free_handle(uint32_t param_type,
16 				      TEE_Param params[TEE_NUM_PARAMS]);
17 TEE_Result ta_entry_arith_from_octet_string(uint32_t param_type,
18 					    TEE_Param params[TEE_NUM_PARAMS]);
19 TEE_Result ta_entry_arith_from_s32(uint32_t param_type,
20 				   TEE_Param params[TEE_NUM_PARAMS]);
21 TEE_Result ta_entry_arith_get_value(uint32_t param_type,
22 				    TEE_Param params[TEE_NUM_PARAMS]);
23 TEE_Result ta_entry_arith_get_value_s32(uint32_t param_type,
24 					TEE_Param params[TEE_NUM_PARAMS]);
25 TEE_Result ta_entry_arith_get_bit(uint32_t param_type,
26 				  TEE_Param params[TEE_NUM_PARAMS]);
27 TEE_Result ta_entry_arith_get_bit_count(uint32_t param_type,
28 					TEE_Param params[TEE_NUM_PARAMS]);
29 TEE_Result ta_entry_arith_shift_right(uint32_t param_type,
30 				      TEE_Param params[TEE_NUM_PARAMS]);
31 TEE_Result ta_entry_arith_cmp(uint32_t param_type,
32 			      TEE_Param params[TEE_NUM_PARAMS]);
33 TEE_Result ta_entry_arith_cmp_s32(uint32_t param_type,
34 				  TEE_Param params[TEE_NUM_PARAMS]);
35 TEE_Result ta_entry_arith_add(uint32_t param_type,
36 			      TEE_Param params[TEE_NUM_PARAMS]);
37 TEE_Result ta_entry_arith_sub(uint32_t param_type,
38 			      TEE_Param params[TEE_NUM_PARAMS]);
39 TEE_Result ta_entry_arith_mul(uint32_t param_type,
40 			      TEE_Param params[TEE_NUM_PARAMS]);
41 TEE_Result ta_entry_arith_neg(uint32_t param_type,
42 			      TEE_Param params[TEE_NUM_PARAMS]);
43 TEE_Result ta_entry_arith_sqr(uint32_t param_type,
44 			      TEE_Param params[TEE_NUM_PARAMS]);
45 TEE_Result ta_entry_arith_div(uint32_t param_type,
46 			      TEE_Param params[TEE_NUM_PARAMS]);
47 TEE_Result ta_entry_arith_mod(uint32_t param_type,
48 			      TEE_Param params[TEE_NUM_PARAMS]);
49 TEE_Result ta_entry_arith_addmod(uint32_t param_type,
50 				 TEE_Param params[TEE_NUM_PARAMS]);
51 TEE_Result ta_entry_arith_submod(uint32_t param_type,
52 				 TEE_Param params[TEE_NUM_PARAMS]);
53 TEE_Result ta_entry_arith_mulmod(uint32_t param_type,
54 				 TEE_Param params[TEE_NUM_PARAMS]);
55 TEE_Result ta_entry_arith_sqrmod(uint32_t param_type,
56 				 TEE_Param params[TEE_NUM_PARAMS]);
57 TEE_Result ta_entry_arith_invmod(uint32_t param_type,
58 				 TEE_Param params[TEE_NUM_PARAMS]);
59 TEE_Result ta_entry_arith_is_rel_prime(uint32_t param_type,
60 				       TEE_Param params[TEE_NUM_PARAMS]);
61 TEE_Result ta_entry_arith_compute_egcd(uint32_t param_type,
62 				       TEE_Param params[TEE_NUM_PARAMS]);
63 TEE_Result ta_entry_arith_is_prime(uint32_t param_type,
64 				   TEE_Param params[TEE_NUM_PARAMS]);
65 TEE_Result ta_entry_arith_to_fmm(uint32_t param_type,
66 				 TEE_Param params[TEE_NUM_PARAMS]);
67 TEE_Result ta_entry_arith_from_fmm(uint32_t param_type,
68 				   TEE_Param params[TEE_NUM_PARAMS]);
69 TEE_Result ta_entry_arith_compute_fmm(uint32_t param_type,
70 				      TEE_Param params[TEE_NUM_PARAMS]);
71 
72 #endif /*__ARITH_TAF_H*/
73