Lines Matching refs:thread

10 #include <arch/thread.h>
14 #include <thread.h>
44 arch_thread_init_thread_struct(Thread *thread)
51 arch_thread_init_kthread_stack(Thread* thread, void* _stack, void* _stackTop,
54 memset(&thread->arch_info.context, 0, sizeof(arch_context));
55 thread->arch_info.context.sp = (addr_t)_stackTop;
56 thread->arch_info.context.s[0] = 0; // fp
57 thread->arch_info.context.s[1] = (addr_t)function;
58 thread->arch_info.context.s[2] = (addr_t)data;
59 thread->arch_info.context.ra = (addr_t)arch_thread_entry;
61 memset(&thread->arch_info.fpuContext, 0, sizeof(fpu_context));
66 arch_thread_init_tls(Thread *thread)
68 thread->user_local_storage =
69 thread->user_stack_base + thread->user_stack_size;
107 arch_thread_enter_userspace(Thread *thread, addr_t entry, void *arg1,
110 //dprintf("arch_thread_enter_uspace(%" B_PRId32 "(%s))\n", thread->id, thread->name);
112 addr_t commpageAdr = (addr_t)thread->team->commpage_address;
121 arch_stack* stackHeader = (arch_stack*)thread->kernel_stack_top - 1;
122 stackHeader->thread = thread;
136 frame.sp = thread->user_stack_base + thread->user_stack_size;
137 frame.tp = thread->user_local_storage;
147 arch_on_signal_stack(Thread *thread)
149 struct iframe* frame = thread->arch_info.userFrame;
155 return frame->sp >= thread->signal_stack_base
156 && frame->sp < thread->signal_stack_base
157 + thread->signal_stack_size;
162 get_signal_stack(Thread* thread, struct iframe* frame,
167 thread->signal_stack_enabled &&
169 frame->sp < thread->signal_stack_base ||
170 frame->sp >= thread->signal_stack_base + thread->signal_stack_size
173 addr_t stackTop = thread->signal_stack_base
174 + thread->signal_stack_size;
182 arch_setup_signal_frame(Thread *thread, struct sigaction *sa,
185 // dprintf("%s(%" B_PRId32 "(%s))\n", __func__, thread->id, thread->name);
186 iframe* frame = thread->arch_info.userFrame;
227 dprintf(" thread->signal_stack_enabled: %d\n",
228 thread->signal_stack_enabled);
229 if (thread->signal_stack_enabled) {
231 thread->signal_stack_base,
232 thread->signal_stack_base + thread->signal_stack_size
236 signalFrameData->syscall_restart_return_value = thread->arch_info.oldA0;
238 uint8* userStack = get_signal_stack(thread, frame, sa,
246 addr_t commpageAdr = (addr_t)thread->team->commpage_address;
335 * arch_thread_enter_uspace() as thread "starter".
344 //dprintf(" thread: %" B_PRId32 "(%s))\n", thread_get_current_thread()->id,
352 stackHeader->thread = thread_get_current_thread();