/* * Copyright (c) 2018-2021, Arm Limited. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause * */ {{utilities.donotedit_warning}} #include "tfm_secure_api.h" #include "spm_partition_defs.h" {% for partition in partitions %} /******** {{partition.manifest.name}} ********/ {% for sec_func in partition.manifest.secure_functions %} psa_status_t {{sec_func.signal.lower()}}(psa_invec *, size_t, psa_outvec *, size_t); {% endfor %} {% endfor %} #define TFM_VENEER_FUNCTION(partition_name, func_name, sfn_name) \ __tfm_secure_gateway_attributes__ \ psa_status_t func_name##_veneer(psa_invec *in_vec, \ size_t in_len, \ psa_outvec *out_vec, \ size_t out_len) \ { \ bool is_ns = tfm_core_is_ns_client(); \ \ TFM_CORE_IOVEC_SFN_REQUEST(partition_name, \ is_ns, \ (void *) sfn_name, \ in_vec, in_len, out_vec, out_len); \ } {% for partition in partitions %} /******** {{partition.manifest.name}} ********/ {% for sec_func in partition.manifest.secure_functions %} {% if sec_func.signal.lower().startswith('tfm_') %} {# If signal already contains tfm_ prefix, avoid adding a duplicated one in veneer function name. #} TFM_VENEER_FUNCTION({{partition.manifest.name}}, {{sec_func.signal.lower()}}, {{sec_func.signal.lower()}}) {% else %} TFM_VENEER_FUNCTION({{partition.manifest.name}}, tfm_{{sec_func.signal.lower()}}, {{sec_func.signal.lower()}}) {% endif %} {% endfor %} {% endfor %}