|
Zephyr Project API 4.0.0
A Scalable Open Source RTOS
|
Software-managed ISR table. More...
#include <zephyr/device.h>#include <zephyr/sys/iterable_sections.h>#include <zephyr/types.h>#include <zephyr/toolchain.h>#include <zephyr/sys/util.h>Go to the source code of this file.
Macros | |
| #define | INTC_BASE_ISR_TBL_OFFSET(node_id) Z_SW_ISR_TBL_KCONFIG_BY_ALVL(DT_INTC_GET_AGGREGATOR_LEVEL(node_id)) |
| Get an interrupt controller node's level base ISR table offset. | |
| #define | INTC_INST_ISR_TBL_OFFSET(inst) (INTC_BASE_ISR_TBL_OFFSET(DT_DRV_INST(inst)) + (inst * CONFIG_MAX_IRQ_PER_AGGREGATOR)) |
| Get the SW ISR table offset for an instance of interrupt controller. | |
| #define | INTC_CHILD_ISR_TBL_OFFSET(node_id) |
| Get the SW ISR table offset for a child interrupt controller. | |
| #define | IRQ_PARENT_ENTRY_DEFINE(_name, _dev, _irq, _offset, _level) |
| Register an interrupt controller with the software ISR table. | |
| #define | ISR_FLAG_DIRECT BIT(0) |
| This interrupt gets put directly in the vector table. | |
| #define | IRQ_TABLE_SIZE (CONFIG_NUM_IRQS - CONFIG_GEN_IRQ_START_VECTOR) |
Software-managed ISR table.
Data types for a software-managed ISR table, with a parameter per-ISR.
| #define INTC_BASE_ISR_TBL_OFFSET | ( | node_id | ) | Z_SW_ISR_TBL_KCONFIG_BY_ALVL(DT_INTC_GET_AGGREGATOR_LEVEL(node_id)) |
Get an interrupt controller node's level base ISR table offset.
| node_id | node identifier of the interrupt controller |
CONFIG_2ND_LVL_ISR_TBL_OFFSET if node_id is a second level aggregator, CONFIG_3RD_LVL_ISR_TBL_OFFSET if it is a third level aggregator | #define INTC_CHILD_ISR_TBL_OFFSET | ( | node_id | ) |
Get the SW ISR table offset for a child interrupt controller.
This macro is a alternative form of the INTC_INST_ISR_TBL_OFFSET. This is used by pseudo interrupt controller devices that are child of a main interrupt controller device.
| node_id | node identifier of the child interrupt controller |
| #define INTC_INST_ISR_TBL_OFFSET | ( | inst | ) | (INTC_BASE_ISR_TBL_OFFSET(DT_DRV_INST(inst)) + (inst * CONFIG_MAX_IRQ_PER_AGGREGATOR)) |
Get the SW ISR table offset for an instance of interrupt controller.
| inst | DT_DRV_COMPAT interrupt controller driver instance number |
| #define IRQ_PARENT_ENTRY_DEFINE | ( | _name, | |
| _dev, | |||
| _irq, | |||
| _offset, | |||
| _level | |||
| ) |
Register an interrupt controller with the software ISR table.
| _name | Name of the interrupt controller (must be unique) |
| _dev | Pointer to the interrupt controller device instance |
| _irq | Interrupt controller IRQ number |
| _offset | Software ISR table offset of the interrupt controller |
| _level | Interrupt controller aggregator level |
| #define IRQ_TABLE_SIZE (CONFIG_NUM_IRQS - CONFIG_GEN_IRQ_START_VECTOR) |
| #define ISR_FLAG_DIRECT BIT(0) |
This interrupt gets put directly in the vector table.