xref: /aosp_15_r20/external/arm-trusted-firmware/include/common/interrupt_props.h (revision 54fd6939e177f8ff529b10183254802c76df6d08)
1*54fd6939SJiyong Park /*
2*54fd6939SJiyong Park  * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
3*54fd6939SJiyong Park  *
4*54fd6939SJiyong Park  * SPDX-License-Identifier: BSD-3-Clause
5*54fd6939SJiyong Park  */
6*54fd6939SJiyong Park 
7*54fd6939SJiyong Park #ifndef INTERRUPT_PROPS_H
8*54fd6939SJiyong Park #define INTERRUPT_PROPS_H
9*54fd6939SJiyong Park 
10*54fd6939SJiyong Park #ifndef __ASSEMBLER__
11*54fd6939SJiyong Park 
12*54fd6939SJiyong Park /* Create an interrupt property descriptor from various interrupt properties */
13*54fd6939SJiyong Park #define INTR_PROP_DESC(num, pri, grp, cfg) \
14*54fd6939SJiyong Park 	{ \
15*54fd6939SJiyong Park 		.intr_num = (num), \
16*54fd6939SJiyong Park 		.intr_pri = (pri), \
17*54fd6939SJiyong Park 		.intr_grp = (grp), \
18*54fd6939SJiyong Park 		.intr_cfg = (cfg), \
19*54fd6939SJiyong Park 	}
20*54fd6939SJiyong Park 
21*54fd6939SJiyong Park typedef struct interrupt_prop {
22*54fd6939SJiyong Park 	unsigned int intr_num:10;
23*54fd6939SJiyong Park 	unsigned int intr_pri:8;
24*54fd6939SJiyong Park 	unsigned int intr_grp:2;
25*54fd6939SJiyong Park 	unsigned int intr_cfg:2;
26*54fd6939SJiyong Park } interrupt_prop_t;
27*54fd6939SJiyong Park 
28*54fd6939SJiyong Park #endif /* __ASSEMBLER__ */
29*54fd6939SJiyong Park #endif /* INTERRUPT_PROPS_H */
30