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