Lines Matching refs:thread

50 static bool is_user(struct k_thread *thread)  in is_user()  argument
52 return (thread->base.user_options & K_USER) != 0; in is_user()
57 static void setup_stack_vars(struct k_thread *thread) in setup_stack_vars() argument
60 if (is_user(thread)) { in setup_stack_vars()
62 thread->arch.priv_stack_start = in setup_stack_vars()
63 (uint32_t)z_priv_stack_find(thread->stack_obj); in setup_stack_vars()
65 thread->arch.priv_stack_start = (uint32_t)(thread->stack_obj); in setup_stack_vars()
67 thread->arch.priv_stack_start += Z_ARC_STACK_GUARD_SIZE; in setup_stack_vars()
69 thread->arch.priv_stack_start = 0; in setup_stack_vars()
75 if (is_user(thread)) { in setup_stack_vars()
76 thread->arch.k_stack_top = thread->arch.priv_stack_start; in setup_stack_vars()
77 thread->arch.k_stack_base = (thread->arch.priv_stack_start + in setup_stack_vars()
79 thread->arch.u_stack_top = thread->stack_info.start; in setup_stack_vars()
80 thread->arch.u_stack_base = (thread->stack_info.start + in setup_stack_vars()
81 thread->stack_info.size); in setup_stack_vars()
85 thread->arch.k_stack_top = (uint32_t)thread->stack_info.start; in setup_stack_vars()
86 thread->arch.k_stack_base = (uint32_t)(thread->stack_info.start + in setup_stack_vars()
87 thread->stack_info.size); in setup_stack_vars()
89 thread->arch.u_stack_top = 0; in setup_stack_vars()
90 thread->arch.u_stack_base = 0; in setup_stack_vars()
97 static struct init_stack_frame *get_iframe(struct k_thread *thread, in get_iframe() argument
101 if (is_user(thread)) { in get_iframe()
110 thread->arch.priv_stack_start + in get_iframe()
125 static inline void arch_setup_callee_saved_regs(struct k_thread *thread, in arch_setup_callee_saved_regs() argument
136 #error Compiler not configured for thread local storage in arch_setup_callee_saved_regs()
140 regs->TLSREG = thread->tls; in arch_setup_callee_saved_regs()
143 regs->r30 = thread->tls; in arch_setup_callee_saved_regs()
153 void arch_new_thread(struct k_thread *thread, k_thread_stack_t *stack, in arch_new_thread() argument
159 setup_stack_vars(thread); in arch_new_thread()
162 iframe = get_iframe(thread, stack_ptr); in arch_new_thread()
172 if (is_user(thread)) { in arch_new_thread()
200 thread->switch_handle = thread; in arch_new_thread()
201 thread->arch.relinquish_cause = _CAUSE_COOP; in arch_new_thread()
202 thread->callee_saved.sp = in arch_new_thread()
205 arch_setup_callee_saved_regs(thread, thread->callee_saved.sp); in arch_new_thread()
245 int arch_float_disable(struct k_thread *thread) in arch_float_disable() argument
254 thread->base.user_options &= ~K_FP_REGS; in arch_float_disable()
262 int arch_float_enable(struct k_thread *thread, unsigned int options) in arch_float_enable() argument
271 thread->base.user_options |= K_FP_REGS; in arch_float_enable()
279 int arch_coprocessors_disable(struct k_thread *thread) in arch_coprocessors_disable() argument
282 return arch_float_disable(thread); in arch_coprocessors_disable()
315 void arc_dsp_disable(struct k_thread *thread, unsigned int options) in arc_dsp_disable() argument
321 thread->base.user_options &= ~(uint8_t)options; in arc_dsp_disable()
326 void arc_dsp_enable(struct k_thread *thread, unsigned int options) in arc_dsp_enable() argument
332 thread->base.user_options |= (uint8_t)options; in arc_dsp_enable()