11#ifndef ZEPHYR_INCLUDE_IRQ_H_
12#define ZEPHYR_INCLUDE_IRQ_H_
50#define IRQ_CONNECT(irq_p, priority_p, isr_p, isr_param_p, flags_p) \
51 ARCH_IRQ_CONNECT(irq_p, priority_p, isr_p, isr_param_p, flags_p)
68 void (*routine)(
const void *parameter),
93 void (*routine)(
const void *parameter),
142#define IRQ_DIRECT_CONNECT(irq_p, priority_p, isr_p, flags_p) \
143 ARCH_IRQ_DIRECT_CONNECT(irq_p, priority_p, isr_p, flags_p)
152#define ISR_DIRECT_HEADER() ARCH_ISR_DIRECT_HEADER()
169#define ISR_DIRECT_FOOTER(check_reschedule) \
170 ARCH_ISR_DIRECT_FOOTER(check_reschedule)
184#define ISR_DIRECT_PM() ARCH_ISR_DIRECT_PM()
219#define ISR_DIRECT_DECLARE(name) ARCH_ISR_DIRECT_DECLARE(name)
259unsigned int z_smp_global_lock(
void);
260#define irq_lock() z_smp_global_lock()
262#define irq_lock() arch_irq_lock()
287void z_smp_global_unlock(
unsigned int key);
288#define irq_unlock(key) z_smp_global_unlock(key)
290#define irq_unlock(key) arch_irq_unlock(key)
300#define irq_enable(irq) arch_irq_enable(irq)
309#define irq_disable(irq) arch_irq_disable(irq)
320#define irq_is_enabled(irq) arch_irq_is_enabled(irq)
395 void (*routine)(
const void *parameter),
414 void (*routine)(
const void *parameter),
420#if defined(CONFIG_ARCH_HAS_IRQ_PENDING_OPS) || defined(__DOXYGEN__)
472#if defined(CONFIG_ARCH_HAS_IRQ_GET_ACTIVE) || defined(__DOXYGEN__)
476#define K_IRQ_ACTIVE_NONE UINT_MAX
int arch_irq_disconnect_dynamic(unsigned int irq, unsigned int priority, void(*routine)(const void *parameter), const void *parameter, uint32_t flags)
Arch-specific hook to dynamically uninstall a shared interrupt.
void arch_irq_clear_pending(unsigned int irq)
Clear the pending state of the specified interrupt line.
bool arch_irq_is_pending(unsigned int irq)
Test if the specified interrupt line is pending.
int arch_irq_connect_dynamic(unsigned int irq, unsigned int priority, void(*routine)(const void *parameter), const void *parameter, uint32_t flags)
Arch-specific hook to install a dynamic interrupt.
void arch_irq_set_pending(unsigned int irq)
Set the pending state of the specified interrupt line.
unsigned int arch_irq_get_active(void)
Report the interrupt line being serviced on the current CPU.
#define irq_lock()
Lock interrupts.
Definition irq.h:260
static ALWAYS_INLINE bool k_irq_is_pending(unsigned int irq)
Get IRQ pending state.
Definition irq.h:466
static ALWAYS_INLINE int k_irq_connect_dynamic(unsigned int irq, unsigned int priority, void(*routine)(const void *parameter), const void *parameter, uint32_t flags)
Configure a dynamic interrupt; namespaced equivalent of irq_connect_dynamic().
Definition irq.h:394
static ALWAYS_INLINE void k_irq_disable(unsigned int irq)
Disable an IRQ; namespaced equivalent of irq_disable().
Definition irq.h:365
static ALWAYS_INLINE void k_irq_unlock(unsigned int key)
Unlock interrupts; namespaced equivalent of irq_unlock().
Definition irq.h:345
static int irq_connect_dynamic(unsigned int irq, unsigned int priority, void(*routine)(const void *parameter), const void *parameter, uint32_t flags)
Configure a dynamic interrupt.
Definition irq.h:67
static ALWAYS_INLINE void k_irq_enable(unsigned int irq)
Enable an IRQ; namespaced equivalent of irq_enable().
Definition irq.h:355
#define irq_unlock(key)
Unlock interrupts.
Definition irq.h:288
#define irq_is_enabled(irq)
Get IRQ enable state.
Definition irq.h:320
#define irq_enable(irq)
Enable an IRQ.
Definition irq.h:300
#define irq_disable(irq)
Disable an IRQ.
Definition irq.h:309
static ALWAYS_INLINE void k_irq_clear_pending(unsigned int irq)
Clear the pending state of an IRQ.
Definition irq.h:432
static ALWAYS_INLINE unsigned int k_irq_get_active(void)
Get the IRQ currently being serviced on this CPU.
Definition irq.h:491
static ALWAYS_INLINE void k_irq_set_pending(unsigned int irq)
Set the pending state of an IRQ.
Definition irq.h:448
static ALWAYS_INLINE int k_irq_is_enabled(unsigned int irq)
Get IRQ enable state; namespaced equivalent of irq_is_enabled().
Definition irq.h:377
static int irq_disconnect_dynamic(unsigned int irq, unsigned int priority, void(*routine)(const void *parameter), const void *parameter, uint32_t flags)
Disconnect a dynamic interrupt.
Definition irq.h:92
static ALWAYS_INLINE unsigned int k_irq_lock(void)
Lock interrupts; namespaced equivalent of irq_lock().
Definition irq.h:335
static ALWAYS_INLINE int k_irq_disconnect_dynamic(unsigned int irq, unsigned int priority, void(*routine)(const void *parameter), const void *parameter, uint32_t flags)
Disconnect a dynamic interrupt; namespaced equivalent of irq_disconnect_dynamic().
Definition irq.h:413
flags
Definition parser.h:97
__UINT32_TYPE__ uint32_t
Definition stdint.h:90