Mistake on this page?
Report an issue in GitHub or email us
TARGET_TFM_LATEST/include/tfm_ns_interface.h
1 /*
2  * Copyright (c) 2017-2021, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 #ifndef __TFM_NS_INTERFACE_H__
8 #define __TFM_NS_INTERFACE_H__
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 #include <stdint.h>
15 #include "tfm_api.h"
16 
17 typedef int32_t (*veneer_fn) (uint32_t arg0, uint32_t arg1,
18  uint32_t arg2, uint32_t arg3);
19 
20 /**
21  * \brief NS interface, veneer function dispatcher
22  *
23  * \details This function implements the dispatching mechanism for the
24  * desired veneer function, to be called with the parameters
25  * described from arg0 to arg3.
26  *
27  * \note NSPE shall implement this dispatcher according to NS specific
28  * implementation and actual usage scenario.
29  *
30  * \param[in] fn Function pointer to the veneer function desired
31  * \param[in] arg0 Argument 0 of fn
32  * \param[in] arg1 Argument 1 of fn
33  * \param[in] arg2 Argument 2 of fn
34  * \param[in] arg3 Argument 3 of fn
35  *
36  * \return Returns the same return value of the requested veneer function
37  *
38  * \note This API must ensure the return value is from the veneer function.
39  * Other unrecoverable errors must be considered as fatal error and should
40  * not return.
41  */
42 int32_t tfm_ns_interface_dispatch(veneer_fn fn,
43  uint32_t arg0, uint32_t arg1,
44  uint32_t arg2, uint32_t arg3);
45 
46 #ifdef __cplusplus
47 }
48 #endif
49 
50 #endif /* __TFM_NS_INTERFACE_H__ */
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.