Intel® Quark™ Microcontroller Software Interface  1.4.0
Intel® Quark™ Microcontroller BSP
qm_interrupt_router.h
1 /*
2  * {% copyright %}
3  */
4 
5 #ifndef __QM_INTERRUPT_ROUTER_H__
6 #define __QM_INTERRUPT_ROUTER_H__
7 
8 /**
9  * Quark SE SoC Interrupt Router registers.
10  *
11  * @defgroup groupQUARKSEINTERRUPTROUTER SoC Interrupt Router (SE)
12  * @{
13  */
14 
15 void _qm_ir_mask_int(uint32_t irq, uint32_t register_offset);
16 void _qm_ir_unmask_int(uint32_t irq, uint32_t register_offset);
17 
18 /*
19  * Unmask a given IRQ in the Interrupt Router.
20  *
21  * @note Not for use with sensor sub-system peripheral IRQs.
22  * For sensor peripherals use the macros defined in qm_interrupt_router_regs.h.
23  *
24  * @param[in] irq IRQ number. Must be of type QM_IRQ_XXX.
25  */
26 #define QM_IR_UNMASK_INT(irq) \
27  do { \
28  _qm_ir_unmask_int(irq, irq##_MASK_OFFSET); \
29  } while (0);
30 
31 /*
32  * Mask a given IRQ in the Interrupt Router.
33  *
34  * @note Not for use with sensor sub-system peripheral IRQs.
35  * For sensor peripherals use the macros defined in qm_interrupt_router_regs.h.
36  *
37  * @param[in] irq IRQ number. Must be of type QM_IRQ_XXX.
38  */
39 #define QM_IR_MASK_INT(irq) \
40  do { \
41  _qm_ir_mask_int(irq, irq##_MASK_OFFSET); \
42  } while (0);
43 
44 /** @} */
45 
46 #endif /* __QM_INTERRUPT_ROUTER_H__ */