summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/thread.cpp
diff options
context:
space:
mode:
authorGravatar Lioncash2018-12-27 20:28:15 -0500
committerGravatar Lioncash2018-12-27 20:32:30 -0500
commit771431f62539a991cc4d8cf5dc4908bb5b366da2 (patch)
treedb724de34e5e8a8326ce1a061553520cbd157944 /src/core/hle/kernel/thread.cpp
parentMerge pull request #1951 from Tinob/master (diff)
downloadyuzu-771431f62539a991cc4d8cf5dc4908bb5b366da2.tar.gz
yuzu-771431f62539a991cc4d8cf5dc4908bb5b366da2.tar.xz
yuzu-771431f62539a991cc4d8cf5dc4908bb5b366da2.zip
kernel/thread: Move process thread initialization into process.cpp
This function isn't a general purpose function that should be exposed to everything, given it's specific to initializing the main thread for a Process instance. Given that, it's a tad bit more sensible to place this within process.cpp, which keeps it visible only to the code that actually needs it.
Diffstat (limited to 'src/core/hle/kernel/thread.cpp')
-rw-r--r--src/core/hle/kernel/thread.cpp24
1 files changed, 0 insertions, 24 deletions
diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp
index 434655638..d3984dfc4 100644
--- a/src/core/hle/kernel/thread.cpp
+++ b/src/core/hle/kernel/thread.cpp
@@ -12,7 +12,6 @@
12#include "common/assert.h" 12#include "common/assert.h"
13#include "common/common_types.h" 13#include "common/common_types.h"
14#include "common/logging/log.h" 14#include "common/logging/log.h"
15#include "common/math_util.h"
16#include "common/thread_queue_list.h" 15#include "common/thread_queue_list.h"
17#include "core/arm/arm_interface.h" 16#include "core/arm/arm_interface.h"
18#include "core/core.h" 17#include "core/core.h"
@@ -232,29 +231,6 @@ void Thread::BoostPriority(u32 priority) {
232 current_priority = priority; 231 current_priority = priority;
233} 232}
234 233
235SharedPtr<Thread> SetupMainThread(KernelCore& kernel, VAddr entry_point, u32 priority,
236 Process& owner_process) {
237 // Setup page table so we can write to memory
238 SetCurrentPageTable(&owner_process.VMManager().page_table);
239
240 // Initialize new "main" thread
241 const VAddr stack_top = owner_process.VMManager().GetTLSIORegionEndAddress();
242 auto thread_res = Thread::Create(kernel, "main", entry_point, priority, 0, THREADPROCESSORID_0,
243 stack_top, owner_process);
244
245 SharedPtr<Thread> thread = std::move(thread_res).Unwrap();
246
247 // Register 1 must be a handle to the main thread
248 const Handle guest_handle = owner_process.GetHandleTable().Create(thread).Unwrap();
249 thread->SetGuestHandle(guest_handle);
250 thread->GetContext().cpu_registers[1] = guest_handle;
251
252 // Threads by default are dormant, wake up the main thread so it runs when the scheduler fires
253 thread->ResumeFromWait();
254
255 return thread;
256}
257
258void Thread::SetWaitSynchronizationResult(ResultCode result) { 234void Thread::SetWaitSynchronizationResult(ResultCode result) {
259 context.cpu_registers[0] = result.raw; 235 context.cpu_registers[0] = result.raw;
260} 236}