Zephyr Project API 4.1.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
arch.h File Reference

Go to the source code of this file.

Macros

#define ARCH_STACK_PTR_ALIGN   4
 
#define REG(addr)   *((uint8_t *)(addr))
 
#define ARCH_IRQ_CONNECT(irq_p, priority_p, isr_p, isr_param_p, flags_p)
 
#define ARCH_ISR_DIRECT_HEADER()
 
#define ARCH_ISR_DIRECT_FOOTER(check_reschedule)
 

Functions

static ALWAYS_INLINE unsigned int arch_irq_lock (void)
 
static void arch_irq_unlock (unsigned int key)
 
static bool arch_irq_unlocked (unsigned int key)
 
static ALWAYS_INLINE _cpu_t * arch_curr_cpu (void)
 

Macro Definition Documentation

◆ ARCH_IRQ_CONNECT

#define ARCH_IRQ_CONNECT (   irq_p,
  priority_p,
  isr_p,
  isr_param_p,
  flags_p 
)
Value:
{ \
Z_ISR_DECLARE(irq_p, 0, isr_p, isr_param_p); \
z_irq_priority_set(irq_p, priority_p, flags_p); \
}

◆ ARCH_ISR_DIRECT_FOOTER

#define ARCH_ISR_DIRECT_FOOTER (   check_reschedule)
Value:
{ \
if (IS_ENABLED(CONFIG_STACK_SENTINEL)) { \
z_check_stack_sentinel(); \
} \
irq_lock(); \
if (check_reschedule && _kernel.cpus[0].nested == 1) { \
if (_kernel.cpus->current->base.prio >= 0 || \
CONFIG_NUM_METAIRQ_PRIORITIES > 0) { \
if (_kernel.ready_q.cache != _kernel.cpus->current) { \
z_rx_irq_exit(); \
} \
} \
} \
_kernel.cpus[0].nested--; \
}
#define IS_ENABLED(config_macro)
Check for macro definition in compiler-visible expressions.
Definition util_macro.h:148

◆ ARCH_ISR_DIRECT_HEADER

#define ARCH_ISR_DIRECT_HEADER ( )
Value:
{ \
_kernel.cpus[0].nested++; \
}

◆ ARCH_STACK_PTR_ALIGN

#define ARCH_STACK_PTR_ALIGN   4

◆ REG

#define REG (   addr)    *((uint8_t *)(addr))

Function Documentation

◆ arch_curr_cpu()

static ALWAYS_INLINE _cpu_t * arch_curr_cpu ( void  )
static

◆ arch_irq_lock()

static ALWAYS_INLINE unsigned int arch_irq_lock ( void  )
static

◆ arch_irq_unlock()

static void arch_irq_unlock ( unsigned int  key)
inlinestatic

◆ arch_irq_unlocked()

static bool arch_irq_unlocked ( unsigned int  key)
inlinestatic