8#ifndef ZEPHYR_INCLUDE_ARCH_XTENSA_ARCH_INLINES_H_
9#define ZEPHYR_INCLUDE_ARCH_XTENSA_ARCH_INLINES_H_
14#include <zephyr/zsr.h>
23#define XTENSA_RSR(sr) \
25 __asm__ volatile ("rsr." sr " %0" : "=a"(v)); \
34#define XTENSA_WSR(sr, v) \
36 __asm__ volatile ("wsr." sr " %0" : : "r"(v)); \
46#define XTENSA_RUR(ur) \
48 __asm__ volatile ("rur." ur " %0" : "=a"(v)); \
57#define XTENSA_WUR(ur, v) \
59 __asm__ volatile ("wur." ur " %0" : : "r"(v)); \
77 __asm__
volatile(
"rsr %0, PRID" :
"=r"(prid));
81#ifdef CONFIG_SOC_HAS_RUNTIME_NUM_CPUS
82extern unsigned int soc_num_cpus;
88#ifdef CONFIG_SOC_HAS_RUNTIME_NUM_CPUS
91 return CONFIG_MP_MAX_NUM_CPUS;
static ALWAYS_INLINE _cpu_t * arch_curr_cpu(void)
Definition: arch_inlines.h:17
static ALWAYS_INLINE uint32_t arch_proc_id(void)
Definition: arch_inlines.h:30
static ALWAYS_INLINE unsigned int arch_num_cpus(void)
Definition: arch_inlines.h:39
#define ALWAYS_INLINE
Definition: common.h:129
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
#define XTENSA_RSR(sr)
Read a special register.
Definition: arch_inlines.h:23