mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2026-06-27 22:59:05 +00:00
misc: chore: Use explicit types in Horizon project
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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];
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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++)
|
||||
{
|
||||
|
||||
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user