aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Horizon/HorizonStatic.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Horizon/HorizonStatic.cs')
-rw-r--r--Ryujinx.Horizon/HorizonStatic.cs44
1 files changed, 44 insertions, 0 deletions
diff --git a/Ryujinx.Horizon/HorizonStatic.cs b/Ryujinx.Horizon/HorizonStatic.cs
new file mode 100644
index 00000000..1e483cd4
--- /dev/null
+++ b/Ryujinx.Horizon/HorizonStatic.cs
@@ -0,0 +1,44 @@
+using Ryujinx.Horizon.Common;
+using Ryujinx.Memory;
+using System;
+
+namespace Ryujinx.Horizon
+{
+ static class HorizonStatic
+ {
+ [ThreadStatic]
+ private static HorizonOptions _options;
+
+ [ThreadStatic]
+ private static ISyscallApi _syscall;
+
+ [ThreadStatic]
+ private static IVirtualMemoryManager _addressSpace;
+
+ [ThreadStatic]
+ private static IThreadContext _threadContext;
+
+ [ThreadStatic]
+ private static int _threadHandle;
+
+ public static HorizonOptions Options => _options;
+ public static ISyscallApi Syscall => _syscall;
+ public static IVirtualMemoryManager AddressSpace => _addressSpace;
+ public static IThreadContext ThreadContext => _threadContext;
+ public static int CurrentThreadHandle => _threadHandle;
+
+ public static void Register(
+ HorizonOptions options,
+ ISyscallApi syscallApi,
+ IVirtualMemoryManager addressSpace,
+ IThreadContext threadContext,
+ int threadHandle)
+ {
+ _options = options;
+ _syscall = syscallApi;
+ _addressSpace = addressSpace;
+ _threadContext = threadContext;
+ _threadHandle = threadHandle;
+ }
+ }
+}