Lines Matching full:thread

25 #include <kernel/thread.h>
151 static void init_regs(struct thread_ctx *thread, uint32_t a0, uint32_t a1, in init_regs() argument
155 thread->regs.pc = (uint32_t)pc; in init_regs()
161 thread->regs.cpsr = read_cpsr() & ARM32_CPSR_E; in init_regs()
162 thread->regs.cpsr |= CPSR_MODE_SVC | CPSR_A | in init_regs()
165 if (thread->regs.pc & 1) in init_regs()
166 thread->regs.cpsr |= CPSR_T; in init_regs()
168 thread->regs.svc_sp = thread->stack_va_end; in init_regs()
172 * arguments appear in r0-r7 when thread is started. in init_regs()
174 thread->regs.r0 = a0; in init_regs()
175 thread->regs.r1 = a1; in init_regs()
176 thread->regs.r2 = a2; in init_regs()
177 thread->regs.r3 = a3; in init_regs()
178 thread->regs.r4 = a4; in init_regs()
179 thread->regs.r5 = a5; in init_regs()
180 thread->regs.r6 = a6; in init_regs()
181 thread->regs.r7 = a7; in init_regs()
186 static void init_regs(struct thread_ctx *thread, uint32_t a0, uint32_t a1, in init_regs() argument
190 thread->regs.pc = (uint64_t)pc; in init_regs()
196 thread->regs.cpsr = SPSR_64(SPSR_64_MODE_EL1, SPSR_64_MODE_SP_EL0, in init_regs()
199 thread->regs.sp = thread->stack_va_end; in init_regs()
203 * arguments appear in x0-x7 when thread is started. in init_regs()
205 thread->regs.x[0] = a0; in init_regs()
206 thread->regs.x[1] = a1; in init_regs()
207 thread->regs.x[2] = a2; in init_regs()
208 thread->regs.x[3] = a3; in init_regs()
209 thread->regs.x[4] = a4; in init_regs()
210 thread->regs.x[5] = a5; in init_regs()
211 thread->regs.x[6] = a6; in init_regs()
212 thread->regs.x[7] = a7; in init_regs()
215 thread->regs.x[29] = 0; in init_regs()
288 * r0-r3 when thread is resumed. in copy_a0_to_a3()
303 * x0-x3 when thread is resumed. in copy_a0_to_a3()
795 * thread was using the VFP state. in thread_kernel_enable_vfp()
1027 * We're using the per thread location of saved context registers in thread_enter_user_mode()