1 /* 2 * Copyright (c) 2021-2024, Arm Limited. All rights reserved. 3 * Copyright (c) 2022 Cypress Semiconductor Corporation (an Infineon 4 * company) or an affiliate of Cypress Semiconductor Corporation. All rights 5 * reserved. 6 * 7 * SPDX-License-Identifier: BSD-3-Clause 8 * 9 */ 10 11 #ifndef __INTERRUPT_DEFS_H__ 12 #define __INTERRUPT_DEFS_H__ 13 14 #include <stdint.h> 15 #include "tfm_hal_defs.h" 16 #include "psa/service.h" 17 18 /* IRQ static load info */ 19 struct irq_load_info_t { 20 /* 21 * Initialization function per interrupt. 22 * args: owner Partition, irq_load_info 23 */ 24 enum tfm_hal_status_t (*init)(void *pt, const struct irq_load_info_t *pildi); 25 psa_flih_result_t (*flih_func)(void); /* FLIH function, NULL for SLIH */ 26 int32_t pid; /* Owner Partition ID */ 27 uint32_t source; /* IRQ source (number/index) */ 28 psa_signal_t signal; /* The signal assigned for IRQ */ 29 int32_t client_id_base; /* The min translated client ID */ 30 int32_t client_id_limit; /* The max translated client ID */ 31 }; 32 33 /* IRQ runtime data */ 34 struct irq_t { 35 void *p_pt; /* The owner Partition */ 36 const struct irq_load_info_t *p_ildi; /* The interrupt load info */ 37 }; 38 39 #endif /* __INTERRUPT_DEFS_H__ */ 40