11#ifndef ZEPHYR_INCLUDE_ARCH_ARM_AARCH32_ASM_INLINE_GCC_H_
12#define ZEPHYR_INCLUDE_ARCH_ARM_AARCH32_ASM_INLINE_GCC_H_
25#if defined(CONFIG_CPU_CORTEX_R)
47#if defined(CONFIG_ARMV6_M_ARMV8_M_BASELINE)
48 __asm__
volatile(
"mrs %0, PRIMASK;"
53#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
59 "msr BASEPRI_MAX, %1;"
61 :
"=r"(
key),
"=r"(tmp)
62 :
"i"(_EXC_IRQ_DEFAULT_PRIO)
64#elif defined(CONFIG_ARMV7_R)
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)
105 : : :
"memory",
"cc");
107#error Unknown ARM architecture
#define TOSTR(s)
Definition: irq.h:81
static ALWAYS_INLINE unsigned int arch_irq_lock(void)
Definition: asm_inline_gcc.h:43
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:111
ARM AArch32 public exception handling.
#define ALWAYS_INLINE
Definition: common.h:116
#define I_BIT
Definition: cpu.h:29
Public interface for configuring interrupts.
static k_spinlock_key_t key
Definition: spinlock_error_case.c:14