Zephyr Project API
3.3.0
A Scalable Open Source RTOS
|
Functions | |
static unsigned int | arch_irq_lock (void) |
static void | arch_irq_unlock (unsigned int key) |
static bool | arch_irq_unlocked (unsigned int key) |
void | arch_irq_disable (unsigned int irq) |
void | arch_irq_enable (unsigned int irq) |
int | arch_irq_is_enabled (unsigned int irq) |
int | arch_irq_connect_dynamic (unsigned int irq, unsigned int priority, void(*routine)(const void *parameter), const void *parameter, uint32_t flags) |
unsigned int | arch_irq_allocate (void) |
Arch-specific hook for allocating IRQs. More... | |
void | arch_irq_set_used (unsigned int irq) |
Arch-specific hook for declaring an IRQ being used. More... | |
bool | arch_irq_is_used (unsigned int irq) |
Arch-specific hook for checking if an IRQ is being used already. More... | |
static bool | arch_is_in_isr (void) |
unsigned int arch_irq_allocate | ( | void | ) |
#include <include/zephyr/sys/arch_interface.h>
Arch-specific hook for allocating IRQs.
Note: disable/enable IRQ relevantly inside the implementation of such function to avoid concurrency issues. Also, an allocated IRQ is assumed to be used thus a following
int arch_irq_connect_dynamic | ( | unsigned int | irq, |
unsigned int | priority, | ||
void(*)(const void *parameter) | routine, | ||
const void * | parameter, | ||
uint32_t | flags | ||
) |
#include <include/zephyr/sys/arch_interface.h>
Arch-specific hook to install a dynamic interrupt.
irq | IRQ line number |
priority | Interrupt priority |
routine | Interrupt service routine |
parameter | ISR parameter |
flags | Arch-specific IRQ configuration flag |
void arch_irq_disable | ( | unsigned int | irq | ) |
#include <include/zephyr/sys/arch_interface.h>
Disable the specified interrupt line
void arch_irq_enable | ( | unsigned int | irq | ) |
#include <include/zephyr/sys/arch_interface.h>
Enable the specified interrupt line
int arch_irq_is_enabled | ( | unsigned int | irq | ) |
#include <include/zephyr/sys/arch_interface.h>
Test if an interrupt line is enabled
#include <include/zephyr/sys/arch_interface.h>
Arch-specific hook for checking if an IRQ is being used already.
irq | the IRQ to check |
|
inlinestatic |
#include <include/zephyr/sys/arch_interface.h>
Lock interrupts on the current CPU
void arch_irq_set_used | ( | unsigned int | irq | ) |
#include <include/zephyr/sys/arch_interface.h>
Arch-specific hook for declaring an IRQ being used.
Note: disable/enable IRQ relevantly inside the implementation of such function to avoid concurrency issues.
irq | the IRQ to declare being used |
|
inlinestatic |
#include <include/zephyr/sys/arch_interface.h>
Unlock interrupts on the current CPU
#include <include/zephyr/sys/arch_interface.h>
Test if calling arch_irq_unlock() with this key would unlock irqs
key | value returned by arch_irq_lock() |
|
inlinestatic |
#include <kernel/include/kernel_arch_interface.h>
Test if the current context is in interrupt context
XXX: This is inconsistently handled among arches wrt exception context See: #17656