From 54506b5a9bf4bb3851b460fec489c049b9c5f8ee Mon Sep 17 00:00:00 2001 From: Andrew Boie Date: Thu, 3 Oct 2019 14:32:22 -0700 Subject: [PATCH] arches: fix z_arch_is_in_isr() defintion For some reason these were implemented as macros when they should be inline functions. Signed-off-by: Andrew Boie --- arch/arc/include/kernel_arch_func.h | 5 ++++- arch/nios2/include/kernel_arch_func.h | 5 ++++- arch/posix/include/kernel_arch_func.h | 5 ++++- arch/riscv/include/kernel_arch_func.h | 5 ++++- arch/x86/include/kernel_arch_func.h | 14 ++++++++------ arch/xtensa/include/kernel_arch_func.h | 6 ++++-- 6 files changed, 28 insertions(+), 12 deletions(-) diff --git a/arch/arc/include/kernel_arch_func.h b/arch/arc/include/kernel_arch_func.h index 206a14e908b..79c2f8fcb65 100644 --- a/arch/arc/include/kernel_arch_func.h +++ b/arch/arc/include/kernel_arch_func.h @@ -66,7 +66,10 @@ static ALWAYS_INLINE int Z_INTERRUPT_CAUSE(void) return irq_num; } -#define z_arch_is_in_isr z_arc_v2_irq_unit_is_in_isr +static inline bool z_arch_is_in_isr(void) +{ + return z_arc_v2_irq_unit_is_in_isr(); +} extern void z_thread_entry_wrapper(void); extern void z_user_thread_entry_wrapper(void); diff --git a/arch/nios2/include/kernel_arch_func.h b/arch/nios2/include/kernel_arch_func.h index 7580d07c46c..6ff1b38c17f 100644 --- a/arch/nios2/include/kernel_arch_func.h +++ b/arch/nios2/include/kernel_arch_func.h @@ -41,7 +41,10 @@ z_arch_thread_return_value_set(struct k_thread *thread, unsigned int value) FUNC_NORETURN void z_nios2_fatal_error(unsigned int reason, const z_arch_esf_t *esf); -#define z_arch_is_in_isr() (_kernel.nested != 0U) +static inline bool z_arch_is_in_isr(void) +{ + return _kernel.nested != 0U; +} #ifdef CONFIG_IRQ_OFFLOAD void z_irq_do_offload(void); diff --git a/arch/posix/include/kernel_arch_func.h b/arch/posix/include/kernel_arch_func.h index b405d9b30b0..555339411d9 100644 --- a/arch/posix/include/kernel_arch_func.h +++ b/arch/posix/include/kernel_arch_func.h @@ -53,7 +53,10 @@ z_arch_thread_return_value_set(struct k_thread *thread, unsigned int value) } #endif -#define z_arch_is_in_isr() (_kernel.nested != 0U) +static inline bool z_arch_is_in_isr(void) +{ + return _kernel.nested != 0U; +} #endif /* _ASMLANGUAGE */ diff --git a/arch/riscv/include/kernel_arch_func.h b/arch/riscv/include/kernel_arch_func.h index e388b88d904..dfaa1cb3f3a 100644 --- a/arch/riscv/include/kernel_arch_func.h +++ b/arch/riscv/include/kernel_arch_func.h @@ -37,7 +37,10 @@ z_arch_thread_return_value_set(struct k_thread *thread, unsigned int value) FUNC_NORETURN void z_riscv_fatal_error(unsigned int reason, const z_arch_esf_t *esf); -#define z_arch_is_in_isr() (_kernel.nested != 0U) +static inline bool z_arch_is_in_isr(void) +{ + return _kernel.nested != 0U; +} #ifdef CONFIG_IRQ_OFFLOAD int z_irq_do_offload(void); diff --git a/arch/x86/include/kernel_arch_func.h b/arch/x86/include/kernel_arch_func.h index b3f2adeeb22..b425fa97862 100644 --- a/arch/x86/include/kernel_arch_func.h +++ b/arch/x86/include/kernel_arch_func.h @@ -12,13 +12,15 @@ #include #endif -#ifdef CONFIG_SMP -#define z_arch_is_in_isr() (z_arch_curr_cpu()->nested != 0U) -#else -#define z_arch_is_in_isr() (_kernel.nested != 0U) -#endif - #ifndef _ASMLANGUAGE +static inline bool z_arch_is_in_isr(void) +{ +#ifdef CONFIG_SMP + return z_arch_curr_cpu()->nested != 0; +#else + return _kernel.nested != 0U; +#endif +} extern K_THREAD_STACK_DEFINE(_interrupt_stack, CONFIG_ISR_STACK_SIZE); extern K_THREAD_STACK_DEFINE(_interrupt_stack1, CONFIG_ISR_STACK_SIZE); diff --git a/arch/xtensa/include/kernel_arch_func.h b/arch/xtensa/include/kernel_arch_func.h index b5315b59a14..6c2e83d2810 100644 --- a/arch/xtensa/include/kernel_arch_func.h +++ b/arch/xtensa/include/kernel_arch_func.h @@ -87,8 +87,10 @@ static ALWAYS_INLINE void z_arch_kernel_init(void) } #endif -#define z_arch_is_in_isr() (z_arch_curr_cpu()->nested != 0U) - +static inline bool z_arch_is_in_isr(void) +{ + return z_arch_curr_cpu()->nested != 0U; +} #endif /* _ASMLANGUAGE */ #endif /* ZEPHYR_ARCH_XTENSA_INCLUDE_KERNEL_ARCH_FUNC_H_ */