14#ifndef ZEPHYR_INCLUDE_SW_ISR_TABLE_H_
15#define ZEPHYR_INCLUDE_SW_ISR_TABLE_H_
17#if !defined(_ASMLANGUAGE)
26extern void _isr_wrapper(
void);
29extern void z_irq_spurious(
const void *unused);
36struct _isr_table_entry {
38 void (*isr)(
const void *);
44extern struct _isr_table_entry _sw_isr_table[];
64#ifdef CONFIG_SHARED_INTERRUPTS
65struct z_shared_isr_client {
66 void (*isr)(
const void *arg);
70struct z_shared_isr_table_entry {
71 struct z_shared_isr_client clients[CONFIG_SHARED_IRQ_MAX_NUM_CLIENTS];
75void z_shared_isr(
const void *data);
77extern struct z_shared_isr_table_entry z_shared_sw_isr_table[];
88unsigned int z_get_sw_isr_table_idx(
unsigned int irq);
91#define ISR_FLAG_DIRECT BIT(0)
93#define _MK_ISR_NAME(x, y) __MK_ISR_NAME(x, y)
94#define __MK_ISR_NAME(x, y) __isr_ ## x ## _irq_ ## y
100#define Z_ISR_DECLARE(irq, flags, func, param) \
101 static Z_DECL_ALIGN(struct _isr_list) Z_GENERIC_SECTION(.intList) \
102 __used _MK_ISR_NAME(func, __COUNTER__) = \
103 {irq, flags, (void *)&func, (const void *)param}
105#define IRQ_TABLE_SIZE (CONFIG_NUM_IRQS - CONFIG_GEN_IRQ_START_VECTOR)
107#ifdef CONFIG_DYNAMIC_INTERRUPTS
108void z_isr_install(
unsigned int irq,
void (*routine)(
const void *),
111#ifdef CONFIG_SHARED_INTERRUPTS
112int z_isr_uninstall(
unsigned int irq,
void (*routine)(
const void *),
flags
Definition: parser.h:96
__INT32_TYPE__ int32_t
Definition: stdint.h:74