11#ifndef ZEPHYR_INCLUDE_ARCH_ARM_ASM_INLINE_GCC_H_
12#define ZEPHYR_INCLUDE_ARCH_ARM_ASM_INLINE_GCC_H_
24#include <cmsis_core.h>
26#if defined(CONFIG_CPU_AARCH32_CORTEX_R) || defined(CONFIG_CPU_AARCH32_CORTEX_A)
48#if defined(CONFIG_ARMV6_M_ARMV8_M_BASELINE)
49#if CONFIG_MP_MAX_NUM_CPUS == 1 || defined(CONFIG_ARMV8_M_BASELINE)
50 key = __get_PRIMASK();
53#error "Cortex-M0 and Cortex-M0+ require SoC specific support for cross core synchronisation."
55#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
56 key = __get_BASEPRI();
57 __set_BASEPRI_MAX(_EXC_IRQ_DEFAULT_PRIO);
59#elif defined(CONFIG_ARMV7_R) || defined(CONFIG_AARCH32_ARMV8_R) \
60 || defined(CONFIG_ARMV7_A)
69#error Unknown ARM architecture
82#if defined(CONFIG_ARMV6_M_ARMV8_M_BASELINE)
88#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
91#elif defined(CONFIG_ARMV7_R) || defined(CONFIG_AARCH32_ARMV8_R) \
92 || defined(CONFIG_ARMV7_A)
98#error Unknown ARM architecture
static ALWAYS_INLINE unsigned int arch_irq_lock(void)
Definition asm_inline_gcc.h:44
static ALWAYS_INLINE void arch_irq_unlock(unsigned int key)
Definition asm_inline_gcc.h:80
static ALWAYS_INLINE bool arch_irq_unlocked(unsigned int key)
Definition asm_inline_gcc.h:102
#define I_BIT
Definition cpu.h:31
ARM AArch32 public exception handling.
#define STRINGIFY(s)
Definition common.h:134
#define ALWAYS_INLINE
Definition common.h:129
static k_spinlock_key_t key
Definition spinlock_error_case.c:15