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