diff options
Diffstat (limited to 'src/core/hle/kernel/thread.cpp')
| -rw-r--r-- | src/core/hle/kernel/thread.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp index 8e514cf9a..33aed8c23 100644 --- a/src/core/hle/kernel/thread.cpp +++ b/src/core/hle/kernel/thread.cpp | |||
| @@ -194,7 +194,7 @@ static void ResetThreadContext(Core::ARM_Interface::ThreadContext& context, VAdd | |||
| 194 | 194 | ||
| 195 | ResultVal<SharedPtr<Thread>> Thread::Create(KernelCore& kernel, std::string name, VAddr entry_point, | 195 | ResultVal<SharedPtr<Thread>> Thread::Create(KernelCore& kernel, std::string name, VAddr entry_point, |
| 196 | u32 priority, u64 arg, s32 processor_id, | 196 | u32 priority, u64 arg, s32 processor_id, |
| 197 | VAddr stack_top, SharedPtr<Process> owner_process) { | 197 | VAddr stack_top, Process& owner_process) { |
| 198 | // Check if priority is in ranged. Lowest priority -> highest priority id. | 198 | // Check if priority is in ranged. Lowest priority -> highest priority id. |
| 199 | if (priority > THREADPRIO_LOWEST) { | 199 | if (priority > THREADPRIO_LOWEST) { |
| 200 | LOG_ERROR(Kernel_SVC, "Invalid thread priority: {}", priority); | 200 | LOG_ERROR(Kernel_SVC, "Invalid thread priority: {}", priority); |
| @@ -208,7 +208,7 @@ ResultVal<SharedPtr<Thread>> Thread::Create(KernelCore& kernel, std::string name | |||
| 208 | 208 | ||
| 209 | // TODO(yuriks): Other checks, returning 0xD9001BEA | 209 | // TODO(yuriks): Other checks, returning 0xD9001BEA |
| 210 | 210 | ||
| 211 | if (!Memory::IsValidVirtualAddress(*owner_process, entry_point)) { | 211 | if (!Memory::IsValidVirtualAddress(owner_process, entry_point)) { |
| 212 | LOG_ERROR(Kernel_SVC, "(name={}): invalid entry {:016X}", name, entry_point); | 212 | LOG_ERROR(Kernel_SVC, "(name={}): invalid entry {:016X}", name, entry_point); |
| 213 | // TODO (bunnei): Find the correct error code to use here | 213 | // TODO (bunnei): Find the correct error code to use here |
| 214 | return ResultCode(-1); | 214 | return ResultCode(-1); |
| @@ -232,7 +232,7 @@ ResultVal<SharedPtr<Thread>> Thread::Create(KernelCore& kernel, std::string name | |||
| 232 | thread->wait_handle = 0; | 232 | thread->wait_handle = 0; |
| 233 | thread->name = std::move(name); | 233 | thread->name = std::move(name); |
| 234 | thread->callback_handle = kernel.ThreadWakeupCallbackHandleTable().Create(thread).Unwrap(); | 234 | thread->callback_handle = kernel.ThreadWakeupCallbackHandleTable().Create(thread).Unwrap(); |
| 235 | thread->owner_process = owner_process; | 235 | thread->owner_process = &owner_process; |
| 236 | thread->scheduler = Core::System::GetInstance().Scheduler(processor_id).get(); | 236 | thread->scheduler = Core::System::GetInstance().Scheduler(processor_id).get(); |
| 237 | thread->scheduler->AddThread(thread, priority); | 237 | thread->scheduler->AddThread(thread, priority); |
| 238 | thread->tls_address = thread->owner_process->MarkNextAvailableTLSSlotAsUsed(*thread); | 238 | thread->tls_address = thread->owner_process->MarkNextAvailableTLSSlotAsUsed(*thread); |
| @@ -264,7 +264,7 @@ SharedPtr<Thread> SetupMainThread(KernelCore& kernel, VAddr entry_point, u32 pri | |||
| 264 | // Initialize new "main" thread | 264 | // Initialize new "main" thread |
| 265 | const VAddr stack_top = owner_process.VMManager().GetTLSIORegionEndAddress(); | 265 | const VAddr stack_top = owner_process.VMManager().GetTLSIORegionEndAddress(); |
| 266 | auto thread_res = Thread::Create(kernel, "main", entry_point, priority, 0, THREADPROCESSORID_0, | 266 | auto thread_res = Thread::Create(kernel, "main", entry_point, priority, 0, THREADPROCESSORID_0, |
| 267 | stack_top, &owner_process); | 267 | stack_top, owner_process); |
| 268 | 268 | ||
| 269 | SharedPtr<Thread> thread = std::move(thread_res).Unwrap(); | 269 | SharedPtr<Thread> thread = std::move(thread_res).Unwrap(); |
| 270 | 270 | ||