diff options
author | bunnei <bunneidev@gmail.com> | 2018-01-03 04:24:12 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2018-01-03 04:24:12 +0100 |
commit | b172f0d770486d4367fbea22906a5e908ef621e8 (patch) | |
tree | 6a564c23ed8f52c16c50942803f4a69fd0047f6c /src/core/hle | |
parent | vm_manager: Use a more reasonable MAX_ADDRESS size. (diff) | |
download | yuzu-b172f0d770486d4367fbea22906a5e908ef621e8.tar yuzu-b172f0d770486d4367fbea22906a5e908ef621e8.tar.gz yuzu-b172f0d770486d4367fbea22906a5e908ef621e8.tar.bz2 yuzu-b172f0d770486d4367fbea22906a5e908ef621e8.tar.lz yuzu-b172f0d770486d4367fbea22906a5e908ef621e8.tar.xz yuzu-b172f0d770486d4367fbea22906a5e908ef621e8.tar.zst yuzu-b172f0d770486d4367fbea22906a5e908ef621e8.zip |
Diffstat (limited to 'src/core/hle')
-rw-r--r-- | src/core/hle/kernel/svc.cpp | 28 | ||||
-rw-r--r-- | src/core/hle/kernel/thread.cpp | 6 |
2 files changed, 11 insertions, 23 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp index 1e5218000..debaa82e5 100644 --- a/src/core/hle/kernel/svc.cpp +++ b/src/core/hle/kernel/svc.cpp @@ -26,8 +26,8 @@ namespace Kernel { static ResultCode SetHeapSize(VAddr* heap_addr, u64 heap_size) { LOG_TRACE(Kernel_SVC, "called, heap_size=0x%llx", heap_size); auto& process = *g_current_process; - CASCADE_RESULT(*heap_addr, process.HeapAllocate(Memory::HEAP_VADDR, heap_size, - VMAPermission::ReadWrite)); + CASCADE_RESULT(*heap_addr, + process.HeapAllocate(Memory::HEAP_VADDR, heap_size, VMAPermission::ReadWrite)); return RESULT_SUCCESS; } @@ -95,8 +95,7 @@ static ResultCode SendSyncRequest(Handle handle) { static ResultCode GetThreadId(u32* thread_id, Handle thread_handle) { LOG_TRACE(Kernel_SVC, "called thread=0x%08X", thread_handle); - const SharedPtr<Thread> thread = - g_handle_table.Get<Thread>(thread_handle); + const SharedPtr<Thread> thread = g_handle_table.Get<Thread>(thread_handle); if (!thread) { return ERR_INVALID_HANDLE; } @@ -109,8 +108,7 @@ static ResultCode GetThreadId(u32* thread_id, Handle thread_handle) { static ResultCode GetProcessId(u32* process_id, Handle process_handle) { LOG_TRACE(Kernel_SVC, "called process=0x%08X", process_handle); - const SharedPtr<Process> process = - g_handle_table.Get<Process>(process_handle); + const SharedPtr<Process> process = g_handle_table.Get<Process>(process_handle); if (!process) { return ERR_INVALID_HANDLE; } @@ -135,10 +133,8 @@ static ResultCode LockMutex(Handle holding_thread_handle, VAddr mutex_addr, "requesting_current_thread_handle=0x%08X", holding_thread_handle, mutex_addr, requesting_thread_handle); - SharedPtr<Thread> holding_thread = - g_handle_table.Get<Thread>(holding_thread_handle); - SharedPtr<Thread> requesting_thread = - g_handle_table.Get<Thread>(requesting_thread_handle); + SharedPtr<Thread> holding_thread = g_handle_table.Get<Thread>(holding_thread_handle); + SharedPtr<Thread> requesting_thread = g_handle_table.Get<Thread>(requesting_thread_handle); ASSERT(holding_thread); ASSERT(requesting_thread); @@ -302,8 +298,7 @@ static ResultCode QueryMemory(MemoryInfo* memory_info, PageInfo* page_info, VAdd static void ExitProcess() { LOG_INFO(Kernel_SVC, "Process %u exiting", g_current_process->process_id); - ASSERT_MSG(g_current_process->status == ProcessStatus::Running, - "Process has already exited"); + ASSERT_MSG(g_current_process->status == ProcessStatus::Running, "Process has already exited"); g_current_process->status = ProcessStatus::Exited; @@ -369,11 +364,7 @@ static ResultCode CreateThread(Handle* out_handle, VAddr entry_point, u64 arg, V CASCADE_RESULT(SharedPtr<Thread> thread, Thread::Create(name, entry_point, priority, arg, processor_id, stack_top, - g_current_process)); - - thread->context.fpscr = - FPSCR_DEFAULT_NAN | FPSCR_FLUSH_TO_ZERO | FPSCR_ROUND_TOZERO; // 0x03C00000 - + g_current_process)); CASCADE_RESULT(thread->guest_handle, g_handle_table.Create(thread)); *out_handle = thread->guest_handle; @@ -391,8 +382,7 @@ static ResultCode CreateThread(Handle* out_handle, VAddr entry_point, u64 arg, V static ResultCode StartThread(Handle thread_handle) { LOG_TRACE(Kernel_SVC, "called thread=0x%08X", thread_handle); - const SharedPtr<Thread> thread = - g_handle_table.Get<Thread>(thread_handle); + const SharedPtr<Thread> thread = g_handle_table.Get<Thread>(thread_handle); if (!thread) { return ERR_INVALID_HANDLE; } diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp index 1588cfc7e..9132d1d77 100644 --- a/src/core/hle/kernel/thread.cpp +++ b/src/core/hle/kernel/thread.cpp @@ -11,7 +11,6 @@ #include "common/math_util.h" #include "common/thread_queue_list.h" #include "core/arm/arm_interface.h" -#include "core/arm/skyeye_common/armstate.h" #include "core/core.h" #include "core/core_timing.h" #include "core/hle/kernel/errors.h" @@ -365,7 +364,8 @@ static void ResetThreadContext(ARM_Interface::ThreadContext& context, VAddr stac context.cpu_registers[0] = arg; context.pc = entry_point; context.sp = stack_top; - context.cpsr = USER32MODE; + context.cpsr = 0; + context.fpscr = 0; } ResultVal<SharedPtr<Thread>> Thread::Create(std::string name, VAddr entry_point, u32 priority, @@ -504,8 +504,6 @@ SharedPtr<Thread> SetupMainThread(VAddr entry_point, u32 priority, // Register 1 must be a handle to the main thread thread->guest_handle = Kernel::g_handle_table.Create(thread).Unwrap();; thread->context.cpu_registers[1] = thread->guest_handle; - thread->context.fpscr = - FPSCR_DEFAULT_NAN | FPSCR_FLUSH_TO_ZERO | FPSCR_ROUND_TOZERO | FPSCR_IXC; // 0x03C00010 // Threads by default are dormant, wake up the main thread so it runs when the scheduler fires thread->ResumeFromWait(); |