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