From e96ef6d53250b72d084f7e6baf13e9bab485bca2 Mon Sep 17 00:00:00 2001 From: Mary <me@thog.eu> Date: Thu, 30 Dec 2021 10:55:06 +0100 Subject: kernel: Implement thread pinning support (#2840) * kernel: Implement Thread pinning support This commit adds support for 8.x thread pinning changes and implement SynchronizePreemptionState syscall. Based on kernel 13.x reverse. * Address gdkchan's comment * kernel: fix missing critical section leave in SetActivity Fix Unity games * Implement missing bits on the interrupt handler and inline update pinning function as it cannot be generic * Fix some bugs in SetActivity and SetCoreAndAffinityMask * Address gdkchan's comments --- Ryujinx.HLE/HOS/Kernel/Threading/ThreadSchedState.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'Ryujinx.HLE/HOS/Kernel/Threading/ThreadSchedState.cs') diff --git a/Ryujinx.HLE/HOS/Kernel/Threading/ThreadSchedState.cs b/Ryujinx.HLE/HOS/Kernel/Threading/ThreadSchedState.cs index c9eaa6b3..9577075c 100644 --- a/Ryujinx.HLE/HOS/Kernel/Threading/ThreadSchedState.cs +++ b/Ryujinx.HLE/HOS/Kernel/Threading/ThreadSchedState.cs @@ -4,11 +4,12 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading { LowMask = 0xf, HighMask = 0xfff0, - ForcePauseMask = 0x70, + ForcePauseMask = 0x1f0, ProcessPauseFlag = 1 << 4, ThreadPauseFlag = 1 << 5, ProcessDebugPauseFlag = 1 << 6, + BacktracePauseFlag = 1 << 7, KernelInitPauseFlag = 1 << 8, None = 0, -- cgit v1.2.3-70-g09d2