From c5ce5c06e471d556254c1cf465b1d92d6a8f695d Mon Sep 17 00:00:00 2001 From: bunnei Date: Wed, 20 Sep 2017 23:14:06 -0400 Subject: kernel: Various threading fixes to support 64-bit addressing. --- src/core/hle/kernel/thread.cpp | 6 +++--- src/core/hle/kernel/thread.h | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'src/core/hle/kernel') diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp index f5f2eb2f7..736be50db 100644 --- a/src/core/hle/kernel/thread.cpp +++ b/src/core/hle/kernel/thread.cpp @@ -341,8 +341,8 @@ std::tuple GetFreeThreadLocalSlot(std::vector>& t * @param entry_point Address of entry point for execution * @param arg User argument for thread */ -static void ResetThreadContext(ARM_Interface::ThreadContext& context, u32 stack_top, - u32 entry_point, u32 arg) { +static void ResetThreadContext(ARM_Interface::ThreadContext& context, VAddr stack_top, + VAddr entry_point, u64 arg) { memset(&context, 0, sizeof(ARM_Interface::ThreadContext)); context.cpu_registers[0] = arg; @@ -477,7 +477,7 @@ void Thread::BoostPriority(s32 priority) { current_priority = priority; } -SharedPtr SetupMainThread(u32 entry_point, s32 priority) { +SharedPtr SetupMainThread(VAddr entry_point, s32 priority) { DEBUG_ASSERT(!GetCurrentThread()); // Initialize new "main" thread diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h index 6a3566f15..2cadb91db 100644 --- a/src/core/hle/kernel/thread.h +++ b/src/core/hle/kernel/thread.h @@ -171,8 +171,8 @@ public: u32 thread_id; u32 status; - u32 entry_point; - u32 stack_top; + VAddr entry_point; + VAddr stack_top; s32 nominal_priority; ///< Nominal thread priority, as set by the emulated application s32 current_priority; ///< Current thread priority, can be temporarily changed @@ -216,7 +216,7 @@ private: * @param priority The priority to give the main thread * @return A shared pointer to the main thread */ -SharedPtr SetupMainThread(u32 entry_point, s32 priority); +SharedPtr SetupMainThread(VAddr entry_point, s32 priority); /** * Returns whether there are any threads that are ready to run. @@ -232,13 +232,13 @@ void Reschedule(); * Arbitrate the highest priority thread that is waiting * @param address The address for which waiting threads should be arbitrated */ -Thread* ArbitrateHighestPriorityThread(u32 address); +Thread* ArbitrateHighestPriorityThread(VAddr address); /** * Arbitrate all threads currently waiting. * @param address The address for which waiting threads should be arbitrated */ -void ArbitrateAllThreads(u32 address); +void ArbitrateAllThreads(VAddr address); /** * Gets the current thread -- cgit v1.2.3