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) && !defined(CONFIG_ARMV8_M_BASELINE)
47#if CONFIG_MP_MAX_NUM_CPUS == 1
48 __asm__
volatile(
"mrs %0, PRIMASK;"
54#error "Cortex-M0 and Cortex-M0+ require SoC specific support for cross core synchronisation."
56#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE) || defined(CONFIG_ARMV8_M_BASELINE)
62 "msr BASEPRI_MAX, %1;"
65#
if defined(CONFIG_ARMV8_M_BASELINE)
73 :
"i"(_EXC_IRQ_DEFAULT_PRIO)
75#elif defined(CONFIG_ARMV7_R) || defined(CONFIG_AARCH32_ARMV8_R) \
76 || defined(CONFIG_ARMV7_A)
85#error Unknown ARM architecture
98#if defined(CONFIG_ARMV6_M_ARMV8_M_BASELINE) && !defined(CONFIG_ARMV8_M_BASELINE)
106#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE) || defined(CONFIG_ARMV8_M_BASELINE)
110 : :
"r"(key) :
"memory");
111#elif defined(CONFIG_ARMV7_R) || defined(CONFIG_AARCH32_ARMV8_R) \
112 || defined(CONFIG_ARMV7_A)
118 : : :
"memory",
"cc");
120#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:96
static ALWAYS_INLINE bool arch_irq_unlocked(unsigned int key)
Definition: asm_inline_gcc.h:124
ARM AArch32 public exception handling.
#define ALWAYS_INLINE
Definition: common.h:129
#define I_BIT
Definition: cpu.h:30