11#ifndef ZEPHYR_INCLUDE_ARCH_ARM_AARCH32_ASM_INLINE_GCC_H_
12#define ZEPHYR_INCLUDE_ARCH_ARM_AARCH32_ASM_INLINE_GCC_H_
24#if defined(CONFIG_CPU_AARCH32_CORTEX_R) || defined(CONFIG_CPU_AARCH32_CORTEX_A)
46#if defined(CONFIG_ARMV6_M_ARMV8_M_BASELINE)
47 __asm__
volatile(
"mrs %0, PRIMASK;"
52#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
58 "msr BASEPRI_MAX, %1;"
60 :
"=r"(
key),
"=r"(tmp)
61 :
"i"(_EXC_IRQ_DEFAULT_PRIO)
63#elif defined(CONFIG_ARMV7_R) || defined(CONFIG_AARCH32_ARMV8_R) \
64 || defined(CONFIG_ARMV7_A)
73#error Unknown ARM architecture
86#if defined(CONFIG_ARMV6_M_ARMV8_M_BASELINE)
94#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
98 : :
"r"(
key) :
"memory");
99#elif defined(CONFIG_ARMV7_R) || defined(CONFIG_AARCH32_ARMV8_R) \
100 || defined(CONFIG_ARMV7_A)
106 : : :
"memory",
"cc");
108#error Unknown ARM architecture
#define TOSTR(s)
Definition: irq.h:80
static ALWAYS_INLINE unsigned int arch_irq_lock(void)
Definition: asm_inline_gcc.h:42
static ALWAYS_INLINE void arch_irq_unlock(unsigned int key)
Definition: asm_inline_gcc.h:84
static ALWAYS_INLINE bool arch_irq_unlocked(unsigned int key)
Definition: asm_inline_gcc.h:112
ARM AArch32 public exception handling.
#define ALWAYS_INLINE
Definition: common.h:124
#define I_BIT
Definition: cpu.h:30
static k_spinlock_key_t key
Definition: spinlock_error_case.c:15