mirror of
https://github.com/Dasharo/zephyr.git
synced 2026-03-06 14:57:20 -08:00
kernel: demote K_THREAD_STACK_BUFFER() to private
This macro is slated for complete removal, as it's not possible on arches with an MPU stack guard to know the true buffer bounds without also knowing the runtime state of its associated thread. As removing this completely would be invasive to where we are in the 1.14 release, demote to a private kernel Z_ API instead. The current way that the macro is being used internally will not cause any undue harm, we just don't want any external code depending on it. The final work to remove this (and overhaul stack specification in general) will take place in 1.15 in the context of #14269 Fixes: #14766 Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
This commit is contained in:
@@ -67,7 +67,7 @@ void z_new_thread(struct k_thread *thread, k_thread_stack_t *stack,
|
||||
void *parameter1, void *parameter2, void *parameter3,
|
||||
int priority, unsigned int options)
|
||||
{
|
||||
char *pStackMem = K_THREAD_STACK_BUFFER(stack);
|
||||
char *pStackMem = Z_THREAD_STACK_BUFFER(stack);
|
||||
Z_ASSERT_VALID_PRIO(priority, pEntry);
|
||||
|
||||
char *stackEnd;
|
||||
|
||||
@@ -55,7 +55,7 @@ static ALWAYS_INLINE void z_irq_setup(void)
|
||||
z_arc_v2_aux_reg_write(_ARC_V2_AUX_IRQ_CTRL, aux_irq_ctrl_value);
|
||||
|
||||
_kernel.irq_stack =
|
||||
K_THREAD_STACK_BUFFER(_interrupt_stack) + CONFIG_ISR_STACK_SIZE;
|
||||
Z_THREAD_STACK_BUFFER(_interrupt_stack) + CONFIG_ISR_STACK_SIZE;
|
||||
}
|
||||
|
||||
#endif /* _ASMLANGUAGE */
|
||||
|
||||
@@ -55,7 +55,7 @@ void z_new_thread(struct k_thread *thread, k_thread_stack_t *stack,
|
||||
void *parameter1, void *parameter2, void *parameter3,
|
||||
int priority, unsigned int options)
|
||||
{
|
||||
char *pStackMem = K_THREAD_STACK_BUFFER(stack);
|
||||
char *pStackMem = Z_THREAD_STACK_BUFFER(stack);
|
||||
char *stackEnd;
|
||||
/* Offset between the top of stack and the high end of stack area. */
|
||||
u32_t top_of_stack_offset = 0U;
|
||||
|
||||
@@ -41,10 +41,10 @@ static ALWAYS_INLINE void z_InterruptStackSetup(void)
|
||||
{
|
||||
#if defined(CONFIG_MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT) && \
|
||||
defined(CONFIG_USERSPACE)
|
||||
u32_t msp = (u32_t)(K_THREAD_STACK_BUFFER(_interrupt_stack) +
|
||||
u32_t msp = (u32_t)(Z_THREAD_STACK_BUFFER(_interrupt_stack) +
|
||||
CONFIG_ISR_STACK_SIZE - MPU_GUARD_ALIGN_AND_SIZE);
|
||||
#else
|
||||
u32_t msp = (u32_t)(K_THREAD_STACK_BUFFER(_interrupt_stack) +
|
||||
u32_t msp = (u32_t)(Z_THREAD_STACK_BUFFER(_interrupt_stack) +
|
||||
CONFIG_ISR_STACK_SIZE);
|
||||
#endif
|
||||
|
||||
|
||||
@@ -63,11 +63,11 @@ z_arch_switch_to_main_thread(struct k_thread *main_thread,
|
||||
#if defined(CONFIG_MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT) && \
|
||||
defined(CONFIG_USERSPACE)
|
||||
start_of_main_stack =
|
||||
K_THREAD_STACK_BUFFER(main_stack) + main_stack_size -
|
||||
Z_THREAD_STACK_BUFFER(main_stack) + main_stack_size -
|
||||
MPU_GUARD_ALIGN_AND_SIZE;
|
||||
#else
|
||||
start_of_main_stack =
|
||||
K_THREAD_STACK_BUFFER(main_stack) + main_stack_size;
|
||||
Z_THREAD_STACK_BUFFER(main_stack) + main_stack_size;
|
||||
#endif
|
||||
start_of_main_stack = (void *)STACK_ROUND_DOWN(start_of_main_stack);
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ void z_new_thread(struct k_thread *thread, k_thread_stack_t *stack,
|
||||
void *arg1, void *arg2, void *arg3,
|
||||
int priority, unsigned int options)
|
||||
{
|
||||
char *stack_memory = K_THREAD_STACK_BUFFER(stack);
|
||||
char *stack_memory = Z_THREAD_STACK_BUFFER(stack);
|
||||
Z_ASSERT_VALID_PRIO(priority, thread_func);
|
||||
|
||||
struct init_stack_frame *iframe;
|
||||
|
||||
@@ -32,7 +32,7 @@ void k_cpu_atomic_idle(unsigned int key);
|
||||
static ALWAYS_INLINE void kernel_arch_init(void)
|
||||
{
|
||||
_kernel.irq_stack =
|
||||
K_THREAD_STACK_BUFFER(_interrupt_stack) + CONFIG_ISR_STACK_SIZE;
|
||||
Z_THREAD_STACK_BUFFER(_interrupt_stack) + CONFIG_ISR_STACK_SIZE;
|
||||
}
|
||||
|
||||
static ALWAYS_INLINE void
|
||||
|
||||
@@ -51,7 +51,7 @@ void z_new_thread(struct k_thread *thread, k_thread_stack_t *stack,
|
||||
int priority, unsigned int options)
|
||||
{
|
||||
|
||||
char *stack_memory = K_THREAD_STACK_BUFFER(stack);
|
||||
char *stack_memory = Z_THREAD_STACK_BUFFER(stack);
|
||||
|
||||
Z_ASSERT_VALID_PRIO(priority, thread_func);
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ void z_new_thread(struct k_thread *thread, k_thread_stack_t *stack,
|
||||
void *arg1, void *arg2, void *arg3,
|
||||
int priority, unsigned int options)
|
||||
{
|
||||
char *stack_memory = K_THREAD_STACK_BUFFER(stack);
|
||||
char *stack_memory = Z_THREAD_STACK_BUFFER(stack);
|
||||
Z_ASSERT_VALID_PRIO(priority, thread_func);
|
||||
|
||||
struct __esf *stack_init;
|
||||
|
||||
@@ -28,7 +28,7 @@ void k_cpu_atomic_idle(unsigned int key);
|
||||
static ALWAYS_INLINE void kernel_arch_init(void)
|
||||
{
|
||||
_kernel.irq_stack =
|
||||
K_THREAD_STACK_BUFFER(_interrupt_stack) + CONFIG_ISR_STACK_SIZE;
|
||||
Z_THREAD_STACK_BUFFER(_interrupt_stack) + CONFIG_ISR_STACK_SIZE;
|
||||
}
|
||||
|
||||
static ALWAYS_INLINE void
|
||||
|
||||
@@ -68,7 +68,7 @@ void z_new_thread(struct k_thread *thread, k_thread_stack_t *stack,
|
||||
struct _x86_initial_frame *initial_frame;
|
||||
|
||||
Z_ASSERT_VALID_PRIO(priority, entry);
|
||||
stack_buf = K_THREAD_STACK_BUFFER(stack);
|
||||
stack_buf = Z_THREAD_STACK_BUFFER(stack);
|
||||
z_new_thread_init(thread, stack_buf, stack_size, priority, options);
|
||||
|
||||
#if CONFIG_X86_USERSPACE
|
||||
|
||||
@@ -36,7 +36,7 @@ extern K_THREAD_STACK_DEFINE(_interrupt_stack, CONFIG_ISR_STACK_SIZE);
|
||||
static inline void kernel_arch_init(void)
|
||||
{
|
||||
_kernel.nested = 0;
|
||||
_kernel.irq_stack = K_THREAD_STACK_BUFFER(_interrupt_stack) +
|
||||
_kernel.irq_stack = Z_THREAD_STACK_BUFFER(_interrupt_stack) +
|
||||
CONFIG_ISR_STACK_SIZE;
|
||||
#if CONFIG_X86_STACK_PROTECTION
|
||||
z_x86_mmu_set_flags(&z_x86_kernel_pdpt, _interrupt_stack, MMU_PAGE_SIZE,
|
||||
|
||||
@@ -29,7 +29,7 @@ void z_new_thread(struct k_thread *t, k_thread_stack_t *stack,
|
||||
void *args[] = { entry, p1, p2, p3 };
|
||||
int nargs = 4;
|
||||
int eflags = 0x200;
|
||||
char *base = K_THREAD_STACK_BUFFER(stack);
|
||||
char *base = Z_THREAD_STACK_BUFFER(stack);
|
||||
char *top = base + sz;
|
||||
|
||||
z_new_thread_init(t, base, sz, prio, opts);
|
||||
|
||||
@@ -48,7 +48,7 @@ void z_new_thread(struct k_thread *thread, k_thread_stack_t *stack,
|
||||
void *p1, void *p2, void *p3,
|
||||
int priority, unsigned int options)
|
||||
{
|
||||
char *pStack = K_THREAD_STACK_BUFFER(stack);
|
||||
char *pStack = Z_THREAD_STACK_BUFFER(stack);
|
||||
|
||||
/* Align stack end to maximum alignment requirement. */
|
||||
char *stackEnd = (char *)ROUND_DOWN(pStack + stackSize, 16);
|
||||
|
||||
@@ -63,7 +63,7 @@ void z_new_thread(struct k_thread *thread, k_thread_stack_t *stack, size_t sz,
|
||||
k_thread_entry_t entry, void *p1, void *p2, void *p3,
|
||||
int prio, unsigned int opts)
|
||||
{
|
||||
char *base = K_THREAD_STACK_BUFFER(stack);
|
||||
char *base = Z_THREAD_STACK_BUFFER(stack);
|
||||
char *top = base + sz;
|
||||
|
||||
/* Align downward. The API as specified requires a runtime check. */
|
||||
|
||||
@@ -70,7 +70,7 @@ static ALWAYS_INLINE void kernel_arch_init(void)
|
||||
cpu0->nested = 0;
|
||||
|
||||
#if CONFIG_XTENSA_ASM2
|
||||
cpu0->irq_stack = (K_THREAD_STACK_BUFFER(_interrupt_stack) +
|
||||
cpu0->irq_stack = (Z_THREAD_STACK_BUFFER(_interrupt_stack) +
|
||||
CONFIG_ISR_STACK_SIZE);
|
||||
|
||||
/* The asm2 scheme keeps the kernel pointer in MISC0 for easy
|
||||
@@ -90,7 +90,7 @@ static ALWAYS_INLINE void kernel_arch_init(void)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_INIT_STACKS
|
||||
memset(K_THREAD_STACK_BUFFER(_interrupt_stack), 0xAA,
|
||||
memset(Z_THREAD_STACK_BUFFER(_interrupt_stack), 0xAA,
|
||||
CONFIG_ISR_STACK_SIZE);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -502,7 +502,7 @@ static void cc1200_rx(struct device *dev)
|
||||
}
|
||||
|
||||
net_analyze_stack("CC1200 Rx Fiber stack",
|
||||
K_THREAD_STACK_BUFFER(cc1200->rx_stack),
|
||||
Z_THREAD_STACK_BUFFER(cc1200->rx_stack),
|
||||
K_THREAD_STACK_SIZEOF(cc1200->rx_stack));
|
||||
continue;
|
||||
flush:
|
||||
|
||||
@@ -671,7 +671,7 @@ static void cc2520_rx(int arg)
|
||||
}
|
||||
|
||||
net_analyze_stack("CC2520 Rx Fiber stack",
|
||||
K_THREAD_STACK_BUFFER(cc2520->cc2520_rx_stack),
|
||||
Z_THREAD_STACK_BUFFER(cc2520->cc2520_rx_stack),
|
||||
K_THREAD_STACK_SIZEOF(cc2520->cc2520_rx_stack));
|
||||
continue;
|
||||
flush:
|
||||
|
||||
@@ -579,7 +579,7 @@ static inline void mcr20a_rx(struct mcr20a_context *mcr20a, u8_t len)
|
||||
}
|
||||
|
||||
net_analyze_stack("MCR20A Rx Fiber stack",
|
||||
K_THREAD_STACK_BUFFER(mcr20a->mcr20a_rx_stack),
|
||||
Z_THREAD_STACK_BUFFER(mcr20a->mcr20a_rx_stack),
|
||||
K_THREAD_STACK_SIZEOF(mcr20a->mcr20a_rx_stack));
|
||||
return;
|
||||
out:
|
||||
|
||||
@@ -121,7 +121,7 @@ static void nrf5_rx_thread(void *arg1, void *arg2, void *arg3)
|
||||
if (CONFIG_IEEE802154_DRIVER_LOG_LEVEL >= LOG_LEVEL_DBG) {
|
||||
net_analyze_stack(
|
||||
"nRF5 rx stack",
|
||||
K_THREAD_STACK_BUFFER(nrf5_radio->rx_stack),
|
||||
Z_THREAD_STACK_BUFFER(nrf5_radio->rx_stack),
|
||||
K_THREAD_STACK_SIZEOF(nrf5_radio->rx_stack));
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user