From 69e0b79bd9cd2667769ed907f411d9d244d2fde6 Mon Sep 17 00:00:00 2001
From: Evan Husted <greem@greemdev.net>
Date: Sat, 25 Jan 2025 14:14:13 -0600
Subject: [PATCH] misc: chore: Use explicit types in Horizon project

---
 .../Bcat/Ipc/ServiceCreator.cs                |  8 +++---
 .../DeliveryCacheStorageService.cs            |  8 +++---
 src/Ryujinx.Horizon/HeapAllocator.cs          |  6 ++---
 src/Ryujinx.Horizon/Sdk/Arp/ArpApi.cs         |  2 +-
 .../Sdk/Audio/Detail/AudioInManager.cs        |  3 ++-
 .../Sdk/Audio/Detail/AudioOutManager.cs       |  3 ++-
 .../Sdk/Audio/Detail/AudioRendererManager.cs  |  9 ++++---
 src/Ryujinx.Horizon/Sdk/Lbl/LblApi.cs         |  2 +-
 .../Sdk/Ngc/Detail/CompressedArray.cs         |  4 +--
 .../Sdk/OsTypes/OsSystemEvent.cs              |  2 +-
 src/Ryujinx.Horizon/Sdk/ServiceUtil.cs        |  5 ++--
 .../Cmif/DomainServiceObjectDispatchTable.cs  |  6 ++---
 .../Sf/Cmif/DomainServiceObjectProcessor.cs   |  4 +--
 .../Sdk/Sf/Cmif/ServerDomainManager.cs        | 16 ++++++------
 .../Sdk/Sf/Cmif/ServiceDispatchTableBase.cs   |  6 ++---
 src/Ryujinx.Horizon/Sdk/Sf/CommandHandler.cs  |  2 +-
 .../Sdk/Sf/CommandSerialization.cs            |  2 +-
 src/Ryujinx.Horizon/Sdk/Sf/Hipc/Api.cs        |  4 +--
 .../Sdk/Sf/Hipc/HipcManager.cs                |  6 ++---
 .../Sdk/Sf/Hipc/ServerManagerBase.cs          |  5 ++--
 .../Sdk/Sf/Hipc/ServerSessionManager.cs       |  6 ++---
 .../Sdk/Sf/HipcCommandProcessor.cs            | 26 +++++++++----------
 src/Ryujinx.Horizon/Sm/Impl/ServiceManager.cs |  2 +-
 23 files changed, 71 insertions(+), 66 deletions(-)

