16#ifndef ZEPHYR_INCLUDE_ARCH_RX_ARCH_H_
17#define ZEPHYR_INCLUDE_ARCH_RX_ARCH_H_
36#define ARCH_STACK_PTR_ALIGN 4
44#define REG(addr) *((uint8_t *)(addr))
47void z_irq_spurious(
const void *unused);
59#define ARCH_IRQ_CONNECT(irq_p, priority_p, isr_p, isr_param_p, flags_p) \
61 Z_ISR_DECLARE(irq_p, 0, isr_p, isr_param_p); \
62 z_irq_priority_set(irq_p, priority_p, flags_p); \
59#define ARCH_IRQ_CONNECT(irq_p, priority_p, isr_p, isr_param_p, flags_p) \ …
66#define ARCH_ISR_DIRECT_HEADER() \
68 _kernel.cpus[0].nested++; \
69 sys_trace_isr_enter(); \
72#define ARCH_ISR_DIRECT_HEADER() \
74 _kernel.cpus[0].nested++; \
72#define ARCH_ISR_DIRECT_HEADER() \ …
79#define ARCH_ISR_DIRECT_FOOTER(check_reschedule) \
81 if (IS_ENABLED(CONFIG_STACK_SENTINEL)) { \
82 z_check_stack_sentinel(); \
84 sys_trace_isr_exit(); \
86 if (check_reschedule && _kernel.cpus[0].nested == 1) { \
87 if (_kernel.cpus->current->base.prio >= 0 || \
88 CONFIG_NUM_METAIRQ_PRIORITIES > 0) { \
89 if (_kernel.ready_q.cache != _kernel.cpus->current) { \
94 _kernel.cpus[0].nested--; \
97#define ARCH_ISR_DIRECT_FOOTER(check_reschedule) \
99 if (IS_ENABLED(CONFIG_STACK_SENTINEL)) { \
100 z_check_stack_sentinel(); \
103 if (check_reschedule && _kernel.cpus[0].nested == 1) { \
104 if (_kernel.cpus->current->base.prio >= 0 || \
105 CONFIG_NUM_METAIRQ_PRIORITIES > 0) { \
106 if (_kernel.ready_q.cache != _kernel.cpus->current) { \
111 _kernel.cpus[0].nested--; \
97#define ARCH_ISR_DIRECT_FOOTER(check_reschedule) \ …
119 __asm__
volatile(
"MVFC psw, %0\n"
129 return key &
BIT(16);
136 __asm__
volatile(
"SETPSW i" :::
"cc");
147 return &_kernel.cpus[0];
#define BIT(n)
Unsigned integer with bit position n set (signed in assembly language).
Definition util_macro.h:44
Renesas RX arch public error handling.
Public interface for configuring interrupts.
static ALWAYS_INLINE unsigned int arch_irq_lock(void)
Definition arch.h:72
static ALWAYS_INLINE void arch_irq_unlock(unsigned int key)
Definition arch.h:83
static ALWAYS_INLINE bool arch_irq_unlocked(unsigned int key)
Definition arch.h:96
flags
Definition parser.h:97
static ALWAYS_INLINE _cpu_t * arch_curr_cpu(void)
Definition arch.h:145
Renesas RX public kernel miscellaneous.
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
Software-managed ISR table.