From 08831eecf77cedd3c4192ebab5a9c485fb15d51e Mon Sep 17 00:00:00 2001
From: gdkchan <gab.dark.100@gmail.com>
Date: Wed, 4 Jan 2023 19:15:45 -0300
Subject: IPC refactor part 3+4: New server HIPC message processor (#4188)

* IPC refactor part 3 + 4: New server HIPC message processor with source generator based serialization

* Make types match on calls to AlignUp/AlignDown

* Formatting

* Address some PR feedback

* Move BitfieldExtensions to Ryujinx.Common.Utilities and consolidate implementations

* Rename Reader/Writer to SpanReader/SpanWriter and move to Ryujinx.Common.Memory

* Implement EventType

* Address more PR feedback

* Log request processing errors since they are not normal

* Rename waitable to multiwait and add missing lock

* PR feedback

* Ac_K PR feedback
---
 Ryujinx.HLE/HOS/Kernel/Threading/KThreadContext.cs | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

(limited to 'Ryujinx.HLE/HOS/Kernel/Threading/KThreadContext.cs')

diff --git a/Ryujinx.HLE/HOS/Kernel/Threading/KThreadContext.cs b/Ryujinx.HLE/HOS/Kernel/Threading/KThreadContext.cs
index a7e9c4b3..e8ad53c2 100644
--- a/Ryujinx.HLE/HOS/Kernel/Threading/KThreadContext.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Threading/KThreadContext.cs
@@ -1,11 +1,25 @@
-using System.Threading;
+using Ryujinx.Cpu;
+using Ryujinx.Horizon.Common;
+using System.Threading;
 
 namespace Ryujinx.HLE.HOS.Kernel.Threading
 {
-    class KThreadContext
+    class KThreadContext : IThreadContext
     {
+        private readonly IExecutionContext _context;
+
+        public bool Running => _context.Running;
+        public ulong TlsAddress => (ulong)_context.TpidrroEl0;
+
+        public ulong GetX(int index) => _context.GetX(index);
+
         private int _locked;
 
+        public KThreadContext(IExecutionContext context)
+        {
+            _context = context;
+        }
+
         public bool Lock()
         {
             return Interlocked.Exchange(ref _locked, 1) == 0;
-- 
cgit v1.2.3-70-g09d2