misc: chore: Use explicit types in Horizon project

This commit is contained in:
Evan Husted 2025-01-25 14:14:13 -06:00
parent 5eba42fa06
commit 69e0b79bd9
23 changed files with 71 additions and 66 deletions

View File

@ -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())
{

View File

@ -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())
{

View File

@ -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)
{

View File

@ -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();

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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();

View File

@ -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;

View File

@ -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)

View File

@ -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()
{

View File

@ -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)
{

View File

@ -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;

View File

@ -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;
}

View File

@ -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);
}
}

View File

@ -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);

View File

@ -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];
}

View File

@ -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)
{

View File

@ -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;

View File

@ -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);

View File

@ -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++)
{

View File

@ -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),

View File

@ -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;