diff --git a/include/kernel/kernel.hpp b/include/kernel/kernel.hpp index 30f1310e..3f09bf12 100644 --- a/include/kernel/kernel.hpp +++ b/include/kernel/kernel.hpp @@ -146,6 +146,7 @@ public: void getResourceLimitCurrentValues(); void getSystemInfo(); void getSystemTick(); + void getThreadContext(); void getThreadID(); void getThreadIdealProcessor(); void getThreadPriority(); diff --git a/src/core/kernel/kernel.cpp b/src/core/kernel/kernel.cpp index 04af5096..2e4fffff 100644 --- a/src/core/kernel/kernel.cpp +++ b/src/core/kernel/kernel.cpp @@ -66,6 +66,7 @@ void Kernel::serviceSVC(u32 svc) { case 0x38: getResourceLimit(); break; case 0x39: getResourceLimitLimitValues(); break; case 0x3A: getResourceLimitCurrentValues(); break; + case 0x3B: getThreadContext(); break; case 0x3D: outputDebugString(); break; default: Helpers::panic("Unimplemented svc: %X @ %08X", svc, regs[15]); break; } diff --git a/src/core/kernel/threads.cpp b/src/core/kernel/threads.cpp index 5c21d507..239a6617 100644 --- a/src/core/kernel/threads.cpp +++ b/src/core/kernel/threads.cpp @@ -462,6 +462,13 @@ void Kernel::getThreadIdealProcessor() { regs[1] = static_cast(ProcessorID::AppCore); } +void Kernel::getThreadContext() { + Helpers::warn("Stubbed Kernel::GetThreadContext"); + + // TODO: Decompile this from Kernel11. 3DBrew says function is stubbed. + regs[0] = Result::Success; +} + void Kernel::setThreadPriority() { const Handle handle = regs[0]; const u32 priority = regs[1];