| /* |
| * Copyright (c) 2019-2021, Arm Limited. All rights reserved. |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| * |
| */ |
| |
| {{utilities.donotedit_warning}} |
| |
| #ifndef __PSA_MANIFEST_{{manifest_out_basename.upper()}}_H__ |
| #define __PSA_MANIFEST_{{manifest_out_basename.upper()}}_H__ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| {% if manifest.psa_framework_version == 1.1 and manifest.model == "SFN" %} |
| #define {{"%-55s"|format(manifest.name + "_MODEL_IPC")}} 0 |
| #define {{"%-55s"|format(manifest.name + "_MODEL_SFN")}} 1 |
| {% else %} |
| #define {{"%-55s"|format(manifest.name + "_MODEL_IPC")}} 1 |
| #define {{"%-55s"|format(manifest.name + "_MODEL_SFN")}} 0 |
| {% endif %} |
| |
| {% set service_signal = namespace(bit=4) %} |
| {% if manifest.services %} |
| {% for service in manifest.services %} |
| {% if manifest.psa_framework_version == 1.1 and manifest.model == "SFN" %} |
| psa_status_t {{service.name|lower}}_sfn(const psa_msg_t* msg); |
| {% else %} |
| #define {{"%-55s"|format(service.name + "_SIGNAL")}} (1U << {{"%d"|format(service_signal.bit)}}) |
| {% set service_signal.bit = service_signal.bit + 1 %} |
| {% endif %} |
| {% endfor %} |
| {% endif %} |
| {% if service_signal.bit > 32 %} |
| #error "Too many services!" |
| {% endif %} |
| |
| {% set irq_signal = namespace(bit=31) %} |
| {% if manifest.irqs %} |
| {% for irq in manifest.irqs %} |
| {% set irq_data = namespace() %} |
| {% if manifest.psa_framework_version == 1.0 %} |
| {% set irq_data.signal = irq.signal %} |
| {% else %} |
| {% set irq_data.signal = irq.name + "_SIGNAL" %} |
| {% endif %} |
| #define {{"%-55s"|format(irq_data.signal)}} (1U << {{"%d"|format(irq_signal.bit)}}) |
| {% set irq_signal.bit = irq_signal.bit - 1 %} |
| {% endfor %} |
| {% if manifest.psa_framework_version == 1.1 %} |
| {% for irq in manifest.irqs %} |
| {% if irq.handling == "FLIH" %} |
| psa_flih_result_t {{irq.name|lower}}_flih(void); |
| {% endif %} |
| {% endfor %} |
| {% endif %} |
| {% endif %} |
| {% if (irq_signal.bit + 1) < 4 %} |
| #error "Too many IRQ signals!" |
| {% endif %} |
| {% if (service_signal.bit - 1) >= (irq_signal.bit + 1) %} |
| #error "Total number of services and irqs exceeds 28." |
| {% endif %} |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* __PSA_MANIFEST_{{manifest_out_basename.upper()}}_H__ */ |