diff options
| author | Michal Hanus <mikehanus@protonmail.com> | 2025-04-14 22:04:32 +0200 |
|---|---|---|
| committer | Michal Hanus <mikehanus@protonmail.com> | 2025-04-14 22:04:32 +0200 |
| commit | 2e13c372f1419f08dab7797b244681f889dd9bcf (patch) | |
| tree | 995a31c40f13068c4135c213e938e0a2a9ed05a3 /nrfdemo/builddk/tfm/api_ns/interface/include/tfm_ns_interface.h | |
| parent | 620dfd94019f3c7e3022fa5a5fb9c9b51491062d (diff) | |
nrfdemo
Diffstat (limited to 'nrfdemo/builddk/tfm/api_ns/interface/include/tfm_ns_interface.h')
| -rw-r--r-- | nrfdemo/builddk/tfm/api_ns/interface/include/tfm_ns_interface.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/nrfdemo/builddk/tfm/api_ns/interface/include/tfm_ns_interface.h b/nrfdemo/builddk/tfm/api_ns/interface/include/tfm_ns_interface.h new file mode 100644 index 0000000..32a04c5 --- /dev/null +++ b/nrfdemo/builddk/tfm/api_ns/interface/include/tfm_ns_interface.h @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2017-2021, Arm Limited. All rights reserved. + * Copyright (c) 2023 Cypress Semiconductor Corporation (an Infineon company) + * or an affiliate of Cypress Semiconductor Corporation. All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + * + */ +#ifndef __TFM_NS_INTERFACE_H__ +#define __TFM_NS_INTERFACE_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include <stdint.h> +#include "tfm_veneers.h" + +typedef int32_t (*veneer_fn) (uint32_t arg0, uint32_t arg1, + uint32_t arg2, uint32_t arg3); + +/** + * \brief NS interface, veneer function dispatcher + * + * \details This function implements the dispatching mechanism for the + * desired veneer function, to be called with the parameters + * described from arg0 to arg3. + * + * \note NSPE can use default implementation of this function or implement + * this function according to NS specific implementation and actual + * usage scenario. + * + * \param[in] fn Function pointer to the veneer function desired + * \param[in] arg0 Argument 0 of fn + * \param[in] arg1 Argument 1 of fn + * \param[in] arg2 Argument 2 of fn + * \param[in] arg3 Argument 3 of fn + * + * \return Returns the same return value of the requested veneer function + * + * \note This API must ensure the return value is from the veneer function. + * Other unrecoverable errors must be considered as fatal error and should + * not return. + */ +int32_t tfm_ns_interface_dispatch(veneer_fn fn, + uint32_t arg0, uint32_t arg1, + uint32_t arg2, uint32_t arg3); + +/** + * \brief NS interface initialization function + * + * \details This function initializes TF-M NS interface. + * + * \note NSPE can use default implementation of this function or implement + * this function according to NS specific implementation and actual + * usage scenario. + * + * \return \ref OS_WRAPPER_SUCCESS on success or \ref OS_WRAPPER_ERROR on error + */ +uint32_t tfm_ns_interface_init(void); + +#ifdef __cplusplus +} +#endif + +#endif /* __TFM_NS_INTERFACE_H__ */ |
