|
Zephyr Project API 4.0.0
A Scalable Open Source RTOS
|
Functions | |
| static bool | arch_is_in_isr (void) |
| Test if the current context is in interrupt context. | |
| static unsigned int | arch_irq_lock (void) |
| Lock interrupts on the current CPU. | |
| static void | arch_irq_unlock (unsigned int key) |
| Unlock interrupts on the current CPU. | |
| static bool | arch_irq_unlocked (unsigned int key) |
| Test if calling arch_irq_unlock() with this key would unlock irqs. | |
| void | arch_irq_disable (unsigned int irq) |
| Disable the specified interrupt line. | |
| void | arch_irq_enable (unsigned int irq) |
| Enable the specified interrupt line. | |
| int | arch_irq_is_enabled (unsigned int irq) |
| Test if an interrupt line is enabled. | |
| 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. | |
| 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. | |
| unsigned int | arch_irq_allocate (void) |
| Arch-specific hook for allocating IRQs. | |
| void | arch_irq_set_used (unsigned int irq) |
| Arch-specific hook for declaring an IRQ being used. | |
| bool | arch_irq_is_used (unsigned int irq) |
| Arch-specific hook for checking if an IRQ is being used already. | |
| unsigned int arch_irq_allocate | ( | void | ) |
#include <include/zephyr/arch/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/arch/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/arch/arch_interface.h>
Disable the specified interrupt line.
| int arch_irq_disconnect_dynamic | ( | unsigned int | irq, |
| unsigned int | priority, | ||
| void(*)(const void *parameter) | routine, | ||
| const void * | parameter, | ||
| uint32_t | flags | ||
| ) |
#include <include/zephyr/arch/arch_interface.h>
Arch-specific hook to dynamically uninstall a shared interrupt.
If the interrupt is not being shared, then the associated _sw_isr_table entry will be replaced by (NULL, z_irq_spurious) (default entry).
| irq | IRQ line number |
| priority | Interrupt priority |
| routine | Interrupt service routine |
| parameter | ISR parameter |
| flags | Arch-specific IRQ configuration flag |
| void arch_irq_enable | ( | unsigned int | irq | ) |
#include <include/zephyr/arch/arch_interface.h>
Enable the specified interrupt line.
| int arch_irq_is_enabled | ( | unsigned int | irq | ) |
#include <include/zephyr/arch/arch_interface.h>
Test if an interrupt line is enabled.
#include <include/zephyr/arch/arch_interface.h>
Arch-specific hook for checking if an IRQ is being used already.
| irq | the IRQ to check |
|
inlinestatic |
#include <include/zephyr/arch/arch_interface.h>
Lock interrupts on the current CPU.
| void arch_irq_set_used | ( | unsigned int | irq | ) |
#include <include/zephyr/arch/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/arch/arch_interface.h>
Unlock interrupts on the current CPU.
#include <include/zephyr/arch/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