11#ifndef ZEPHYR_INCLUDE_IRQ_H_ 
   12#define ZEPHYR_INCLUDE_IRQ_H_ 
   15#include <zephyr/arch/cpu.h> 
   48#define IRQ_CONNECT(irq_p, priority_p, isr_p, isr_param_p, flags_p) \ 
   49        ARCH_IRQ_CONNECT(irq_p, priority_p, isr_p, isr_param_p, flags_p) 
   66                    void (*routine)(
const void *parameter),
 
  111#define IRQ_DIRECT_CONNECT(irq_p, priority_p, isr_p, flags_p) \ 
  112        ARCH_IRQ_DIRECT_CONNECT(irq_p, priority_p, isr_p, flags_p) 
  121#define ISR_DIRECT_HEADER() ARCH_ISR_DIRECT_HEADER() 
  138#define ISR_DIRECT_FOOTER(check_reschedule) \ 
  139        ARCH_ISR_DIRECT_FOOTER(check_reschedule) 
  149#define ISR_DIRECT_PM() ARCH_ISR_DIRECT_PM() 
  180#define ISR_DIRECT_DECLARE(name) ARCH_ISR_DIRECT_DECLARE(name) 
  224unsigned int z_smp_global_lock(
void);
 
  225#define irq_lock() z_smp_global_lock() 
  227#define irq_lock() arch_irq_lock() 
  252void z_smp_global_unlock(
unsigned int key);
 
  253#define irq_unlock(key) z_smp_global_unlock(key) 
  255#define irq_unlock(key) arch_irq_unlock(key) 
  268#if defined(CONFIG_3RD_LEVEL_INTERRUPTS) 
  269        return ((irq >> 16) & 0xFF) != 0 ? 3 :
 
  270                (((irq >> 8) & 0xFF) == 0 ? 1 : 2);
 
  271#elif defined(CONFIG_2ND_LEVEL_INTERRUPTS) 
  272        return ((irq >> 8) & 0xFF) == 0 ? 1 : 2;
 
  280#ifdef CONFIG_2ND_LEVEL_INTERRUPTS 
  292static inline unsigned int irq_from_level_2(
unsigned int irq)
 
  294#ifdef CONFIG_3RD_LEVEL_INTERRUPTS 
  295        return ((irq >> 8) & 0xFF) - 1;
 
  297        return (irq >> 8) - 1;
 
  313static inline unsigned int irq_to_level_2(
unsigned int irq)
 
  315        return (irq + 1) << 8;
 
  328static inline unsigned int irq_parent_level_2(
unsigned int irq)
 
  334#ifdef CONFIG_3RD_LEVEL_INTERRUPTS 
  346static inline unsigned int irq_from_level_3(
unsigned int irq)
 
  348        return (irq >> 16) - 1;
 
  363static inline unsigned int irq_to_level_3(
unsigned int irq)
 
  365        return (irq + 1) << 16;
 
  378static inline unsigned int irq_parent_level_3(
unsigned int irq)
 
  380        return (irq >> 8) & 0xFF;
 
  391#define irq_enable(irq) arch_irq_enable(irq) 
  400#define irq_disable(irq) arch_irq_disable(irq) 
  411#define irq_is_enabled(irq) arch_irq_is_enabled(irq) 
int arch_irq_connect_dynamic(unsigned int irq, unsigned int priority, void(*routine)(const void *parameter), const void *parameter, uint32_t flags)
 
static unsigned int irq_get_level(unsigned int irq)
Return IRQ level This routine returns the interrupt level number of the provided interrupt.
Definition: irq.h:266
 
static int irq_connect_dynamic(unsigned int irq, unsigned int priority, void(*routine)(const void *parameter), const void *parameter, uint32_t flags)
Definition: irq.h:65
 
flags
Definition: parser.h:96
 
static k_spinlock_key_t key
Definition: spinlock_error_case.c:15
 
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90