diff --git a/src/Ryujinx.Horizon/Bcat/Ipc/ServiceCreator.cs b/src/Ryujinx.Horizon/Bcat/Ipc/ServiceCreator.cs
index 78114c51f..6984d69c4 100644
--- a/src/Ryujinx.Horizon/Bcat/Ipc/ServiceCreator.cs
+++ b/src/Ryujinx.Horizon/Bcat/Ipc/ServiceCreator.cs
@@ -39,9 +39,9 @@ namespace Ryujinx.Horizon.Bcat.Ipc
         [CmifCommand(1)]
         public Result CreateDeliveryCacheStorageService(out IDeliveryCacheStorageService service, [ClientProcessId] ulong pid)
         {
-            using var libHacService = new SharedRef<LibHac.Bcat.Impl.Ipc.IDeliveryCacheStorageService>();
+            using SharedRef<LibHac.Bcat.Impl.Ipc.IDeliveryCacheStorageService> libHacService = new SharedRef<LibHac.Bcat.Impl.Ipc.IDeliveryCacheStorageService>();
 
-            var resultCode = _libHacService.Get.CreateDeliveryCacheStorageService(ref libHacService.Ref, pid);
+            LibHac.Result resultCode = _libHacService.Get.CreateDeliveryCacheStorageService(ref libHacService.Ref, pid);
 
             if (resultCode.IsSuccess())
             {
@@ -58,9 +58,9 @@ namespace Ryujinx.Horizon.Bcat.Ipc
         [CmifCommand(2)]
         public Result CreateDeliveryCacheStorageServiceWithApplicationId(out IDeliveryCacheStorageService service, ApplicationId applicationId)
         {
-            using var libHacService = new SharedRef<LibHac.Bcat.Impl.Ipc.IDeliveryCacheStorageService>();
+            using SharedRef<LibHac.Bcat.Impl.Ipc.IDeliveryCacheStorageService> libHacService = new SharedRef<LibHac.Bcat.Impl.Ipc.IDeliveryCacheStorageService>();
 
-            var resultCode = _libHacService.Get.CreateDeliveryCacheStorageServiceWithApplicationId(ref libHacService.Ref, new LibHac.ApplicationId(applicationId.Id));
+            LibHac.Result resultCode = _libHacService.Get.CreateDeliveryCacheStorageServiceWithApplicationId(ref libHacService.Ref, new LibHac.ApplicationId(applicationId.Id));
 
             if (resultCode.IsSuccess())
             {
diff --git a/src/Ryujinx.Horizon/Bcat/Ipc/ServiceCreator/DeliveryCacheStorageService.cs b/src/Ryujinx.Horizon/Bcat/Ipc/ServiceCreator/DeliveryCacheStorageService.cs
index ecbc4bdb7..4142c14f8 100644
--- a/src/Ryujinx.Horizon/Bcat/Ipc/ServiceCreator/DeliveryCacheStorageService.cs
+++ b/src/Ryujinx.Horizon/Bcat/Ipc/ServiceCreator/DeliveryCacheStorageService.cs
@@ -22,9 +22,9 @@ namespace Ryujinx.Horizon.Bcat.Ipc
         [CmifCommand(0)]
         public Result CreateFileService(out IDeliveryCacheFileService service)
         {
-            using var libHacService = new SharedRef<LibHac.Bcat.Impl.Ipc.IDeliveryCacheFileService>();
+            using SharedRef<LibHac.Bcat.Impl.Ipc.IDeliveryCacheFileService> libHacService = new SharedRef<LibHac.Bcat.Impl.Ipc.IDeliveryCacheFileService>();
 
-            var resultCode = _libHacService.Get.CreateFileService(ref libHacService.Ref);
+            LibHac.Result resultCode = _libHacService.Get.CreateFileService(ref libHacService.Ref);
 
             if (resultCode.IsSuccess())
             {
@@ -41,9 +41,9 @@ namespace Ryujinx.Horizon.Bcat.Ipc
         [CmifCommand(1)]
         public Result CreateDirectoryService(out IDeliveryCacheDirectoryService service)
         {
-            using var libHacService = new SharedRef<LibHac.Bcat.Impl.Ipc.IDeliveryCacheDirectoryService>();
+            using SharedRef<LibHac.Bcat.Impl.Ipc.IDeliveryCacheDirectoryService> libHacService = new SharedRef<LibHac.Bcat.Impl.Ipc.IDeliveryCacheDirectoryService>();
 
-            var resultCode = _libHacService.Get.CreateDirectoryService(ref libHacService.Ref);
+            LibHac.Result resultCode = _libHacService.Get.CreateDirectoryService(ref libHacService.Ref);
 
             if (resultCode.IsSuccess())
             {
diff --git a/src/Ryujinx.Horizon/HeapAllocator.cs b/src/Ryujinx.Horizon/HeapAllocator.cs
index fc125387e..838e505d3 100644
--- a/src/Ryujinx.Horizon/HeapAllocator.cs
+++ b/src/Ryujinx.Horizon/HeapAllocator.cs
@@ -67,7 +67,7 @@ namespace Ryujinx.Horizon
         {
             for (int i = 0; i < _freeRanges.Count; i++)
             {
-                var range = _freeRanges[i];
+                Range range = _freeRanges[i];
 
                 ulong alignedOffset = BitUtils.AlignUp(range.Offset, alignment);
                 ulong sizeDelta = alignedOffset - range.Offset;
@@ -103,7 +103,7 @@ namespace Ryujinx.Horizon
 
         private void InsertFreeRange(ulong offset, ulong size)
         {
-            var range = new Range(offset, size);
+            Range range = new Range(offset, size);
             int index = _freeRanges.BinarySearch(range);
             if (index < 0)
             {
@@ -116,7 +116,7 @@ namespace Ryujinx.Horizon
         private void InsertFreeRangeComingled(ulong offset, ulong size)
         {
             ulong endOffset = offset + size;
-            var range = new Range(offset, size);
+            Range range = new Range(offset, size);
             int index = _freeRanges.BinarySearch(range);
             if (index < 0)
             {
diff --git a/src/Ryujinx.Horizon/Sdk/Arp/ArpApi.cs b/src/Ryujinx.Horizon/Sdk/Arp/ArpApi.cs
index b0acc0062..496de62ff 100644
--- a/src/Ryujinx.Horizon/Sdk/Arp/ArpApi.cs
+++ b/src/Ryujinx.Horizon/Sdk/Arp/ArpApi.cs
@@ -25,7 +25,7 @@ namespace Ryujinx.Horizon.Sdk.Arp
         {
             if (_sessionHandle == 0)
             {
-                using var smApi = new SmApi();
+                using SmApi smApi = new();
 
                 smApi.Initialize();
                 smApi.GetServiceHandle(out _sessionHandle, ServiceName.Encode(ArpRName)).AbortOnFailure();
diff --git a/src/Ryujinx.Horizon/Sdk/Audio/Detail/AudioInManager.cs b/src/Ryujinx.Horizon/Sdk/Audio/Detail/AudioInManager.cs
index d5d047201..b190cb8ae 100644
--- a/src/Ryujinx.Horizon/Sdk/Audio/Detail/AudioInManager.cs
+++ b/src/Ryujinx.Horizon/Sdk/Audio/Detail/AudioInManager.cs
@@ -5,6 +5,7 @@ using Ryujinx.Horizon.Common;
 using Ryujinx.Horizon.Sdk.Applet;
 using Ryujinx.Horizon.Sdk.Sf;
 using Ryujinx.Horizon.Sdk.Sf.Hipc;
+using Ryujinx.Memory;
 using System;
 
 namespace Ryujinx.Horizon.Sdk.Audio.Detail
@@ -49,7 +50,7 @@ namespace Ryujinx.Horizon.Sdk.Audio.Detail
             [Buffer(HipcBufferFlags.In | HipcBufferFlags.MapAlias)] ReadOnlySpan<DeviceName> name,
             [ClientProcessId] ulong pid)
         {
-            var clientMemoryManager = HorizonStatic.Syscall.GetMemoryManagerByProcessHandle(processHandle);
+            IVirtualMemoryManager clientMemoryManager = HorizonStatic.Syscall.GetMemoryManagerByProcessHandle(processHandle);
 
             ResultCode rc = _impl.OpenAudioIn(
                 out string outputDeviceName,
diff --git a/src/Ryujinx.Horizon/Sdk/Audio/Detail/AudioOutManager.cs b/src/Ryujinx.Horizon/Sdk/Audio/Detail/AudioOutManager.cs
index 3d129470c..facfbbc03 100644
--- a/src/Ryujinx.Horizon/Sdk/Audio/Detail/AudioOutManager.cs
+++ b/src/Ryujinx.Horizon/Sdk/Audio/Detail/AudioOutManager.cs
@@ -5,6 +5,7 @@ using Ryujinx.Horizon.Common;
 using Ryujinx.Horizon.Sdk.Applet;
 using Ryujinx.Horizon.Sdk.Sf;
 using Ryujinx.Horizon.Sdk.Sf.Hipc;
+using Ryujinx.Memory;
 using System;
 
 namespace Ryujinx.Horizon.Sdk.Audio.Detail
@@ -49,7 +50,7 @@ namespace Ryujinx.Horizon.Sdk.Audio.Detail
             [Buffer(HipcBufferFlags.In | HipcBufferFlags.MapAlias)] ReadOnlySpan<DeviceName> name,
             [ClientProcessId] ulong pid)
         {
-            var clientMemoryManager = HorizonStatic.Syscall.GetMemoryManagerByProcessHandle(processHandle);
+            IVirtualMemoryManager clientMemoryManager = HorizonStatic.Syscall.GetMemoryManagerByProcessHandle(processHandle);
 
             ResultCode rc = _impl.OpenAudioOut(
                 out string outputDeviceName,
diff --git a/src/Ryujinx.Horizon/Sdk/Audio/Detail/AudioRendererManager.cs b/src/Ryujinx.Horizon/Sdk/Audio/Detail/AudioRendererManager.cs
index 7138d27ce..c1c7453a1 100644
--- a/src/Ryujinx.Horizon/Sdk/Audio/Detail/AudioRendererManager.cs
+++ b/src/Ryujinx.Horizon/Sdk/Audio/Detail/AudioRendererManager.cs
@@ -4,6 +4,7 @@ using Ryujinx.Common.Logging;
 using Ryujinx.Horizon.Common;
 using Ryujinx.Horizon.Sdk.Applet;
 using Ryujinx.Horizon.Sdk.Sf;
+using Ryujinx.Memory;
 
 namespace Ryujinx.Horizon.Sdk.Audio.Detail
 {
@@ -30,11 +31,11 @@ namespace Ryujinx.Horizon.Sdk.Audio.Detail
             AppletResourceUserId appletResourceId,
             [ClientProcessId] ulong pid)
         {
-            var clientMemoryManager = HorizonStatic.Syscall.GetMemoryManagerByProcessHandle(processHandle);
+            IVirtualMemoryManager clientMemoryManager = HorizonStatic.Syscall.GetMemoryManagerByProcessHandle(processHandle);
             ulong workBufferAddress = HorizonStatic.Syscall.GetTransferMemoryAddress(workBufferHandle);
 
             Result result = new Result((int)_impl.OpenAudioRenderer(
-                out var renderSystem,
+                out AudioRenderSystem renderSystem,
                 clientMemoryManager,
                 ref parameter.Configuration,
                 appletResourceId.Id,
@@ -96,10 +97,10 @@ namespace Ryujinx.Horizon.Sdk.Audio.Detail
             AppletResourceUserId appletResourceId,
             [ClientProcessId] ulong pid)
         {
-            var clientMemoryManager = HorizonStatic.Syscall.GetMemoryManagerByProcessHandle(processHandle);
+            IVirtualMemoryManager clientMemoryManager = HorizonStatic.Syscall.GetMemoryManagerByProcessHandle(processHandle);
 
             Result result = new Result((int)_impl.OpenAudioRenderer(
-                out var renderSystem,
+                out AudioRenderSystem renderSystem,
                 clientMemoryManager,
                 ref parameter.Configuration,
                 appletResourceId.Id,
diff --git a/src/Ryujinx.Horizon/Sdk/Lbl/LblApi.cs b/src/Ryujinx.Horizon/Sdk/Lbl/LblApi.cs
index a5622d4aa..ef42d777f 100644
--- a/src/Ryujinx.Horizon/Sdk/Lbl/LblApi.cs
+++ b/src/Ryujinx.Horizon/Sdk/Lbl/LblApi.cs
@@ -12,7 +12,7 @@ namespace Ryujinx.Horizon.Sdk.Lbl
 
         public LblApi()
         {
-            using var smApi = new SmApi();
+            using SmApi smApi = new SmApi();
 
             smApi.Initialize();
             smApi.GetServiceHandle(out _sessionHandle, ServiceName.Encode(LblName)).AbortOnFailure();
diff --git a/src/Ryujinx.Horizon/Sdk/Ngc/Detail/CompressedArray.cs b/src/Ryujinx.Horizon/Sdk/Ngc/Detail/CompressedArray.cs
index fc5cd683d..899ea57f5 100644
--- a/src/Ryujinx.Horizon/Sdk/Ngc/Detail/CompressedArray.cs
+++ b/src/Ryujinx.Horizon/Sdk/Ngc/Detail/CompressedArray.cs
@@ -35,13 +35,13 @@ namespace Ryujinx.Horizon.Sdk.Ngc.Detail
         {
             get
             {
-                var ranges = GetBitfieldRanges();
+                ReadOnlySpan<BitfieldRange> ranges = GetBitfieldRanges();
 
                 int rangeBlockIndex = index / CompressedEntriesPerBlock;
 
                 if (rangeBlockIndex < ranges.Length)
                 {
-                    var range = ranges[rangeBlockIndex];
+                    BitfieldRange range = ranges[rangeBlockIndex];
 
                     int bitfieldLength = range.BitfieldLength;
                     int bitfieldOffset = (index % CompressedEntriesPerBlock) * bitfieldLength;
diff --git a/src/Ryujinx.Horizon/Sdk/OsTypes/OsSystemEvent.cs b/src/Ryujinx.Horizon/Sdk/OsTypes/OsSystemEvent.cs
index 8fac94abe..701db76e0 100644
--- a/src/Ryujinx.Horizon/Sdk/OsTypes/OsSystemEvent.cs
+++ b/src/Ryujinx.Horizon/Sdk/OsTypes/OsSystemEvent.cs
@@ -31,7 +31,7 @@ namespace Ryujinx.Horizon.Sdk.OsTypes
 
         public static void DestroySystemEvent(ref SystemEventType sysEvent)
         {
-            var oldState = sysEvent.State;
+            SystemEventType.InitializationState oldState = sysEvent.State;
             sysEvent.State = SystemEventType.InitializationState.NotInitialized;
 
             switch (oldState)
diff --git a/src/Ryujinx.Horizon/Sdk/ServiceUtil.cs b/src/Ryujinx.Horizon/Sdk/ServiceUtil.cs
index 5527c1e35..b5bf853b3 100644
--- a/src/Ryujinx.Horizon/Sdk/ServiceUtil.cs
+++ b/src/Ryujinx.Horizon/Sdk/ServiceUtil.cs
@@ -1,6 +1,7 @@
 using Ryujinx.Horizon.Common;
 using Ryujinx.Horizon.Sdk.Sf.Cmif;
 using Ryujinx.Horizon.Sdk.Sf.Hipc;
+using Ryujinx.Memory;
 using System;
 
 namespace Ryujinx.Horizon.Sdk
@@ -12,7 +13,7 @@ namespace Ryujinx.Horizon.Sdk
             ulong tlsAddress = HorizonStatic.ThreadContext.TlsAddress;
             int tlsSize = Api.TlsMessageBufferSize;
 
-            using (var tlsRegion = HorizonStatic.AddressSpace.GetWritableRegion(tlsAddress, tlsSize))
+            using (WritableRegion tlsRegion = HorizonStatic.AddressSpace.GetWritableRegion(tlsAddress, tlsSize))
             {
                 CmifRequest request = CmifMessage.CreateRequest(tlsRegion.Memory.Span, new CmifRequestFormat
                 {
@@ -48,7 +49,7 @@ namespace Ryujinx.Horizon.Sdk
             ulong tlsAddress = HorizonStatic.ThreadContext.TlsAddress;
             int tlsSize = Api.TlsMessageBufferSize;
 
-            using (var tlsRegion = HorizonStatic.AddressSpace.GetWritableRegion(tlsAddress, tlsSize))
+            using (WritableRegion tlsRegion = HorizonStatic.AddressSpace.GetWritableRegion(tlsAddress, tlsSize))
             {
                 CmifRequestFormat format = new()
                 {
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/DomainServiceObjectDispatchTable.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/DomainServiceObjectDispatchTable.cs
index 58957a701..1a14164c3 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/DomainServiceObjectDispatchTable.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/DomainServiceObjectDispatchTable.cs
@@ -19,7 +19,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
                 return SfResult.InvalidHeaderSize;
             }
 
-            var inHeader = MemoryMarshal.Cast<byte, CmifDomainInHeader>(inRawData)[0];
+            CmifDomainInHeader inHeader = MemoryMarshal.Cast<byte, CmifDomainInHeader>(inRawData)[0];
 
             ReadOnlySpan<byte> inDomainRawData = inRawData[Unsafe.SizeOf<CmifDomainInHeader>()..];
 
@@ -28,7 +28,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
             switch (inHeader.Type)
             {
                 case CmifDomainRequestType.SendMessage:
-                    var targetObject = domain.GetObject(targetObjectId);
+                    ServiceObjectHolder targetObject = domain.GetObject(targetObjectId);
                     if (targetObject == null)
                     {
                         return SfResult.TargetNotFound;
@@ -48,7 +48,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
 
                     int[] inObjectIds = new int[inHeader.ObjectsCount];
 
-                    var domainProcessor = new DomainServiceObjectProcessor(domain, inObjectIds);
+                    DomainServiceObjectProcessor domainProcessor = new DomainServiceObjectProcessor(domain, inObjectIds);
 
                     if (context.Processor == null)
                     {
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/DomainServiceObjectProcessor.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/DomainServiceObjectProcessor.cs
index f677e0598..f99584610 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/DomainServiceObjectProcessor.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/DomainServiceObjectProcessor.cs
@@ -44,7 +44,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
 
         public override ServerMessageRuntimeMetadata GetRuntimeMetadata()
         {
-            var runtimeMetadata = _implProcessor.GetRuntimeMetadata();
+            ServerMessageRuntimeMetadata runtimeMetadata = _implProcessor.GetRuntimeMetadata();
 
             return new ServerMessageRuntimeMetadata(
                 (ushort)(runtimeMetadata.InDataSize + runtimeMetadata.InObjectsCount * sizeof(int)),
@@ -84,7 +84,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
 
         public override HipcMessageData PrepareForReply(scoped ref ServiceDispatchContext context, out Span<byte> outRawData, ServerMessageRuntimeMetadata runtimeMetadata)
         {
-            var response = _implProcessor.PrepareForReply(ref context, out outRawData, runtimeMetadata);
+            HipcMessageData response = _implProcessor.PrepareForReply(ref context, out outRawData, runtimeMetadata);
 
             int outHeaderSize = Unsafe.SizeOf<CmifDomainOutHeader>();
             int implOutDataTotalSize = ImplOutDataTotalSize;
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServerDomainManager.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServerDomainManager.cs
index 13f9fb7a9..ae909c9b7 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServerDomainManager.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServerDomainManager.cs
@@ -45,7 +45,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
                         return null;
                     }
 
-                    var entry = _freeList.First.Value;
+                    Entry entry = _freeList.First.Value;
                     _freeList.RemoveFirst();
                     return entry;
                 }
@@ -92,7 +92,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
 
             public override ServiceObjectHolder GetObject(int id)
             {
-                var entry = _manager._entryManager.GetEntry(id);
+                EntryManager.Entry entry = _manager._entryManager.GetEntry(id);
                 if (entry == null)
                 {
                     return null;
@@ -116,7 +116,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
 
             public override void RegisterObject(int id, ServiceObjectHolder obj)
             {
-                var entry = _manager._entryManager.GetEntry(id);
+                EntryManager.Entry entry = _manager._entryManager.GetEntry(id);
                 DebugUtil.Assert(entry != null);
 
                 lock (_manager._entryOwnerLock)
@@ -133,7 +133,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
             {
                 for (int i = 0; i < outIds.Length; i++)
                 {
-                    var entry = _manager._entryManager.AllocateEntry();
+                    EntryManager.Entry entry = _manager._entryManager.AllocateEntry();
                     if (entry == null)
                     {
                         return SfResult.OutOfDomainEntries;
@@ -149,7 +149,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
 
             public override ServiceObjectHolder UnregisterObject(int id)
             {
-                var entry = _manager._entryManager.GetEntry(id);
+                EntryManager.Entry entry = _manager._entryManager.GetEntry(id);
                 if (entry == null)
                 {
                     return null;
@@ -186,7 +186,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
             {
                 for (int i = 0; i < ids.Length; i++)
                 {
-                    var entry = _manager._entryManager.GetEntry(ids[i]);
+                    EntryManager.Entry entry = _manager._entryManager.GetEntry(ids[i]);
 
                     DebugUtil.Assert(entry != null);
                     DebugUtil.Assert(entry.Owner == null);
@@ -197,7 +197,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
 
             public void Dispose()
             {
-                foreach (var entry in _entries)
+                foreach (EntryManager.Entry entry in _entries)
                 {
                     if (entry.Obj.ServiceObject is IDisposable disposableObj)
                     {
@@ -230,7 +230,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
                     return null;
                 }
 
-                var domain = new Domain(this);
+                Domain domain = new Domain(this);
                 _domains.Add(domain);
                 return domain;
             }
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchTableBase.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchTableBase.cs
index 2625a4c3e..f2292feff 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchTableBase.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchTableBase.cs
@@ -35,9 +35,9 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
             ReadOnlySpan<byte> inMessageRawData = inRawData[Unsafe.SizeOf<CmifInHeader>()..];
             uint commandId = inHeader.CommandId;
 
-            var outHeader = Span<CmifOutHeader>.Empty;
+            Span<CmifOutHeader> outHeader = Span<CmifOutHeader>.Empty;
 
-            if (!entries.TryGetValue((int)commandId, out var commandHandler))
+            if (!entries.TryGetValue((int)commandId, out CommandHandler commandHandler))
             {
                 if (HorizonStatic.Options.IgnoreMissingServices)
                 {
@@ -87,7 +87,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
 
         private static void PrepareForStubReply(scoped ref ServiceDispatchContext context, out Span<byte> outRawData)
         {
-            var response = HipcMessage.WriteResponse(context.OutMessageBuffer, 0, 0x20 / sizeof(uint), 0, 0);
+            HipcMessageData response = HipcMessage.WriteResponse(context.OutMessageBuffer, 0, 0x20 / sizeof(uint), 0, 0);
             outRawData = MemoryMarshal.Cast<uint, byte>(response.DataWords);
         }
     }
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/CommandHandler.cs b/src/Ryujinx.Horizon/Sdk/Sf/CommandHandler.cs
index d0efe0d4b..3dcf4a263 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/CommandHandler.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/CommandHandler.cs
@@ -37,7 +37,7 @@ namespace Ryujinx.Horizon.Sdk.Sf
                 context.Processor.SetImplementationProcessor(_processor);
             }
 
-            var runtimeMetadata = context.Processor.GetRuntimeMetadata();
+            ServerMessageRuntimeMetadata runtimeMetadata = context.Processor.GetRuntimeMetadata();
             Result result = context.Processor.PrepareForProcess(ref context, runtimeMetadata);
 
             return result.IsFailure ? result : _invoke(ref context, _processor, runtimeMetadata, inRawData, ref outHeader);
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/CommandSerialization.cs b/src/Ryujinx.Horizon/Sdk/Sf/CommandSerialization.cs
index 7f5284648..53bbe56f9 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/CommandSerialization.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/CommandSerialization.cs
@@ -27,7 +27,7 @@ namespace Ryujinx.Horizon.Sdk.Sf
 
         public static ref T GetRef<T>(PointerAndSize bufferRange) where T : unmanaged
         {
-            var writableRegion = GetWritableRegion(bufferRange);
+            WritableRegion writableRegion = GetWritableRegion(bufferRange);
 
             return ref MemoryMarshal.Cast<byte, T>(writableRegion.Memory.Span)[0];
         }
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Hipc/Api.cs b/src/Ryujinx.Horizon/Sdk/Sf/Hipc/Api.cs
index 5f3f67061..4c8dacb8f 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Hipc/Api.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Hipc/Api.cs
@@ -35,7 +35,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Hipc
 
             handles[0] = sessionHandle;
 
-            var tlsSpan = HorizonStatic.AddressSpace.GetSpan(HorizonStatic.ThreadContext.TlsAddress, TlsMessageBufferSize);
+            ReadOnlySpan<byte> tlsSpan = HorizonStatic.AddressSpace.GetSpan(HorizonStatic.ThreadContext.TlsAddress, TlsMessageBufferSize);
 
             if (messageBuffer == tlsSpan)
             {
@@ -56,7 +56,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Hipc
 
         private static Result ReplyImpl(int sessionHandle, ReadOnlySpan<byte> messageBuffer)
         {
-            var tlsSpan = HorizonStatic.AddressSpace.GetSpan(HorizonStatic.ThreadContext.TlsAddress, TlsMessageBufferSize);
+            ReadOnlySpan<byte> tlsSpan = HorizonStatic.AddressSpace.GetSpan(HorizonStatic.ThreadContext.TlsAddress, TlsMessageBufferSize);
 
             if (messageBuffer == tlsSpan)
             {
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Hipc/HipcManager.cs b/src/Ryujinx.Horizon/Sdk/Sf/Hipc/HipcManager.cs
index 4f0bbb014..953f9e755 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Hipc/HipcManager.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Hipc/HipcManager.cs
@@ -20,7 +20,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Hipc
         {
             objectId = 0;
 
-            var domain = _manager.Domain.AllocateDomainServiceObject();
+            DomainServiceObject domain = _manager.Domain.AllocateDomainServiceObject();
             if (domain == null)
             {
                 return HipcResult.OutOfDomains;
@@ -66,7 +66,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Hipc
                 return HipcResult.TargetNotDomain;
             }
 
-            var obj = domain.GetObject(objectId);
+            ServiceObjectHolder obj = domain.GetObject(objectId);
             if (obj == null)
             {
                 return HipcResult.DomainObjectNotFound;
@@ -100,7 +100,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Hipc
         {
             clientHandle = 0;
 
-            var clone = _session.ServiceObjectHolder.Clone();
+            ServiceObjectHolder clone = _session.ServiceObjectHolder.Clone();
             if (clone == null)
             {
                 return HipcResult.DomainObjectNotFound;
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Hipc/ServerManagerBase.cs b/src/Ryujinx.Horizon/Sdk/Sf/Hipc/ServerManagerBase.cs
index 31ca264e3..669dc5ee3 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Hipc/ServerManagerBase.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Hipc/ServerManagerBase.cs
@@ -2,6 +2,7 @@ using Ryujinx.Horizon.Common;
 using Ryujinx.Horizon.Sdk.OsTypes;
 using Ryujinx.Horizon.Sdk.Sf.Cmif;
 using Ryujinx.Horizon.Sdk.Sm;
+using Ryujinx.Memory;
 using System;
 using System.Linq;
 using System.Threading;
@@ -257,14 +258,14 @@ namespace Ryujinx.Horizon.Sdk.Sf.Hipc
 
             ServerSession session = (ServerSession)holder;
 
-            using var tlsMessage = HorizonStatic.AddressSpace.GetWritableRegion(HorizonStatic.ThreadContext.TlsAddress, Api.TlsMessageBufferSize);
+            using WritableRegion tlsMessage = HorizonStatic.AddressSpace.GetWritableRegion(HorizonStatic.ThreadContext.TlsAddress, Api.TlsMessageBufferSize);
 
             Result result;
 
             if (_canDeferInvokeRequest)
             {
                 // If the request is deferred, we save the message on a temporary buffer to process it later.
-                using var savedMessage = HorizonStatic.AddressSpace.GetWritableRegion(session.SavedMessage.Address, (int)session.SavedMessage.Size);
+                using WritableRegion savedMessage = HorizonStatic.AddressSpace.GetWritableRegion(session.SavedMessage.Address, (int)session.SavedMessage.Size);
 
                 DebugUtil.Assert(tlsMessage.Memory.Length == savedMessage.Memory.Length);
 
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Hipc/ServerSessionManager.cs b/src/Ryujinx.Horizon/Sdk/Sf/Hipc/ServerSessionManager.cs
index bd5a48444..f902768cc 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Hipc/ServerSessionManager.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Hipc/ServerSessionManager.cs
@@ -186,7 +186,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Hipc
         {
             CommandType commandType = GetCmifCommandType(inMessage);
 
-            using var _ = new ScopedInlineContextChange(GetInlineContext(commandType, inMessage));
+            using ScopedInlineContextChange _ = new ScopedInlineContextChange(GetInlineContext(commandType, inMessage));
 
             return commandType switch
             {
@@ -282,7 +282,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Hipc
                 return HipcResult.InvalidRequestSize;
             }
 
-            var dispatchCtx = new ServiceDispatchContext
+            ServiceDispatchContext dispatchCtx = new ServiceDispatchContext
             {
                 ServiceObject = objectHolder.ServiceObject,
                 Manager = this,
@@ -312,7 +312,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Hipc
 
             result = Api.Reply(session.SessionHandle, outMessage);
 
-            ref var handlesToClose = ref dispatchCtx.HandlesToClose;
+            ref HandlesToClose handlesToClose = ref dispatchCtx.HandlesToClose;
 
             for (int i = 0; i < handlesToClose.Count; i++)
             {
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/HipcCommandProcessor.cs b/src/Ryujinx.Horizon/Sdk/Sf/HipcCommandProcessor.cs
index dc34f791a..b553115eb 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/HipcCommandProcessor.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/HipcCommandProcessor.cs
@@ -46,7 +46,7 @@ namespace Ryujinx.Horizon.Sdk.Sf
                 switch (argInfo.Type)
                 {
                     case CommandArgType.Buffer:
-                        var flags = argInfo.BufferFlags;
+                        HipcBufferFlags flags = argInfo.BufferFlags;
 
                         if (flags.HasFlag(HipcBufferFlags.In))
                         {
@@ -146,7 +146,7 @@ namespace Ryujinx.Horizon.Sdk.Sf
                     continue;
                 }
 
-                var flags = _args[i].BufferFlags;
+                HipcBufferFlags flags = _args[i].BufferFlags;
                 bool isMapAlias;
 
                 if (flags.HasFlag(HipcBufferFlags.MapAlias))
@@ -159,7 +159,7 @@ namespace Ryujinx.Horizon.Sdk.Sf
                 }
                 else /* if (flags.HasFlag(HipcBufferFlags.HipcAutoSelect)) */
                 {
-                    var descriptor = flags.HasFlag(HipcBufferFlags.In)
+                    HipcBufferDescriptor descriptor = flags.HasFlag(HipcBufferFlags.In)
                         ? context.Request.Data.SendBuffers[sendMapAliasIndex]
                         : context.Request.Data.ReceiveBuffers[recvMapAliasIndex];
 
@@ -170,7 +170,7 @@ namespace Ryujinx.Horizon.Sdk.Sf
 
                 if (isMapAlias)
                 {
-                    var descriptor = flags.HasFlag(HipcBufferFlags.In)
+                    HipcBufferDescriptor descriptor = flags.HasFlag(HipcBufferFlags.In)
                         ? context.Request.Data.SendBuffers[sendMapAliasIndex++]
                         : context.Request.Data.ReceiveBuffers[recvMapAliasIndex++];
 
@@ -185,7 +185,7 @@ namespace Ryujinx.Horizon.Sdk.Sf
                 {
                     if (flags.HasFlag(HipcBufferFlags.In))
                     {
-                        var descriptor = context.Request.Data.SendStatics[sendPointerIndex++];
+                        HipcStaticDescriptor descriptor = context.Request.Data.SendStatics[sendPointerIndex++];
                         ulong address = descriptor.Address;
                         ulong size = descriptor.Size;
 
@@ -206,8 +206,8 @@ namespace Ryujinx.Horizon.Sdk.Sf
                         }
                         else
                         {
-                            var data = MemoryMarshal.Cast<uint, byte>(context.Request.Data.DataWordsPadded);
-                            var recvPointerSizes = MemoryMarshal.Cast<byte, ushort>(data[runtimeMetadata.UnfixedOutPointerSizeOffset..]);
+                            Span<byte> data = MemoryMarshal.Cast<uint, byte>(context.Request.Data.DataWordsPadded);
+                            Span<ushort> recvPointerSizes = MemoryMarshal.Cast<byte, ushort>(data[runtimeMetadata.UnfixedOutPointerSizeOffset..]);
 
                             size = recvPointerSizes[unfixedRecvPointerIndex++];
                         }
@@ -257,13 +257,13 @@ namespace Ryujinx.Horizon.Sdk.Sf
                     continue;
                 }
 
-                var flags = _args[i].BufferFlags;
+                HipcBufferFlags flags = _args[i].BufferFlags;
                 if (!flags.HasFlag(HipcBufferFlags.Out))
                 {
                     continue;
                 }
 
-                var buffer = _bufferRanges[i];
+                PointerAndSize buffer = _bufferRanges[i];
 
                 if (flags.HasFlag(HipcBufferFlags.Pointer))
                 {
@@ -303,7 +303,7 @@ namespace Ryujinx.Horizon.Sdk.Sf
 
         public override Result PrepareForProcess(ref ServiceDispatchContext context, ServerMessageRuntimeMetadata runtimeMetadata)
         {
-            ref var meta = ref context.Request.Meta;
+            ref HipcMetadata meta = ref context.Request.Meta;
             bool requestValid = true;
             requestValid &= meta.SendPid == _hasInProcessIdHolder;
             requestValid &= meta.SendStaticsCount == _inPointerBuffersCount;
@@ -346,7 +346,7 @@ namespace Ryujinx.Horizon.Sdk.Sf
                 }
 
                 int index = inObjectIndex++;
-                var inObject = inObjects[index];
+                ServiceObjectHolder inObject = inObjects[index];
 
                 objects[index] = inObject?.ServiceObject;
             }
@@ -362,7 +362,7 @@ namespace Ryujinx.Horizon.Sdk.Sf
         public override HipcMessageData PrepareForReply(scoped ref ServiceDispatchContext context, out Span<byte> outRawData, ServerMessageRuntimeMetadata runtimeMetadata)
         {
             int rawDataSize = OutRawDataSize + runtimeMetadata.OutHeadersSize;
-            var response = HipcMessage.WriteResponse(
+            HipcMessageData response = HipcMessage.WriteResponse(
                 context.OutMessageBuffer,
                 _outPointerBuffersCount,
                 (BitUtils.AlignUp(rawDataSize, 4) + 0x10) / sizeof(uint),
@@ -376,7 +376,7 @@ namespace Ryujinx.Horizon.Sdk.Sf
         public override void PrepareForErrorReply(scoped ref ServiceDispatchContext context, out Span<byte> outRawData, ServerMessageRuntimeMetadata runtimeMetadata)
         {
             int rawDataSize = runtimeMetadata.OutHeadersSize;
-            var response = HipcMessage.WriteResponse(
+            HipcMessageData response = HipcMessage.WriteResponse(
                 context.OutMessageBuffer,
                 0,
                 (BitUtils.AlignUp(rawDataSize, 4) + 0x10) / sizeof(uint),
diff --git a/src/Ryujinx.Horizon/Sm/Impl/ServiceManager.cs b/src/Ryujinx.Horizon/Sm/Impl/ServiceManager.cs
index 177cc0d3d..c13b85c4c 100644
--- a/src/Ryujinx.Horizon/Sm/Impl/ServiceManager.cs
+++ b/src/Ryujinx.Horizon/Sm/Impl/ServiceManager.cs
@@ -120,7 +120,7 @@ namespace Ryujinx.Horizon.Sm.Impl
                 return SmResult.NotRegistered;
             }
 
-            ref var serviceInfo = ref _services[serviceIndex];
+            ref ServiceInfo serviceInfo = ref _services[serviceIndex];
             if (serviceInfo.OwnerProcessId != processId)
             {
                 return SmResult.NotAllowed;