Ashutosh Singh | f4d8867 | 2017-11-29 13:35:43 +0000 | [diff] [blame] | 1 | /* |
Summer Qin | 484513b | 2022-10-09 17:40:24 +0800 | [diff] [blame] | 2 | * Copyright (c) 2017-2022, Arm Limited. All rights reserved. |
Ashutosh Singh | f4d8867 | 2017-11-29 13:35:43 +0000 | [diff] [blame] | 3 | * |
| 4 | * SPDX-License-Identifier: BSD-3-Clause |
| 5 | * |
| 6 | */ |
| 7 | |
Kevin Peng | 0e340ea | 2023-08-15 17:51:44 +0800 | [diff] [blame] | 8 | #ifndef __TFM_VENEERS_H__ |
| 9 | #define __TFM_VENEERS_H__ |
Ashutosh Singh | f4d8867 | 2017-11-29 13:35:43 +0000 | [diff] [blame] | 10 | |
Mate Toth-Pal | ce61afa | 2018-08-03 13:51:01 +0200 | [diff] [blame] | 11 | #include <stdint.h> |
Jamie Fox | cc31d40 | 2019-01-28 17:13:52 +0000 | [diff] [blame] | 12 | #include "psa/client.h" |
Miklos Balint | bf25a40 | 2018-06-14 17:43:54 +0200 | [diff] [blame] | 13 | |
Kevin Peng | 0e340ea | 2023-08-15 17:51:44 +0800 | [diff] [blame] | 14 | #ifdef __cplusplus |
| 15 | extern "C" { |
| 16 | #endif |
Ashutosh Singh | f4d8867 | 2017-11-29 13:35:43 +0000 | [diff] [blame] | 17 | |
Summer Qin | 40db9ea | 2019-11-20 15:28:04 +0800 | [diff] [blame] | 18 | /********************* Secure function declarations ***************************/ |
Ashutosh Singh | f4d8867 | 2017-11-29 13:35:43 +0000 | [diff] [blame] | 19 | |
Mate Toth-Pal | ce61afa | 2018-08-03 13:51:01 +0200 | [diff] [blame] | 20 | /** |
Summer Qin | 40db9ea | 2019-11-20 15:28:04 +0800 | [diff] [blame] | 21 | * \brief Retrieve the version of the PSA Framework API that is implemented. |
Edison Ai | b3e5696 | 2018-09-04 19:12:31 +0800 | [diff] [blame] | 22 | * |
Summer Qin | 40db9ea | 2019-11-20 15:28:04 +0800 | [diff] [blame] | 23 | * \return The version of the PSA Framework. |
Edison Ai | b3e5696 | 2018-09-04 19:12:31 +0800 | [diff] [blame] | 24 | */ |
| 25 | uint32_t tfm_psa_framework_version_veneer(void); |
| 26 | |
| 27 | /** |
Summer Qin | 40db9ea | 2019-11-20 15:28:04 +0800 | [diff] [blame] | 28 | * \brief Return version of secure function provided by secure binary. |
Miklos Balint | 87da251 | 2018-04-19 13:45:50 +0200 | [diff] [blame] | 29 | * |
Summer Qin | 40db9ea | 2019-11-20 15:28:04 +0800 | [diff] [blame] | 30 | * \param[in] sid ID of secure service. |
Miklos Balint | 87da251 | 2018-04-19 13:45:50 +0200 | [diff] [blame] | 31 | * |
Summer Qin | 40db9ea | 2019-11-20 15:28:04 +0800 | [diff] [blame] | 32 | * \return Version number of secure function. |
Miklos Balint | 87da251 | 2018-04-19 13:45:50 +0200 | [diff] [blame] | 33 | */ |
| 34 | uint32_t tfm_psa_version_veneer(uint32_t sid); |
| 35 | |
| 36 | /** |
Summer Qin | 40db9ea | 2019-11-20 15:28:04 +0800 | [diff] [blame] | 37 | * \brief Connect to secure function. |
Miklos Balint | 87da251 | 2018-04-19 13:45:50 +0200 | [diff] [blame] | 38 | * |
Summer Qin | 40db9ea | 2019-11-20 15:28:04 +0800 | [diff] [blame] | 39 | * \param[in] sid ID of secure service. |
| 40 | * \param[in] version Version of SF requested by client. |
Miklos Balint | 87da251 | 2018-04-19 13:45:50 +0200 | [diff] [blame] | 41 | * |
Summer Qin | 40db9ea | 2019-11-20 15:28:04 +0800 | [diff] [blame] | 42 | * \return Returns handle to connection. |
Miklos Balint | 87da251 | 2018-04-19 13:45:50 +0200 | [diff] [blame] | 43 | */ |
Summer Qin | 4b1d03b | 2019-07-02 14:56:08 +0800 | [diff] [blame] | 44 | psa_handle_t tfm_psa_connect_veneer(uint32_t sid, uint32_t version); |
Miklos Balint | 87da251 | 2018-04-19 13:45:50 +0200 | [diff] [blame] | 45 | |
| 46 | /** |
Summer Qin | 40db9ea | 2019-11-20 15:28:04 +0800 | [diff] [blame] | 47 | * \brief Call a secure function referenced by a connection handle. |
Miklos Balint | 87da251 | 2018-04-19 13:45:50 +0200 | [diff] [blame] | 48 | * |
Summer Qin | 40db9ea | 2019-11-20 15:28:04 +0800 | [diff] [blame] | 49 | * \param[in] handle Handle to connection. |
Xinyu Zhang | 99b069f | 2021-04-09 14:36:42 +0800 | [diff] [blame] | 50 | * \param[in] ctrl_param Parameters combined in uint32_t, |
| 51 | * includes request type, in_num and out_num. |
Summer Qin | 40db9ea | 2019-11-20 15:28:04 +0800 | [diff] [blame] | 52 | * \param[in] in_vec Array of input \ref psa_invec structures. |
Shawn Shan | 7ef79ec | 2021-01-21 10:28:18 +0800 | [diff] [blame] | 53 | * \param[in,out] out_vec Array of output \ref psa_outvec structures. |
Miklos Balint | 87da251 | 2018-04-19 13:45:50 +0200 | [diff] [blame] | 54 | * |
Summer Qin | 40db9ea | 2019-11-20 15:28:04 +0800 | [diff] [blame] | 55 | * \return Returns \ref psa_status_t status code. |
Miklos Balint | 87da251 | 2018-04-19 13:45:50 +0200 | [diff] [blame] | 56 | */ |
Summer Qin | 83ac1ca | 2019-09-29 18:33:28 +0800 | [diff] [blame] | 57 | psa_status_t tfm_psa_call_veneer(psa_handle_t handle, |
Xinyu Zhang | 99b069f | 2021-04-09 14:36:42 +0800 | [diff] [blame] | 58 | uint32_t ctrl_param, |
| 59 | const psa_invec *in_vec, |
| 60 | psa_outvec *out_vec); |
Miklos Balint | 87da251 | 2018-04-19 13:45:50 +0200 | [diff] [blame] | 61 | |
| 62 | /** |
Summer Qin | 40db9ea | 2019-11-20 15:28:04 +0800 | [diff] [blame] | 63 | * \brief Close connection to secure function referenced by a connection handle. |
Miklos Balint | 87da251 | 2018-04-19 13:45:50 +0200 | [diff] [blame] | 64 | * |
Summer Qin | 40db9ea | 2019-11-20 15:28:04 +0800 | [diff] [blame] | 65 | * \param[in] handle Handle to connection |
Miklos Balint | 87da251 | 2018-04-19 13:45:50 +0200 | [diff] [blame] | 66 | */ |
Summer Qin | 483da64 | 2019-09-25 17:57:41 +0800 | [diff] [blame] | 67 | void tfm_psa_close_veneer(psa_handle_t handle); |
Miklos Balint | 87da251 | 2018-04-19 13:45:50 +0200 | [diff] [blame] | 68 | |
Summer Qin | 40db9ea | 2019-11-20 15:28:04 +0800 | [diff] [blame] | 69 | /***************** End Secure function declarations ***************************/ |
Ashutosh Singh | f4d8867 | 2017-11-29 13:35:43 +0000 | [diff] [blame] | 70 | |
| 71 | #ifdef __cplusplus |
| 72 | } |
| 73 | #endif |
| 74 | |
Kevin Peng | 0e340ea | 2023-08-15 17:51:44 +0800 | [diff] [blame] | 75 | #endif /* __TFM_VENEERS_H__ */ |