aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Horizon/Sdk/Sf/Cmif
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Horizon/Sdk/Sf/Cmif')
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifDomainInHeader.cs10
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifDomainOutHeader.cs2
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifDomainRequestType.cs4
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifMessage.cs64
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifOutHeader.cs8
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifRequest.cs8
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifRequestFormat.cs28
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifResponse.cs4
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sf/Cmif/CommandType.cs14
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sf/Cmif/DomainServiceObjectDispatchTable.cs2
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sf/Cmif/DomainServiceObjectProcessor.cs1
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sf/Cmif/HandlesToClose.cs39
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sf/Cmif/PointerAndSize.cs4
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sf/Cmif/ScopedInlineContextChange.cs2
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServerDomainManager.cs2
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServerMessageRuntimeMetadata.cs34
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchContext.cs18
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchMeta.cs2
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchTable.cs4
-rw-r--r--src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchTableBase.cs8
20 files changed, 137 insertions, 121 deletions
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifDomainInHeader.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifDomainInHeader.cs
index beaff613..88211501 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifDomainInHeader.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifDomainInHeader.cs
@@ -3,10 +3,10 @@
struct CmifDomainInHeader
{
public CmifDomainRequestType Type;
- public byte ObjectsCount;
- public ushort DataSize;
- public int ObjectId;
- public uint Padding;
- public uint Token;
+ public byte ObjectsCount;
+ public ushort DataSize;
+ public int ObjectId;
+ public uint Padding;
+ public uint Token;
}
}
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifDomainOutHeader.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifDomainOutHeader.cs
index 2086d24c..89766a42 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifDomainOutHeader.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifDomainOutHeader.cs
@@ -2,7 +2,7 @@
{
struct CmifDomainOutHeader
{
-#pragma warning disable CS0649
+#pragma warning disable CS0649 // Field is never assigned to
public uint ObjectsCount;
public uint Padding;
public uint Padding2;
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifDomainRequestType.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifDomainRequestType.cs
index 1a02e082..4e52ff93 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifDomainRequestType.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifDomainRequestType.cs
@@ -2,8 +2,8 @@
{
enum CmifDomainRequestType : byte
{
- Invalid = 0,
+ Invalid = 0,
SendMessage = 1,
- Close = 2
+ Close = 2,
}
}
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifMessage.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifMessage.cs
index 0d23d33b..f0b6f0c3 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifMessage.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifMessage.cs
@@ -8,7 +8,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
{
static class CmifMessage
{
- public const uint CmifInHeaderMagic = 0x49434653; // SFCI
+ public const uint CmifInHeaderMagic = 0x49434653; // SFCI
public const uint CmifOutHeaderMagic = 0x4f434653; // SFCO
public static CmifRequest CreateRequest(Span<byte> output, CmifRequestFormat format)
@@ -21,10 +21,10 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
}
totalSize += Unsafe.SizeOf<CmifInHeader>() + format.DataSize;
- totalSize = (totalSize + 1) & ~1;
+ totalSize = (totalSize + 1) & ~1;
int outPointerSizeTableOffset = totalSize;
- int outPointerSizeTableSize = format.OutAutoBuffersCount + format.OutPointersCount;
+ int outPointerSizeTableSize = format.OutAutoBuffersCount + format.OutPointersCount;
totalSize += sizeof(ushort) * outPointerSizeTableSize;
@@ -32,19 +32,19 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
CmifRequest request = new()
{
- Hipc = HipcMessage.WriteMessage(output, new HipcMetadata()
+ Hipc = HipcMessage.WriteMessage(output, new HipcMetadata
{
- Type = format.Context != 0 ? (int)CommandType.RequestWithContext : (int)CommandType.Request,
- SendStaticsCount = format.InAutoBuffersCount + format.InPointersCount,
- SendBuffersCount = format.InAutoBuffersCount + format.InBuffersCount,
- ReceiveBuffersCount = format.OutAutoBuffersCount + format.OutBuffersCount,
+ Type = format.Context != 0 ? (int)CommandType.RequestWithContext : (int)CommandType.Request,
+ SendStaticsCount = format.InAutoBuffersCount + format.InPointersCount,
+ SendBuffersCount = format.InAutoBuffersCount + format.InBuffersCount,
+ ReceiveBuffersCount = format.OutAutoBuffersCount + format.OutBuffersCount,
ExchangeBuffersCount = format.InOutBuffersCount,
- DataWordsCount = rawDataSizeInWords,
- ReceiveStaticsCount = outPointerSizeTableSize + format.OutFixedPointersCount,
- SendPid = format.SendPid,
- CopyHandlesCount = format.HandlesCount,
- MoveHandlesCount = 0
- })
+ DataWordsCount = rawDataSizeInWords,
+ ReceiveStaticsCount = outPointerSizeTableSize + format.OutFixedPointersCount,
+ SendPid = format.SendPid,
+ CopyHandlesCount = format.HandlesCount,
+ MoveHandlesCount = 0,
+ }),
};
Span<uint> data = request.Hipc.DataWords;
@@ -55,14 +55,14 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
int payloadSize = Unsafe.SizeOf<CmifInHeader>() + format.DataSize;
- domainHeader = new CmifDomainInHeader()
+ domainHeader = new CmifDomainInHeader
{
- Type = CmifDomainRequestType.SendMessage,
+ Type = CmifDomainRequestType.SendMessage,
ObjectsCount = (byte)format.ObjectsCount,
- DataSize = (ushort)payloadSize,
- ObjectId = format.ObjectId,
- Padding = 0,
- Token = format.Context
+ DataSize = (ushort)payloadSize,
+ ObjectId = format.ObjectId,
+ Padding = 0,
+ Token = format.Context,
};
data = data[(Unsafe.SizeOf<CmifDomainInHeader>() / sizeof(uint))..];
@@ -72,12 +72,12 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
ref CmifInHeader header = ref MemoryMarshal.Cast<uint, CmifInHeader>(data)[0];
- header = new CmifInHeader()
+ header = new CmifInHeader
{
- Magic = CmifInHeaderMagic,
- Version = format.Context != 0 ? 1u : 0u,
+ Magic = CmifInHeaderMagic,
+ Version = format.Context != 0 ? 1u : 0u,
CommandId = format.RequestId,
- Token = format.ObjectId != 0 ? 0u : format.Context
+ Token = format.ObjectId != 0 ? 0u : format.Context,
};
request.Data = MemoryMarshal.Cast<uint, byte>(data)[Unsafe.SizeOf<CmifInHeader>()..];
@@ -86,7 +86,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
Span<byte> outPointerTable = MemoryMarshal.Cast<uint, byte>(request.Hipc.DataWords)[(outPointerSizeTableOffset - paddingSizeBefore)..];
- request.OutPointerSizes = MemoryMarshal.Cast<byte, ushort>(outPointerTable);
+ request.OutPointerSizes = MemoryMarshal.Cast<byte, ushort>(outPointerTable);
request.ServerPointerSize = format.ServerPointerSize;
return request;
@@ -96,12 +96,12 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
{
HipcMessage responseMessage = new(input);
- Span<byte> data = MemoryMarshal.Cast<uint, byte>(responseMessage.Data.DataWords);
+ Span<byte> data = MemoryMarshal.Cast<uint, byte>(responseMessage.Data.DataWords);
Span<uint> objects = Span<uint>.Empty;
if (isDomain)
{
- data = data[Unsafe.SizeOf<CmifDomainOutHeader>()..];
+ data = data[Unsafe.SizeOf<CmifDomainOutHeader>()..];
objects = MemoryMarshal.Cast<byte, uint>(data[(Unsafe.SizeOf<CmifOutHeader>() + size)..]);
}
@@ -121,15 +121,15 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
return header.Result;
}
- response = new CmifResponse()
+ response = new CmifResponse
{
- Data = data[Unsafe.SizeOf<CmifOutHeader>()..],
- Objects = objects,
+ Data = data[Unsafe.SizeOf<CmifOutHeader>()..],
+ Objects = objects,
CopyHandles = responseMessage.Data.CopyHandles,
- MoveHandles = responseMessage.Data.MoveHandles
+ MoveHandles = responseMessage.Data.MoveHandles,
};
return Result.Success;
}
}
-} \ No newline at end of file
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifOutHeader.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifOutHeader.cs
index 00b9d2bd..ae32e78d 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifOutHeader.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifOutHeader.cs
@@ -4,11 +4,11 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
{
struct CmifOutHeader
{
-#pragma warning disable CS0649
- public uint Magic;
- public uint Version;
+#pragma warning disable CS0649 // Field is never assigned to
+ public uint Magic;
+ public uint Version;
public Result Result;
- public uint Token;
+ public uint Token;
#pragma warning restore CS0649
}
}
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifRequest.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifRequest.cs
index e44a84ec..80772ad3 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifRequest.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifRequest.cs
@@ -6,9 +6,9 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
ref struct CmifRequest
{
public HipcMessageData Hipc;
- public Span<byte> Data;
- public Span<ushort> OutPointerSizes;
- public Span<uint> Objects;
- public int ServerPointerSize;
+ public Span<byte> Data;
+ public Span<ushort> OutPointerSizes;
+ public Span<uint> Objects;
+ public int ServerPointerSize;
}
}
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifRequestFormat.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifRequestFormat.cs
index 592f11f4..c32646e3 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifRequestFormat.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifRequestFormat.cs
@@ -2,22 +2,22 @@
{
struct CmifRequestFormat
{
-#pragma warning disable CS0649
- public int ObjectId;
+#pragma warning disable CS0649 // Field is never assigned to
+ public int ObjectId;
public uint RequestId;
public uint Context;
- public int DataSize;
- public int ServerPointerSize;
- public int InAutoBuffersCount;
- public int OutAutoBuffersCount;
- public int InBuffersCount;
- public int OutBuffersCount;
- public int InOutBuffersCount;
- public int InPointersCount;
- public int OutPointersCount;
- public int OutFixedPointersCount;
- public int ObjectsCount;
- public int HandlesCount;
+ public int DataSize;
+ public int ServerPointerSize;
+ public int InAutoBuffersCount;
+ public int OutAutoBuffersCount;
+ public int InBuffersCount;
+ public int OutBuffersCount;
+ public int InOutBuffersCount;
+ public int InPointersCount;
+ public int OutPointersCount;
+ public int OutFixedPointersCount;
+ public int ObjectsCount;
+ public int HandlesCount;
public bool SendPid;
#pragma warning restore CS0649
}
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifResponse.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifResponse.cs
index 2ff31eb6..d1d8dc9c 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifResponse.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CmifResponse.cs
@@ -6,7 +6,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
{
public ReadOnlySpan<byte> Data;
public ReadOnlySpan<uint> Objects;
- public ReadOnlySpan<int> CopyHandles;
- public ReadOnlySpan<int> MoveHandles;
+ public ReadOnlySpan<int> CopyHandles;
+ public ReadOnlySpan<int> MoveHandles;
}
}
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CommandType.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CommandType.cs
index 82c0648b..4f6c50fc 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CommandType.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/CommandType.cs
@@ -2,13 +2,13 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
{
enum CommandType
{
- Invalid = 0,
- LegacyRequest = 1,
- Close = 2,
- LegacyControl = 3,
- Request = 4,
- Control = 5,
+ Invalid = 0,
+ LegacyRequest = 1,
+ Close = 2,
+ LegacyControl = 3,
+ Request = 4,
+ Control = 5,
RequestWithContext = 6,
- ControlWithContext = 7
+ ControlWithContext = 7,
}
}
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/DomainServiceObjectDispatchTable.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/DomainServiceObjectDispatchTable.cs
index b0b4498d..ccfacd90 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/DomainServiceObjectDispatchTable.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/DomainServiceObjectDispatchTable.cs
@@ -12,7 +12,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
return ProcessMessageImpl(ref context, ((DomainServiceObject)context.ServiceObject).GetServerDomain(), inRawData);
}
- private Result ProcessMessageImpl(ref ServiceDispatchContext context, ServerDomainBase domain, ReadOnlySpan<byte> inRawData)
+ private static Result ProcessMessageImpl(ref ServiceDispatchContext context, ServerDomainBase domain, ReadOnlySpan<byte> inRawData)
{
if (inRawData.Length < Unsafe.SizeOf<CmifDomainInHeader>())
{
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/DomainServiceObjectProcessor.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/DomainServiceObjectProcessor.cs
index 796b8a78..20ac5f10 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/DomainServiceObjectProcessor.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/DomainServiceObjectProcessor.cs
@@ -19,7 +19,6 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
private int InObjectsCount => _inObjectIds.Length;
private int OutObjectsCount => _implMetadata.OutObjectsCount;
- private int ImplOutHeadersSize => _implMetadata.OutHeadersSize;
private int ImplOutDataTotalSize => _implMetadata.OutDataSize + _implMetadata.OutHeadersSize;
public DomainServiceObjectProcessor(ServerDomainBase domain, int[] inObjectIds)
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/HandlesToClose.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/HandlesToClose.cs
index 0f3b259a..3c37e8b2 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/HandlesToClose.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/HandlesToClose.cs
@@ -17,7 +17,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
public int this[int index]
{
- get
+ readonly get
{
return index switch
{
@@ -29,22 +29,39 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
5 => _handle5,
6 => _handle6,
7 => _handle7,
- _ => throw new IndexOutOfRangeException()
+ _ => throw new IndexOutOfRangeException(),
};
}
set
{
switch (index)
{
- case 0: _handle0 = value; break;
- case 1: _handle1 = value; break;
- case 2: _handle2 = value; break;
- case 3: _handle3 = value; break;
- case 4: _handle4 = value; break;
- case 5: _handle5 = value; break;
- case 6: _handle6 = value; break;
- case 7: _handle7 = value; break;
- default: throw new IndexOutOfRangeException();
+ case 0:
+ _handle0 = value;
+ break;
+ case 1:
+ _handle1 = value;
+ break;
+ case 2:
+ _handle2 = value;
+ break;
+ case 3:
+ _handle3 = value;
+ break;
+ case 4:
+ _handle4 = value;
+ break;
+ case 5:
+ _handle5 = value;
+ break;
+ case 6:
+ _handle6 = value;
+ break;
+ case 7:
+ _handle7 = value;
+ break;
+ default:
+ throw new IndexOutOfRangeException();
}
}
}
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/PointerAndSize.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/PointerAndSize.cs
index ad0e1824..23780c7c 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/PointerAndSize.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/PointerAndSize.cs
@@ -1,6 +1,6 @@
namespace Ryujinx.Horizon.Sdk.Sf.Cmif
{
- struct PointerAndSize
+ readonly struct PointerAndSize
{
public static PointerAndSize Empty => new(0UL, 0UL);
@@ -11,7 +11,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
public PointerAndSize(ulong address, ulong size)
{
Address = address;
- Size = size;
+ Size = size;
}
}
}
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ScopedInlineContextChange.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ScopedInlineContextChange.cs
index eabe544f..0126d1f6 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ScopedInlineContextChange.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ScopedInlineContextChange.cs
@@ -2,7 +2,7 @@ using System;
namespace Ryujinx.Horizon.Sdk.Sf.Cmif
{
- struct ScopedInlineContextChange : IDisposable
+ readonly struct ScopedInlineContextChange : IDisposable
{
private readonly int _previousContext;
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServerDomainManager.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServerDomainManager.cs
index f789b6c0..f0222991 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServerDomainManager.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServerDomainManager.cs
@@ -211,7 +211,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
private readonly EntryManager _entryManager;
private readonly object _entryOwnerLock;
private readonly HashSet<Domain> _domains;
- private int _maxDomains;
+ private readonly int _maxDomains;
public ServerDomainManager(int entryCount, int maxDomains)
{
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServerMessageRuntimeMetadata.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServerMessageRuntimeMetadata.cs
index 6a92e8d5..20667602 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServerMessageRuntimeMetadata.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServerMessageRuntimeMetadata.cs
@@ -1,30 +1,30 @@
namespace Ryujinx.Horizon.Sdk.Sf.Cmif
{
- struct ServerMessageRuntimeMetadata
+ readonly struct ServerMessageRuntimeMetadata
{
- public ushort InDataSize { get; }
- public ushort OutDataSize { get; }
- public byte InHeadersSize { get; }
- public byte OutHeadersSize { get; }
- public byte InObjectsCount { get; }
- public byte OutObjectsCount { get; }
+ public ushort InDataSize { get; }
+ public ushort OutDataSize { get; }
+ public byte InHeadersSize { get; }
+ public byte OutHeadersSize { get; }
+ public byte InObjectsCount { get; }
+ public byte OutObjectsCount { get; }
public int UnfixedOutPointerSizeOffset => InDataSize + InHeadersSize + 0x10;
public ServerMessageRuntimeMetadata(
ushort inDataSize,
ushort outDataSize,
- byte inHeadersSize,
- byte outHeadersSize,
- byte inObjectsCount,
- byte outObjectsCount)
+ byte inHeadersSize,
+ byte outHeadersSize,
+ byte inObjectsCount,
+ byte outObjectsCount)
{
- InDataSize = inDataSize;
- OutDataSize = outDataSize;
- InHeadersSize = inHeadersSize;
- OutHeadersSize = outHeadersSize;
- InObjectsCount = inObjectsCount;
+ InDataSize = inDataSize;
+ OutDataSize = outDataSize;
+ InHeadersSize = inHeadersSize;
+ OutHeadersSize = outHeadersSize;
+ InObjectsCount = inObjectsCount;
OutObjectsCount = outObjectsCount;
}
}
-} \ No newline at end of file
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchContext.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchContext.cs
index 31be810d..3339a1a6 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchContext.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchContext.cs
@@ -5,14 +5,14 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
{
ref struct ServiceDispatchContext
{
- public IServiceObject ServiceObject;
- public ServerSessionManager Manager;
- public ServerSession Session;
+ public IServiceObject ServiceObject;
+ public ServerSessionManager Manager;
+ public ServerSession Session;
public ServerMessageProcessor Processor;
- public HandlesToClose HandlesToClose;
- public PointerAndSize PointerBuffer;
- public ReadOnlySpan<byte> InMessageBuffer;
- public Span<byte> OutMessageBuffer;
- public HipcMessage Request;
+ public HandlesToClose HandlesToClose;
+ public PointerAndSize PointerBuffer;
+ public ReadOnlySpan<byte> InMessageBuffer;
+ public Span<byte> OutMessageBuffer;
+ public HipcMessage Request;
}
-} \ No newline at end of file
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchMeta.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchMeta.cs
index 7fbd8eb8..286e9414 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchMeta.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchMeta.cs
@@ -1,6 +1,6 @@
namespace Ryujinx.Horizon.Sdk.Sf.Cmif
{
- struct ServiceDispatchMeta
+ readonly struct ServiceDispatchMeta
{
public ServiceDispatchTableBase DispatchTable { get; }
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchTable.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchTable.cs
index 21b342df..145c1783 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchTable.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchTable.cs
@@ -12,7 +12,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
public ServiceDispatchTable(string objectName, IReadOnlyDictionary<int, CommandHandler> entries)
{
_objectName = objectName;
- _entries = entries;
+ _entries = entries;
}
public override Result ProcessMessage(ref ServiceDispatchContext context, ReadOnlySpan<byte> inRawData)
@@ -30,4 +30,4 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
return new ServiceDispatchTable(instance.GetType().Name, instance.GetCommandHandlers());
}
}
-} \ No newline at end of file
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchTableBase.cs b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchTableBase.cs
index 81600067..a127bfcd 100644
--- a/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchTableBase.cs
+++ b/src/Ryujinx.Horizon/Sdk/Sf/Cmif/ServiceDispatchTableBase.cs
@@ -14,7 +14,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
public abstract Result ProcessMessage(ref ServiceDispatchContext context, ReadOnlySpan<byte> inRawData);
- protected Result ProcessMessageImpl(ref ServiceDispatchContext context, ReadOnlySpan<byte> inRawData, IReadOnlyDictionary<int, CommandHandler> entries, string objectName)
+ protected static Result ProcessMessageImpl(ref ServiceDispatchContext context, ReadOnlySpan<byte> inRawData, IReadOnlyDictionary<int, CommandHandler> entries, string objectName)
{
if (inRawData.Length < Unsafe.SizeOf<CmifInHeader>())
{
@@ -44,7 +44,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
// If ignore missing services is enabled, just pretend that everything is fine.
PrepareForStubReply(ref context, out Span<byte> outRawData);
CommandHandler.GetCmifOutHeaderPointer(ref outHeader, ref outRawData);
- outHeader[0] = new CmifOutHeader() { Magic = CmifMessage.CmifOutHeaderMagic, Result = Result.Success };
+ outHeader[0] = new CmifOutHeader { Magic = CmifMessage.CmifOutHeaderMagic, Result = Result.Success };
Logger.Warning?.Print(LogClass.Service, $"Missing service {objectName} (command ID: {commandId}) ignored");
@@ -80,7 +80,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
return commandResult;
}
- outHeader[0] = new CmifOutHeader() { Magic = CmifMessage.CmifOutHeaderMagic, Result = commandResult };
+ outHeader[0] = new CmifOutHeader { Magic = CmifMessage.CmifOutHeaderMagic, Result = commandResult };
return Result.Success;
}
@@ -91,4 +91,4 @@ namespace Ryujinx.Horizon.Sdk.Sf.Cmif
outRawData = MemoryMarshal.Cast<uint, byte>(response.DataWords);
}
}
-} \ No newline at end of file
+}