diff --git a/src/Ryujinx.BuildValidationTasks/Ryujinx.BuildValidationTasks.csproj b/src/Ryujinx.BuildValidationTasks/Ryujinx.BuildValidationTasks.csproj index c89a044b2..31181bc55 100644 --- a/src/Ryujinx.BuildValidationTasks/Ryujinx.BuildValidationTasks.csproj +++ b/src/Ryujinx.BuildValidationTasks/Ryujinx.BuildValidationTasks.csproj @@ -7,7 +7,7 @@ - CommandIds { get; init; } + } + + private sealed class ServiceData + { + public required string Namespace { get; init; } + public required string TypeName { get; init; } + public required ImmutableArray CmifCommands { get; init; } + public required ImmutableArray TipcCommands { get; init; } + } + + public void Initialize(IncrementalGeneratorInitializationContext context) + { + var predicate = (SyntaxNode node, CancellationToken _) => node is MethodDeclarationSyntax; + var transform = (GeneratorAttributeSyntaxContext ctx, CancellationToken _) => + { + var target = (IMethodSymbol)ctx.TargetSymbol; + return new CommandData + { + Namespace = target.ContainingType.ContainingNamespace?.ToDisplayString(), + TypeName = target.ContainingType.Name, + MethodName = target.Name, + CommandIds = ctx.Attributes.Select(attr => (int)attr.ConstructorArguments[0].Value!).ToImmutableArray(), + }; + }; + var cmifCommands = + context.SyntaxProvider.ForAttributeWithMetadataName("Ryujinx.HLE.HOS.Services.CommandCmifAttribute", + predicate, + transform + ); + var tipcCommands = + context.SyntaxProvider.ForAttributeWithMetadataName("Ryujinx.HLE.HOS.Services.CommandTipcAttribute", + predicate, + transform + ); + + var allCommands = cmifCommands.Collect().Combine(tipcCommands.Collect()); + + var types = allCommands.SelectMany((commands, _) => + { + var cmif = commands.Left.ToLookup(c => (c.Namespace, c.TypeName)); + var tipc = commands.Right.ToLookup(c => (c.Namespace, c.TypeName)); + + var builder = ImmutableArray.CreateBuilder(); + + foreach (var type in cmif.Select(c => c.Key).Union(tipc.Select(t => t.Key))) + { + builder.Add(new ServiceData + { + Namespace = type.Namespace, + TypeName = type.TypeName, + CmifCommands = cmif.Contains(type) ? cmif[type].ToImmutableArray() : [], + TipcCommands = tipc.Contains(type) ? tipc[type].ToImmutableArray() : [], + }); + } + + return builder.DrainToImmutable(); + }); + + context.RegisterSourceOutput(types, (ctx, data) => + { + var generator = new CodeGenerator(); + + generator.AppendLine("using Ryujinx.HLE.HOS;"); + generator.AppendLine("using RC = global::Ryujinx.HLE.HOS.ResultCode;"); + + generator.EnterScope($"namespace {data.Namespace}"); + generator.EnterScope($"partial class {data.TypeName}"); + + generator.EnterScope("protected override RC InvokeCmifMethod(int id, ServiceCtx context)"); + generator.EnterScope("switch (id)"); + foreach (var command in data.CmifCommands) + { + generator.AppendLine($"case {string.Join(" or ", command.CommandIds)}:"); + generator.IncreaseIndentation(); + generator.AppendLine($"LogInvoke(\"{command.MethodName}\");"); + generator.AppendLine($"return (RC){command.MethodName}(context);"); + generator.DecreaseIndentation(); + } + generator.AppendLine("default: return base.InvokeCmifMethod(id, context);"); + generator.LeaveScope(); + generator.LeaveScope(); + + generator.EnterScope("public override int CmifCommandIdByMethodName(string name)"); + generator.EnterScope("return name switch"); + foreach (var command in data.CmifCommands) + { + // just return the first command with this name + generator.AppendLine($"\"{command.MethodName}\" => {command.CommandIds[0]},"); + } + generator.AppendLine("_ => base.CmifCommandIdByMethodName(name),"); + generator.LeaveScope(";"); + generator.LeaveScope(); + + generator.LeaveScope(); + generator.LeaveScope(); + + ctx.AddSource($"{data.Namespace}.{data.TypeName}.g.cs", generator.ToString()); + }); + } + } +} diff --git a/src/Ryujinx.HLE/Exceptions/ServiceNotImplementedException.cs b/src/Ryujinx.HLE/Exceptions/ServiceNotImplementedException.cs index 23068bf72..f1d453172 100644 --- a/src/Ryujinx.HLE/Exceptions/ServiceNotImplementedException.cs +++ b/src/Ryujinx.HLE/Exceptions/ServiceNotImplementedException.cs @@ -7,6 +7,7 @@ using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; +using System.Runtime.CompilerServices; using System.Text; namespace Ryujinx.HLE.Exceptions @@ -17,22 +18,22 @@ namespace Ryujinx.HLE.Exceptions public IpcService Service { get; } public ServiceCtx Context { get; } public IpcMessage Request { get; } + private string MethodName { get; } - public ServiceNotImplementedException(IpcService service, ServiceCtx context) - : this(service, context, "The service call is not implemented.") { } - - public ServiceNotImplementedException(IpcService service, ServiceCtx context, string message) : base(message) + public ServiceNotImplementedException(IpcService service, ServiceCtx context, string message = "The service call is not implemented.", [CallerMemberName] string methodName = null) : base(message) { Service = service; Context = context; Request = context.Request; + MethodName = methodName; } - public ServiceNotImplementedException(IpcService service, ServiceCtx context, string message, Exception inner) : base(message, inner) + public ServiceNotImplementedException(IpcService service, ServiceCtx context, string message, Exception inner, [CallerMemberName] string methodName = null) : base(message, inner) { Service = service; Context = context; Request = context.Request; + MethodName = methodName; } public override string Message @@ -47,25 +48,12 @@ namespace Ryujinx.HLE.Exceptions { StringBuilder sb = new(); - // Print the IPC command details (service name, command ID, and handler) - (Type callingType, MethodBase callingMethod) = WalkStackTrace(new StackTrace(this)); + var commandId = Request.Type > IpcMessageType.TipcCloseSession + ? -1 // TODO: tipc name + : Service.CmifCommandIdByMethodName(MethodName); - if (callingType != null && callingMethod != null) - { - // If the type is past 0xF, we are using TIPC - IReadOnlyDictionary ipcCommands = Request.Type > IpcMessageType.TipcCloseSession ? Service.TipcCommands : Service.CmifCommands; - - // Find the handler for the method called - KeyValuePair ipcHandler = ipcCommands.FirstOrDefault(x => x.Value == callingMethod); - int ipcCommandId = ipcHandler.Key; - MethodInfo ipcMethod = ipcHandler.Value; - - if (ipcMethod != null) - { - sb.AppendLine($"Service Command: {Service.GetType().FullName}: {ipcCommandId} ({ipcMethod.Name})"); - sb.AppendLine(); - } - } + sb.AppendLine($"Service Command: {Service.GetType().FullName}: {commandId} ({MethodName})"); + sb.AppendLine(); sb.AppendLine("Guest Stack Trace:"); sb.AppendLine(Context.Thread.GetGuestStackTrace()); @@ -137,26 +125,5 @@ namespace Ryujinx.HLE.Exceptions return sb.ToString(); } - - private static (Type, MethodBase) WalkStackTrace(StackTrace trace) - { - int i = 0; - - StackFrame frame; - - // Find the IIpcService method that threw this exception - while ((frame = trace.GetFrame(i++)) != null) - { - MethodBase method = frame.GetMethod(); - Type declType = method.DeclaringType; - - if (typeof(IpcService).IsAssignableFrom(declType)) - { - return (declType, method); - } - } - - return (null, null); - } } } diff --git a/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IManagerForApplication.cs b/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IManagerForApplication.cs index a00514cb6..486e50aed 100644 --- a/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IManagerForApplication.cs +++ b/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IManagerForApplication.cs @@ -1,6 +1,6 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc.AccountService { - class IManagerForApplication : IpcService + partial class IManagerForApplication : IpcService { private readonly ManagerServer _managerServer; diff --git a/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IManagerForSystemService.cs b/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IManagerForSystemService.cs index 40c73c439..b9e29d516 100644 --- a/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IManagerForSystemService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IManagerForSystemService.cs @@ -1,6 +1,6 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc.AccountService { - class IManagerForSystemService : IpcService + partial class IManagerForSystemService : IpcService { private readonly ManagerServer _managerServer; diff --git a/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IProfile.cs b/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IProfile.cs index a0021917f..391cb0b72 100644 --- a/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IProfile.cs +++ b/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IProfile.cs @@ -1,6 +1,6 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc.AccountService { - class IProfile : IpcService + partial class IProfile : IpcService { private readonly ProfileServer _profileServer; diff --git a/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IProfileEditor.cs b/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IProfileEditor.cs index 5d5d0dd69..e605ddc63 100644 --- a/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IProfileEditor.cs +++ b/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IProfileEditor.cs @@ -1,6 +1,6 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc.AccountService { - class IProfileEditor : IpcService + partial class IProfileEditor : IpcService { private readonly ProfileServer _profileServer; diff --git a/src/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForAdministrator.cs b/src/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForAdministrator.cs index 74c135aed..b0b1718af 100644 --- a/src/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForAdministrator.cs +++ b/src/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForAdministrator.cs @@ -5,7 +5,7 @@ using Ryujinx.HLE.HOS.Services.Account.Acc.AccountService; namespace Ryujinx.HLE.HOS.Services.Account.Acc { [Service("acc:su", AccountServiceFlag.Administrator)] // Max Sessions: 8 - class IAccountServiceForAdministrator : IpcService + partial class IAccountServiceForAdministrator : IpcService { private readonly ApplicationServiceServer _applicationServiceServer; diff --git a/src/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForApplication.cs b/src/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForApplication.cs index 98af10694..a8558e5f4 100644 --- a/src/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForApplication.cs +++ b/src/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForApplication.cs @@ -5,7 +5,7 @@ using Ryujinx.HLE.HOS.Services.Arp; namespace Ryujinx.HLE.HOS.Services.Account.Acc { [Service("acc:u0", AccountServiceFlag.Application)] // Max Sessions: 4 - class IAccountServiceForApplication : IpcService + partial class IAccountServiceForApplication : IpcService { private readonly ApplicationServiceServer _applicationServiceServer; diff --git a/src/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForSystemService.cs b/src/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForSystemService.cs index 682b5327f..4b4c823ff 100644 --- a/src/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForSystemService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForSystemService.cs @@ -4,7 +4,7 @@ using Ryujinx.HLE.HOS.Services.Account.Acc.AccountService; namespace Ryujinx.HLE.HOS.Services.Account.Acc { [Service("acc:u1", AccountServiceFlag.SystemService)] // Max Sessions: 16 - class IAccountServiceForSystemService : IpcService + partial class IAccountServiceForSystemService : IpcService { private readonly ApplicationServiceServer _applicationServiceServer; diff --git a/src/Ryujinx.HLE/HOS/Services/Account/Acc/IAsyncContext.cs b/src/Ryujinx.HLE/HOS/Services/Account/Acc/IAsyncContext.cs index 91daba5f0..24886cd91 100644 --- a/src/Ryujinx.HLE/HOS/Services/Account/Acc/IAsyncContext.cs +++ b/src/Ryujinx.HLE/HOS/Services/Account/Acc/IAsyncContext.cs @@ -5,7 +5,7 @@ using System; namespace Ryujinx.HLE.HOS.Services.Account.Acc { - class IAsyncContext : IpcService + partial class IAsyncContext : IpcService { protected AsyncExecution AsyncExecution; diff --git a/src/Ryujinx.HLE/HOS/Services/Account/Acc/IAsyncNetworkServiceLicenseKindContext.cs b/src/Ryujinx.HLE/HOS/Services/Account/Acc/IAsyncNetworkServiceLicenseKindContext.cs index 175838506..27a97cd8c 100644 --- a/src/Ryujinx.HLE/HOS/Services/Account/Acc/IAsyncNetworkServiceLicenseKindContext.cs +++ b/src/Ryujinx.HLE/HOS/Services/Account/Acc/IAsyncNetworkServiceLicenseKindContext.cs @@ -2,7 +2,7 @@ using Ryujinx.HLE.HOS.Services.Account.Acc.AsyncContext; namespace Ryujinx.HLE.HOS.Services.Account.Acc { - class IAsyncNetworkServiceLicenseKindContext : IAsyncContext + partial class IAsyncNetworkServiceLicenseKindContext : IAsyncContext { private readonly NetworkServiceLicenseKind? _serviceLicenseKind; diff --git a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/ILibraryAppletProxy.cs b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/ILibraryAppletProxy.cs index 7700cac09..2644641a8 100644 --- a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/ILibraryAppletProxy.cs +++ b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/ILibraryAppletProxy.cs @@ -3,7 +3,7 @@ using Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemA namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService { - class ILibraryAppletProxy : IpcService + partial class ILibraryAppletProxy : IpcService { private readonly ulong _pid; diff --git a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/ISystemAppletProxy.cs b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/ISystemAppletProxy.cs index dd015fd80..30f8f8b57 100644 --- a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/ISystemAppletProxy.cs +++ b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/ISystemAppletProxy.cs @@ -2,7 +2,7 @@ using Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemA namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService { - class ISystemAppletProxy : IpcService + partial class ISystemAppletProxy : IpcService { private readonly ulong _pid; diff --git a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletCreator/ILibraryAppletAccessor.cs b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletCreator/ILibraryAppletAccessor.cs index cd71103ca..6d4c2e3a7 100644 --- a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletCreator/ILibraryAppletAccessor.cs +++ b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletCreator/ILibraryAppletAccessor.cs @@ -9,7 +9,7 @@ using System; namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.LibraryAppletCreator { - class ILibraryAppletAccessor : DisposableIpcService + partial class ILibraryAppletAccessor : DisposableIpcService { private readonly KernelContext _kernelContext; diff --git a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletProxy/ILibraryAppletSelfAccessor.cs b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletProxy/ILibraryAppletSelfAccessor.cs index fc02ea172..7c5b51dce 100644 --- a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletProxy/ILibraryAppletSelfAccessor.cs +++ b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletProxy/ILibraryAppletSelfAccessor.cs @@ -3,7 +3,7 @@ using System; namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.LibraryAppletProxy { - class ILibraryAppletSelfAccessor : IpcService + partial class ILibraryAppletSelfAccessor : IpcService { private readonly AppletStandalone _appletStandalone = new(); diff --git a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletProxy/IProcessWindingController.cs b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletProxy/IProcessWindingController.cs index d86a896d6..33a333786 100644 --- a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletProxy/IProcessWindingController.cs +++ b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletProxy/IProcessWindingController.cs @@ -2,7 +2,7 @@ using Ryujinx.Common; namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.LibraryAppletProxy { - class IProcessWindingController : IpcService + partial class IProcessWindingController : IpcService { public IProcessWindingController() { } diff --git a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IAudioController.cs b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IAudioController.cs index 05a4b0a63..a9141ffb9 100644 --- a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IAudioController.cs +++ b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IAudioController.cs @@ -2,7 +2,7 @@ using Ryujinx.Common.Logging; namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy { - class IAudioController : IpcService + partial class IAudioController : IpcService { public IAudioController() { } diff --git a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/ICommonStateGetter.cs b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/ICommonStateGetter.cs index ad776fe6e..f07372fe4 100644 --- a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/ICommonStateGetter.cs +++ b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/ICommonStateGetter.cs @@ -10,7 +10,7 @@ using System; namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy { - class ICommonStateGetter : DisposableIpcService + partial class ICommonStateGetter : DisposableIpcService { private readonly ServiceCtx _context; diff --git a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IDisplayController.cs b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IDisplayController.cs index 6bd35a779..fe88c3570 100644 --- a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IDisplayController.cs +++ b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IDisplayController.cs @@ -6,7 +6,7 @@ using System; namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy { - class IDisplayController : IpcService + partial class IDisplayController : IpcService { private readonly KTransferMemory _transferMem; private bool _lastApplicationCaptureBufferAcquired; diff --git a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IHomeMenuFunctions.cs b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IHomeMenuFunctions.cs index 78f47e0e9..7ba2a5c51 100644 --- a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IHomeMenuFunctions.cs +++ b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IHomeMenuFunctions.cs @@ -6,7 +6,7 @@ using System; namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy { - class IHomeMenuFunctions : IpcService + partial class IHomeMenuFunctions : IpcService { private readonly KEvent _channelEvent; private int _channelEventHandle; diff --git a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/ILibraryAppletCreator.cs b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/ILibraryAppletCreator.cs index f1ae81f8d..70e85585e 100644 --- a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/ILibraryAppletCreator.cs +++ b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/ILibraryAppletCreator.cs @@ -3,7 +3,7 @@ using Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Library namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy { - class ILibraryAppletCreator : IpcService + partial class ILibraryAppletCreator : IpcService { public ILibraryAppletCreator() { } diff --git a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/ISelfController.cs b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/ISelfController.cs index 7aac6f3ea..479bfe09b 100644 --- a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/ISelfController.cs +++ b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/ISelfController.cs @@ -8,7 +8,7 @@ using System.Threading; namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy { - class ISelfController : IpcService + partial class ISelfController : IpcService { private readonly ulong _pid; diff --git a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IWindowController.cs b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IWindowController.cs index 46dc4916d..9c5815670 100644 --- a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IWindowController.cs +++ b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/SystemAppletProxy/IWindowController.cs @@ -2,7 +2,7 @@ using Ryujinx.Common.Logging; namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy { - class IWindowController : IpcService + partial class IWindowController : IpcService { private readonly ulong _pid; diff --git a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/IAllSystemAppletProxiesService.cs b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/IAllSystemAppletProxiesService.cs index b8741b22b..8d7ed5e3f 100644 --- a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/IAllSystemAppletProxiesService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/IAllSystemAppletProxiesService.cs @@ -4,7 +4,7 @@ using Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService; namespace Ryujinx.HLE.HOS.Services.Am.AppletAE { [Service("appletAE")] - class IAllSystemAppletProxiesService : IpcService + partial class IAllSystemAppletProxiesService : IpcService { public IAllSystemAppletProxiesService(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/IStorage.cs b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/IStorage.cs index 311084aa1..e8169fea8 100644 --- a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/IStorage.cs +++ b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/IStorage.cs @@ -1,6 +1,6 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE { - class IStorage : IpcService + partial class IStorage : IpcService { public bool IsReadOnly { get; private set; } public byte[] Data { get; private set; } diff --git a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/IStorageAccessor.cs b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/IStorageAccessor.cs index 54c7b69e5..fead139f7 100644 --- a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/IStorageAccessor.cs +++ b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/IStorageAccessor.cs @@ -2,7 +2,7 @@ using System; namespace Ryujinx.HLE.HOS.Services.Am.AppletAE { - class IStorageAccessor : IpcService + partial class IStorageAccessor : IpcService { private readonly IStorage _storage; diff --git a/src/Ryujinx.HLE/HOS/Services/Am/AppletOE/ApplicationProxyService/ApplicationProxy/IApplicationFunctions.cs b/src/Ryujinx.HLE/HOS/Services/Am/AppletOE/ApplicationProxyService/ApplicationProxy/IApplicationFunctions.cs index 9986bf824..1ba8ffc63 100644 --- a/src/Ryujinx.HLE/HOS/Services/Am/AppletOE/ApplicationProxyService/ApplicationProxy/IApplicationFunctions.cs +++ b/src/Ryujinx.HLE/HOS/Services/Am/AppletOE/ApplicationProxyService/ApplicationProxy/IApplicationFunctions.cs @@ -22,7 +22,7 @@ using ApplicationId = LibHac.Ncm.ApplicationId; namespace Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.ApplicationProxy { - class IApplicationFunctions : IpcService + partial class IApplicationFunctions : IpcService { private long _defaultSaveDataSize = 200000000; private long _defaultJournalSaveDataSize = 200000000; diff --git a/src/Ryujinx.HLE/HOS/Services/Am/AppletOE/ApplicationProxyService/IApplicationProxy.cs b/src/Ryujinx.HLE/HOS/Services/Am/AppletOE/ApplicationProxyService/IApplicationProxy.cs index b24e1bf4f..c763ffe53 100644 --- a/src/Ryujinx.HLE/HOS/Services/Am/AppletOE/ApplicationProxyService/IApplicationProxy.cs +++ b/src/Ryujinx.HLE/HOS/Services/Am/AppletOE/ApplicationProxyService/IApplicationProxy.cs @@ -3,7 +3,7 @@ using Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.ApplicationPr namespace Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService { - class IApplicationProxy : IpcService + partial class IApplicationProxy : IpcService { private readonly ulong _pid; diff --git a/src/Ryujinx.HLE/HOS/Services/Am/AppletOE/IApplicationProxyService.cs b/src/Ryujinx.HLE/HOS/Services/Am/AppletOE/IApplicationProxyService.cs index 9814976f7..e64c2037b 100644 --- a/src/Ryujinx.HLE/HOS/Services/Am/AppletOE/IApplicationProxyService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Am/AppletOE/IApplicationProxyService.cs @@ -3,7 +3,7 @@ using Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService; namespace Ryujinx.HLE.HOS.Services.Am { [Service("appletOE")] - class IApplicationProxyService : IpcService + partial class IApplicationProxyService : IpcService { public IApplicationProxyService(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Apm/IManager.cs b/src/Ryujinx.HLE/HOS/Services/Apm/IManager.cs index 83215befa..5398a20e5 100644 --- a/src/Ryujinx.HLE/HOS/Services/Apm/IManager.cs +++ b/src/Ryujinx.HLE/HOS/Services/Apm/IManager.cs @@ -1,6 +1,6 @@ namespace Ryujinx.HLE.HOS.Services.Apm { - abstract class IManager : IpcService + abstract partial class IManager : IpcService { public IManager(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Apm/IManagerPrivileged.cs b/src/Ryujinx.HLE/HOS/Services/Apm/IManagerPrivileged.cs index bb0049d1b..08b681d57 100644 --- a/src/Ryujinx.HLE/HOS/Services/Apm/IManagerPrivileged.cs +++ b/src/Ryujinx.HLE/HOS/Services/Apm/IManagerPrivileged.cs @@ -3,7 +3,7 @@ namespace Ryujinx.HLE.HOS.Services.Apm // NOTE: This service doesn’t exist anymore after firmware 7.0.1. But some outdated homebrew still uses it. [Service("apm:p")] // 1.0.0-7.0.1 - class IManagerPrivileged : IpcService + partial class IManagerPrivileged : IpcService { public IManagerPrivileged(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Apm/ISession.cs b/src/Ryujinx.HLE/HOS/Services/Apm/ISession.cs index 6ee696056..f4103e00b 100644 --- a/src/Ryujinx.HLE/HOS/Services/Apm/ISession.cs +++ b/src/Ryujinx.HLE/HOS/Services/Apm/ISession.cs @@ -1,6 +1,6 @@ namespace Ryujinx.HLE.HOS.Services.Apm { - abstract class ISession : IpcService + abstract partial class ISession : IpcService { public ISession(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Apm/ISystemManager.cs b/src/Ryujinx.HLE/HOS/Services/Apm/ISystemManager.cs index 375423cf2..d01e33872 100644 --- a/src/Ryujinx.HLE/HOS/Services/Apm/ISystemManager.cs +++ b/src/Ryujinx.HLE/HOS/Services/Apm/ISystemManager.cs @@ -1,6 +1,6 @@ namespace Ryujinx.HLE.HOS.Services.Apm { - abstract class ISystemManager : IpcService + abstract partial class ISystemManager : IpcService { public ISystemManager(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Bluetooth/IBluetoothDriver.cs b/src/Ryujinx.HLE/HOS/Services/Bluetooth/IBluetoothDriver.cs index 8f2642695..a8d2c66a7 100644 --- a/src/Ryujinx.HLE/HOS/Services/Bluetooth/IBluetoothDriver.cs +++ b/src/Ryujinx.HLE/HOS/Services/Bluetooth/IBluetoothDriver.cs @@ -8,7 +8,7 @@ using System; namespace Ryujinx.HLE.HOS.Services.Bluetooth { [Service("btdrv")] - class IBluetoothDriver : IpcService + partial class IBluetoothDriver : IpcService { #pragma warning disable CS0414, IDE0052 // Remove unread private member private string _unknownLowEnergy; diff --git a/src/Ryujinx.HLE/HOS/Services/Bluetooth/IBluetoothUser.cs b/src/Ryujinx.HLE/HOS/Services/Bluetooth/IBluetoothUser.cs index ea4a46f92..2756ede7c 100644 --- a/src/Ryujinx.HLE/HOS/Services/Bluetooth/IBluetoothUser.cs +++ b/src/Ryujinx.HLE/HOS/Services/Bluetooth/IBluetoothUser.cs @@ -5,7 +5,7 @@ using Ryujinx.HLE.HOS.Services.Settings; namespace Ryujinx.HLE.HOS.Services.Bluetooth { [Service("bt")] - class IBluetoothUser : IpcService + partial class IBluetoothUser : IpcService { public IBluetoothUser(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/BluetoothManager/BtmUser/IBtmUserCore.cs b/src/Ryujinx.HLE/HOS/Services/BluetoothManager/BtmUser/IBtmUserCore.cs index d4e23b93d..9d06e44e7 100644 --- a/src/Ryujinx.HLE/HOS/Services/BluetoothManager/BtmUser/IBtmUserCore.cs +++ b/src/Ryujinx.HLE/HOS/Services/BluetoothManager/BtmUser/IBtmUserCore.cs @@ -5,7 +5,7 @@ using Ryujinx.Horizon.Common; namespace Ryujinx.HLE.HOS.Services.BluetoothManager.BtmUser { - class IBtmUserCore : IpcService + partial class IBtmUserCore : IpcService { public KEvent _bleScanEvent; public int _bleScanEventHandle; diff --git a/src/Ryujinx.HLE/HOS/Services/BluetoothManager/IBtmUser.cs b/src/Ryujinx.HLE/HOS/Services/BluetoothManager/IBtmUser.cs index 78f8fd8f5..29190eb44 100644 --- a/src/Ryujinx.HLE/HOS/Services/BluetoothManager/IBtmUser.cs +++ b/src/Ryujinx.HLE/HOS/Services/BluetoothManager/IBtmUser.cs @@ -3,7 +3,7 @@ using Ryujinx.HLE.HOS.Services.BluetoothManager.BtmUser; namespace Ryujinx.HLE.HOS.Services.BluetoothManager { [Service("btm:u")] // 5.0.0+ - class IBtmUser : IpcService + partial class IBtmUser : IpcService { public IBtmUser(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Caps/IAlbumApplicationService.cs b/src/Ryujinx.HLE/HOS/Services/Caps/IAlbumApplicationService.cs index 754a44025..e794be54e 100644 --- a/src/Ryujinx.HLE/HOS/Services/Caps/IAlbumApplicationService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Caps/IAlbumApplicationService.cs @@ -5,7 +5,7 @@ using Ryujinx.HLE.HOS.Services.Caps.Types; namespace Ryujinx.HLE.HOS.Services.Caps { [Service("caps:u")] - class IAlbumApplicationService : IpcService + partial class IAlbumApplicationService : IpcService { public IAlbumApplicationService(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Caps/IAlbumControlService.cs b/src/Ryujinx.HLE/HOS/Services/Caps/IAlbumControlService.cs index 4376c4d14..81295f910 100644 --- a/src/Ryujinx.HLE/HOS/Services/Caps/IAlbumControlService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Caps/IAlbumControlService.cs @@ -1,7 +1,7 @@ namespace Ryujinx.HLE.HOS.Services.Caps { [Service("caps:c")] - class IAlbumControlService : IpcService + partial class IAlbumControlService : IpcService { public IAlbumControlService(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Caps/IScreenShotApplicationService.cs b/src/Ryujinx.HLE/HOS/Services/Caps/IScreenShotApplicationService.cs index 0723b57cc..153f7df7c 100644 --- a/src/Ryujinx.HLE/HOS/Services/Caps/IScreenShotApplicationService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Caps/IScreenShotApplicationService.cs @@ -4,7 +4,7 @@ using Ryujinx.HLE.HOS.Services.Caps.Types; namespace Ryujinx.HLE.HOS.Services.Caps { [Service("caps:su")] // 6.0.0+ - class IScreenShotApplicationService : IpcService + partial class IScreenShotApplicationService : IpcService { public IScreenShotApplicationService(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Ectx/IContextRegistrar.cs b/src/Ryujinx.HLE/HOS/Services/Ectx/IContextRegistrar.cs index 34adfe9be..8cc33637f 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ectx/IContextRegistrar.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ectx/IContextRegistrar.cs @@ -4,7 +4,7 @@ using Ryujinx.Horizon.Common; namespace Ryujinx.HLE.HOS.Services.Ectx { - class IContextRegistrar : DisposableIpcService + partial class IContextRegistrar : DisposableIpcService { public IContextRegistrar(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Ectx/IWriterForApplication.cs b/src/Ryujinx.HLE/HOS/Services/Ectx/IWriterForApplication.cs index c8ef155e3..177349c33 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ectx/IWriterForApplication.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ectx/IWriterForApplication.cs @@ -1,7 +1,7 @@ namespace Ryujinx.HLE.HOS.Services.Ectx { [Service("ectx:aw")] // 11.0.0+ - class IWriterForApplication : IpcService + partial class IWriterForApplication : IpcService { public IWriterForApplication(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Fatal/IService.cs b/src/Ryujinx.HLE/HOS/Services/Fatal/IService.cs index c3ed92ed0..55efbdf6e 100644 --- a/src/Ryujinx.HLE/HOS/Services/Fatal/IService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Fatal/IService.cs @@ -7,7 +7,7 @@ using System.Text; namespace Ryujinx.HLE.HOS.Services.Fatal { [Service("fatal:u")] - class IService : IpcService + partial class IService : IpcService { public IService(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IDirectory.cs b/src/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IDirectory.cs index 0fe7bcdd6..91e3ea08f 100644 --- a/src/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IDirectory.cs +++ b/src/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IDirectory.cs @@ -5,7 +5,7 @@ using Ryujinx.Memory; namespace Ryujinx.HLE.HOS.Services.Fs.FileSystemProxy { - class IDirectory : DisposableIpcService + partial class IDirectory : DisposableIpcService { private SharedRef _baseDirectory; diff --git a/src/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IFile.cs b/src/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IFile.cs index 0ea57f5a4..1fd69520d 100644 --- a/src/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IFile.cs +++ b/src/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IFile.cs @@ -7,7 +7,7 @@ using Ryujinx.Memory; namespace Ryujinx.HLE.HOS.Services.Fs.FileSystemProxy { - class IFile : DisposableIpcService + partial class IFile : DisposableIpcService { private SharedRef _baseFile; diff --git a/src/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IFileSystem.cs b/src/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IFileSystem.cs index 168dfc37a..4f74bb272 100644 --- a/src/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IFileSystem.cs +++ b/src/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IFileSystem.cs @@ -7,7 +7,7 @@ using Path = LibHac.FsSrv.Sf.Path; namespace Ryujinx.HLE.HOS.Services.Fs.FileSystemProxy { - class IFileSystem : DisposableIpcService + partial class IFileSystem : DisposableIpcService { private SharedRef _fileSystem; diff --git a/src/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IStorage.cs b/src/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IStorage.cs index 480899ae1..4d8d84e36 100644 --- a/src/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IStorage.cs +++ b/src/Ryujinx.HLE/HOS/Services/Fs/FileSystemProxy/IStorage.cs @@ -10,7 +10,7 @@ using System.Threading; namespace Ryujinx.HLE.HOS.Services.Fs.FileSystemProxy { - class IStorage : DisposableIpcService + partial class IStorage : DisposableIpcService { private SharedRef _baseStorage; diff --git a/src/Ryujinx.HLE/HOS/Services/Fs/IDeviceOperator.cs b/src/Ryujinx.HLE/HOS/Services/Fs/IDeviceOperator.cs index 49453e83a..75f6fbd2a 100644 --- a/src/Ryujinx.HLE/HOS/Services/Fs/IDeviceOperator.cs +++ b/src/Ryujinx.HLE/HOS/Services/Fs/IDeviceOperator.cs @@ -5,7 +5,7 @@ using GameCardHandle = System.UInt32; namespace Ryujinx.HLE.HOS.Services.Fs { - class IDeviceOperator : DisposableIpcService + partial class IDeviceOperator : DisposableIpcService { private SharedRef _baseOperator; diff --git a/src/Ryujinx.HLE/HOS/Services/Fs/IFileSystemProxy.cs b/src/Ryujinx.HLE/HOS/Services/Fs/IFileSystemProxy.cs index 08ede2b5b..c95f7192e 100644 --- a/src/Ryujinx.HLE/HOS/Services/Fs/IFileSystemProxy.cs +++ b/src/Ryujinx.HLE/HOS/Services/Fs/IFileSystemProxy.cs @@ -25,7 +25,7 @@ using IStorage = LibHac.FsSrv.Sf.IStorage; namespace Ryujinx.HLE.HOS.Services.Fs { [Service("fsp-srv")] - class IFileSystemProxy : DisposableIpcService + partial class IFileSystemProxy : DisposableIpcService { private SharedRef _baseFileSystemProxy; private ulong _pid; diff --git a/src/Ryujinx.HLE/HOS/Services/Fs/IMultiCommitManager.cs b/src/Ryujinx.HLE/HOS/Services/Fs/IMultiCommitManager.cs index 134e2ed8c..033fa9da1 100644 --- a/src/Ryujinx.HLE/HOS/Services/Fs/IMultiCommitManager.cs +++ b/src/Ryujinx.HLE/HOS/Services/Fs/IMultiCommitManager.cs @@ -4,7 +4,7 @@ using Ryujinx.HLE.HOS.Services.Fs.FileSystemProxy; namespace Ryujinx.HLE.HOS.Services.Fs { - class IMultiCommitManager : DisposableIpcService // 6.0.0+ + partial class IMultiCommitManager : DisposableIpcService // 6.0.0+ { private SharedRef _baseCommitManager; diff --git a/src/Ryujinx.HLE/HOS/Services/Fs/ISaveDataInfoReader.cs b/src/Ryujinx.HLE/HOS/Services/Fs/ISaveDataInfoReader.cs index b86eb1fa1..49a8608a8 100644 --- a/src/Ryujinx.HLE/HOS/Services/Fs/ISaveDataInfoReader.cs +++ b/src/Ryujinx.HLE/HOS/Services/Fs/ISaveDataInfoReader.cs @@ -5,7 +5,7 @@ using Ryujinx.Memory; namespace Ryujinx.HLE.HOS.Services.Fs { - class ISaveDataInfoReader : DisposableIpcService + partial class ISaveDataInfoReader : DisposableIpcService { private SharedRef _baseReader; diff --git a/src/Ryujinx.HLE/HOS/Services/Hid/HidServer/IActiveVibrationDeviceList.cs b/src/Ryujinx.HLE/HOS/Services/Hid/HidServer/IActiveVibrationDeviceList.cs index 93f19c915..eef5bda83 100644 --- a/src/Ryujinx.HLE/HOS/Services/Hid/HidServer/IActiveVibrationDeviceList.cs +++ b/src/Ryujinx.HLE/HOS/Services/Hid/HidServer/IActiveVibrationDeviceList.cs @@ -1,6 +1,6 @@ namespace Ryujinx.HLE.HOS.Services.Hid.HidServer { - class IActiveApplicationDeviceList : IpcService + partial class IActiveApplicationDeviceList : IpcService { public IActiveApplicationDeviceList() { } diff --git a/src/Ryujinx.HLE/HOS/Services/Hid/HidServer/IAppletResource.cs b/src/Ryujinx.HLE/HOS/Services/Hid/HidServer/IAppletResource.cs index 56eb345af..a9df89a0e 100644 --- a/src/Ryujinx.HLE/HOS/Services/Hid/HidServer/IAppletResource.cs +++ b/src/Ryujinx.HLE/HOS/Services/Hid/HidServer/IAppletResource.cs @@ -5,7 +5,7 @@ using System; namespace Ryujinx.HLE.HOS.Services.Hid.HidServer { - class IAppletResource : IpcService + partial class IAppletResource : IpcService { private readonly KSharedMemory _hidSharedMem; private int _hidSharedMemHandle; diff --git a/src/Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs b/src/Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs index 28db75663..04b66b1f3 100644 --- a/src/Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs +++ b/src/Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs @@ -13,7 +13,7 @@ using System.Runtime.InteropServices; namespace Ryujinx.HLE.HOS.Services.Hid { [Service("hid")] - class IHidServer : IpcService + partial class IHidServer : IpcService { private readonly KEvent _xpadIdEvent; private readonly KEvent _palmaOperationCompleteEvent; diff --git a/src/Ryujinx.HLE/HOS/Services/Hid/IHidSystemServer.cs b/src/Ryujinx.HLE/HOS/Services/Hid/IHidSystemServer.cs index 0b4eba948..3255a644c 100644 --- a/src/Ryujinx.HLE/HOS/Services/Hid/IHidSystemServer.cs +++ b/src/Ryujinx.HLE/HOS/Services/Hid/IHidSystemServer.cs @@ -5,7 +5,7 @@ using Ryujinx.HLE.HOS.Services.Hid.Types; namespace Ryujinx.HLE.HOS.Services.Hid { [Service("hid:sys")] - class IHidSystemServer : IpcService + partial class IHidSystemServer : IpcService { public IHidSystemServer(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Hid/IHidbusServer.cs b/src/Ryujinx.HLE/HOS/Services/Hid/IHidbusServer.cs index 5082bddc2..614e865d4 100644 --- a/src/Ryujinx.HLE/HOS/Services/Hid/IHidbusServer.cs +++ b/src/Ryujinx.HLE/HOS/Services/Hid/IHidbusServer.cs @@ -4,7 +4,7 @@ using Ryujinx.Common.Logging; namespace Ryujinx.HLE.HOS.Services.Hid { [Service("hidbus")] - class IHidbusServer : IpcService + partial class IHidbusServer : IpcService { public IHidbusServer(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Hid/Irs/IIrSensorServer.cs b/src/Ryujinx.HLE/HOS/Services/Hid/Irs/IIrSensorServer.cs index 8a30ce066..50b8c14cf 100644 --- a/src/Ryujinx.HLE/HOS/Services/Hid/Irs/IIrSensorServer.cs +++ b/src/Ryujinx.HLE/HOS/Services/Hid/Irs/IIrSensorServer.cs @@ -9,7 +9,7 @@ using System; namespace Ryujinx.HLE.HOS.Services.Hid.Irs { [Service("irs")] - class IIrSensorServer : IpcService + partial class IIrSensorServer : IpcService { private int _irsensorSharedMemoryHandle = 0; diff --git a/src/Ryujinx.HLE/HOS/Services/IpcService.cs b/src/Ryujinx.HLE/HOS/Services/IpcService.cs index 87e9d7b59..31420f485 100644 --- a/src/Ryujinx.HLE/HOS/Services/IpcService.cs +++ b/src/Ryujinx.HLE/HOS/Services/IpcService.cs @@ -13,8 +13,6 @@ namespace Ryujinx.HLE.HOS.Services { abstract partial class IpcService { - - public IReadOnlyDictionary CmifCommands { get; } public IReadOnlyDictionary TipcCommands { get; } public ServerBase Server { get; private set; } @@ -24,30 +22,11 @@ namespace Ryujinx.HLE.HOS.Services private int _selfId; private bool _isDomain; - // cache array so we don't recreate it all the time - private object[] _parameters = [null]; - - public IpcService(ServerBase server = null, bool registerTipc = false) + public IpcService(ServerBase server = null) { - Stopwatch sw = Stopwatch.StartNew(); - - CmifCommands = GetType() - .GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public) - .SelectMany(methodInfo => methodInfo.GetCustomAttributes() - .Select(command => (command.Id, methodInfo))) - .ToDictionary(command => command.Id, command => command.methodInfo); - - sw.Stop(); - - Logger.Debug?.Print( - LogClass.Emulation, - $"{CmifCommands.Count} Cmif commands loaded in {sw.ElapsedTicks} ticks ({Stopwatch.Frequency} tps).", - GetType().AsPrettyString() - ); - - if (registerTipc) + if (true) { - sw.Start(); + var sw = Stopwatch.StartNew(); TipcCommands = GetType() .GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public) @@ -88,6 +67,29 @@ namespace Ryujinx.HLE.HOS.Services _isDomain = false; } + protected virtual ResultCode InvokeCmifMethod(int id, ServiceCtx context) + { + if (!context.Device.Configuration.IgnoreMissingServices) + { + string dbgMessage = $"{this.GetType().FullName}: {id}"; + + throw new ServiceNotImplementedException(this, context, dbgMessage); + } + + string serviceName = (this is not DummyService dummyService) + ? this.GetType().FullName + : dummyService.ServiceName; + + Logger.Warning?.Print(LogClass.KernelIpc, $"Missing service {serviceName}: {id} ignored"); + + return ResultCode.Success; + } + + protected void LogInvoke(string name) + => Logger.Trace?.Print(LogClass.KernelIpc, $"{this.GetType().Name}: {name}"); + + public virtual int CmifCommandIdByMethodName(string name) => -1; + public void CallCmifMethod(ServiceCtx context) { IpcService service = this; @@ -138,52 +140,26 @@ namespace Ryujinx.HLE.HOS.Services #pragma warning restore IDE0059 int commandId = (int)context.RequestData.ReadInt64(); - bool serviceExists = service.CmifCommands.TryGetValue(commandId, out MethodInfo processRequest); + context.ResponseData.BaseStream.Seek(_isDomain ? 0x20 : 0x10, SeekOrigin.Begin); - if (context.Device.Configuration.IgnoreMissingServices || serviceExists) + ResultCode result = service.InvokeCmifMethod(commandId, context); + + if (_isDomain) { - ResultCode result = ResultCode.Success; - - context.ResponseData.BaseStream.Seek(_isDomain ? 0x20 : 0x10, SeekOrigin.Begin); - - if (serviceExists) + foreach (int id in context.Response.ObjectIds) { - Logger.Trace?.Print(LogClass.KernelIpc, $"{service.GetType().Name}: {processRequest.Name}"); - - _parameters[0] = context; - - result = (ResultCode)processRequest.Invoke(service, _parameters); - } - else - { - string serviceName = (service is not DummyService dummyService) ? service.GetType().FullName : dummyService.ServiceName; - - Logger.Warning?.Print(LogClass.KernelIpc, $"Missing service {serviceName}: {commandId} ignored"); + context.ResponseData.Write(id); } - if (_isDomain) - { - foreach (int id in context.Response.ObjectIds) - { - context.ResponseData.Write(id); - } + context.ResponseData.BaseStream.Seek(0, SeekOrigin.Begin); - context.ResponseData.BaseStream.Seek(0, SeekOrigin.Begin); - - context.ResponseData.Write(context.Response.ObjectIds.Count); - } - - context.ResponseData.BaseStream.Seek(_isDomain ? 0x10 : 0, SeekOrigin.Begin); - - context.ResponseData.Write(IpcMagic.Sfco); - context.ResponseData.Write((long)result); + context.ResponseData.Write(context.Response.ObjectIds.Count); } - else - { - string dbgMessage = $"{service.GetType().FullName}: {commandId}"; - throw new ServiceNotImplementedException(service, context, dbgMessage); - } + context.ResponseData.BaseStream.Seek(_isDomain ? 0x10 : 0, SeekOrigin.Begin); + + context.ResponseData.Write(IpcMagic.Sfco); + context.ResponseData.Write((long)result); } public void CallTipcMethod(ServiceCtx context) @@ -202,9 +178,7 @@ namespace Ryujinx.HLE.HOS.Services { Logger.Debug?.Print(LogClass.KernelIpc, $"{GetType().Name}: {processRequest.Name}"); - _parameters[0] = context; - - result = (ResultCode)processRequest.Invoke(this, _parameters); + result = (ResultCode)processRequest.Invoke(this, [context]); } else { diff --git a/src/Ryujinx.HLE/HOS/Services/Ldn/IUserServiceCreator.cs b/src/Ryujinx.HLE/HOS/Services/Ldn/IUserServiceCreator.cs index 3e3a226ae..bbb0c3190 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ldn/IUserServiceCreator.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ldn/IUserServiceCreator.cs @@ -3,7 +3,7 @@ using Ryujinx.HLE.HOS.Services.Ldn.UserServiceCreator; namespace Ryujinx.HLE.HOS.Services.Ldn { [Service("ldn:u")] - class IUserServiceCreator : IpcService + partial class IUserServiceCreator : IpcService { public IUserServiceCreator(ServiceCtx context) : base(context.Device.System.LdnServer) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/IServiceCreator.cs b/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/IServiceCreator.cs index 705e5f258..16b7da424 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/IServiceCreator.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/IServiceCreator.cs @@ -2,7 +2,7 @@ namespace Ryujinx.HLE.HOS.Services.Ldn.Lp2p { [Service("lp2p:app")] // 9.0.0+ [Service("lp2p:sys")] // 9.0.0+ - class IServiceCreator : IpcService + partial class IServiceCreator : IpcService { public IServiceCreator(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/ISfService.cs b/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/ISfService.cs index 8f9f0e3e4..7533e3cd0 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/ISfService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/ISfService.cs @@ -2,7 +2,7 @@ using Ryujinx.Common.Logging; namespace Ryujinx.HLE.HOS.Services.Ldn.Lp2p { - class ISfService : IpcService + partial class ISfService : IpcService { public ISfService(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/ISfServiceMonitor.cs b/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/ISfServiceMonitor.cs index d3a8bead2..92181127c 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/ISfServiceMonitor.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/ISfServiceMonitor.cs @@ -6,7 +6,7 @@ using System; namespace Ryujinx.HLE.HOS.Services.Ldn.Lp2p { - class ISfServiceMonitor : IpcService + partial class ISfServiceMonitor : IpcService { private readonly KEvent _stateChangeEvent; private readonly KEvent _jointEvent; diff --git a/src/Ryujinx.HLE/HOS/Services/Ldn/UserServiceCreator/IClientProcessMonitor.cs b/src/Ryujinx.HLE/HOS/Services/Ldn/UserServiceCreator/IClientProcessMonitor.cs index 349d51a3f..07b3eb757 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ldn/UserServiceCreator/IClientProcessMonitor.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ldn/UserServiceCreator/IClientProcessMonitor.cs @@ -2,7 +2,7 @@ using Ryujinx.Common.Logging; namespace Ryujinx.HLE.HOS.Services.Ldn.UserServiceCreator { - class IClientProcessMonitor : DisposableIpcService + partial class IClientProcessMonitor : DisposableIpcService { public IClientProcessMonitor(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Ldn/UserServiceCreator/IUserLocalCommunicationService.cs b/src/Ryujinx.HLE/HOS/Services/Ldn/UserServiceCreator/IUserLocalCommunicationService.cs index 62a86ad91..20d7a270b 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ldn/UserServiceCreator/IUserLocalCommunicationService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ldn/UserServiceCreator/IUserLocalCommunicationService.cs @@ -21,7 +21,7 @@ using System.Runtime.InteropServices; namespace Ryujinx.HLE.HOS.Services.Ldn.UserServiceCreator { - class IUserLocalCommunicationService : IpcService, IDisposable + partial class IUserLocalCommunicationService : IpcService, IDisposable { public INetworkClient NetworkClient { get; private set; } diff --git a/src/Ryujinx.HLE/HOS/Services/Mii/IImageDatabaseService.cs b/src/Ryujinx.HLE/HOS/Services/Mii/IImageDatabaseService.cs index 88d7d7b3c..a36aad19a 100644 --- a/src/Ryujinx.HLE/HOS/Services/Mii/IImageDatabaseService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Mii/IImageDatabaseService.cs @@ -3,7 +3,7 @@ using Ryujinx.Common.Logging; namespace Ryujinx.HLE.HOS.Services.Mii { [Service("miiimg")] // 5.0.0+ - class IImageDatabaseService : IpcService + partial class IImageDatabaseService : IpcService { private uint _imageCount; private bool _isDirty; diff --git a/src/Ryujinx.HLE/HOS/Services/Mii/IStaticService.cs b/src/Ryujinx.HLE/HOS/Services/Mii/IStaticService.cs index 8a6800024..a2713d3c1 100644 --- a/src/Ryujinx.HLE/HOS/Services/Mii/IStaticService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Mii/IStaticService.cs @@ -6,7 +6,7 @@ namespace Ryujinx.HLE.HOS.Services.Mii { [Service("mii:e", true)] [Service("mii:u", false)] - class IStaticService : IpcService + partial class IStaticService : IpcService { private readonly DatabaseImpl _databaseImpl; diff --git a/src/Ryujinx.HLE/HOS/Services/Mii/StaticService/IDatabaseService.cs b/src/Ryujinx.HLE/HOS/Services/Mii/StaticService/IDatabaseService.cs index 1a1c20d6e..715d49e8b 100644 --- a/src/Ryujinx.HLE/HOS/Services/Mii/StaticService/IDatabaseService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Mii/StaticService/IDatabaseService.cs @@ -6,7 +6,7 @@ using System.Runtime.InteropServices; namespace Ryujinx.HLE.HOS.Services.Mii.StaticService { - abstract class IDatabaseService : IpcService + abstract partial class IDatabaseService : IpcService { [CommandCmif(0)] // IsUpdated(SourceFlag flag) -> bool diff --git a/src/Ryujinx.HLE/HOS/Services/Mnpp/IServiceForApplication.cs b/src/Ryujinx.HLE/HOS/Services/Mnpp/IServiceForApplication.cs index 8cdab6419..10010193a 100644 --- a/src/Ryujinx.HLE/HOS/Services/Mnpp/IServiceForApplication.cs +++ b/src/Ryujinx.HLE/HOS/Services/Mnpp/IServiceForApplication.cs @@ -6,7 +6,7 @@ using Ryujinx.HLE.HOS.Services.Account.Acc; namespace Ryujinx.HLE.HOS.Services.Mnpp { [Service("mnpp:app")] // 13.0.0+ - class IServiceForApplication : IpcService + partial class IServiceForApplication : IpcService { public IServiceForApplication(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Ncm/Lr/ILocationResolverManager.cs b/src/Ryujinx.HLE/HOS/Services/Ncm/Lr/ILocationResolverManager.cs index 35e311c4d..7a11166a1 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ncm/Lr/ILocationResolverManager.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ncm/Lr/ILocationResolverManager.cs @@ -4,7 +4,7 @@ using Ryujinx.HLE.HOS.Services.Ncm.Lr.LocationResolverManager; namespace Ryujinx.HLE.HOS.Services.Ncm.Lr { [Service("lr")] - class ILocationResolverManager : IpcService + partial class ILocationResolverManager : IpcService { public ILocationResolverManager(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Ncm/Lr/LocationResolverManager/ILocationResolver.cs b/src/Ryujinx.HLE/HOS/Services/Ncm/Lr/LocationResolverManager/ILocationResolver.cs index 71ed56385..c81d50869 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ncm/Lr/LocationResolverManager/ILocationResolver.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ncm/Lr/LocationResolverManager/ILocationResolver.cs @@ -6,7 +6,7 @@ using static Ryujinx.HLE.Utilities.StringUtils; namespace Ryujinx.HLE.HOS.Services.Ncm.Lr.LocationResolverManager { - class ILocationResolver : IpcService + partial class ILocationResolver : IpcService { private readonly StorageId _storageId; diff --git a/src/Ryujinx.HLE/HOS/Services/Nfc/ISystemManager.cs b/src/Ryujinx.HLE/HOS/Services/Nfc/ISystemManager.cs index be23d2cdc..2c1dc3af7 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nfc/ISystemManager.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nfc/ISystemManager.cs @@ -3,7 +3,7 @@ using Ryujinx.HLE.HOS.Services.Nfc.NfcManager; namespace Ryujinx.HLE.HOS.Services.Nfc { [Service("nfc:sys")] - class ISystemManager : IpcService + partial class ISystemManager : IpcService { public ISystemManager(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Nfc/IUserManager.cs b/src/Ryujinx.HLE/HOS/Services/Nfc/IUserManager.cs index 5b8afce79..24e9a1475 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nfc/IUserManager.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nfc/IUserManager.cs @@ -3,7 +3,7 @@ using Ryujinx.HLE.HOS.Services.Nfc.NfcManager; namespace Ryujinx.HLE.HOS.Services.Nfc { [Service("nfc:user")] - class IUserManager : IpcService + partial class IUserManager : IpcService { public IUserManager(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Nfc/NfcManager/INfc.cs b/src/Ryujinx.HLE/HOS/Services/Nfc/NfcManager/INfc.cs index 72027cf48..635fe2a2a 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nfc/NfcManager/INfc.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nfc/NfcManager/INfc.cs @@ -2,7 +2,7 @@ using Ryujinx.Common.Logging; namespace Ryujinx.HLE.HOS.Services.Nfc.NfcManager { - class INfc : IpcService + partial class INfc : IpcService { private readonly NfcPermissionLevel _permissionLevel; private State _state; diff --git a/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/IDebugManager.cs b/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/IDebugManager.cs index b3eff0c2d..677f81127 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/IDebugManager.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/IDebugManager.cs @@ -3,7 +3,7 @@ using Ryujinx.HLE.HOS.Services.Nfc.Nfp.NfpManager; namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp { [Service("nfp:dbg")] - class IAmManager : IpcService + partial class IAmManager : IpcService { public IAmManager(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/ISystemManager.cs b/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/ISystemManager.cs index 4cb541a6c..5d429d0ba 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/ISystemManager.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/ISystemManager.cs @@ -3,7 +3,7 @@ using Ryujinx.HLE.HOS.Services.Nfc.Nfp.NfpManager; namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp { [Service("nfp:sys")] - class ISystemManager : IpcService + partial class ISystemManager : IpcService { public ISystemManager(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/IUserManager.cs b/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/IUserManager.cs index 229386c01..4cfc0c247 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/IUserManager.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/IUserManager.cs @@ -3,7 +3,7 @@ using Ryujinx.HLE.HOS.Services.Nfc.Nfp.NfpManager; namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp { [Service("nfp:user")] - class IUserManager : IpcService + partial class IUserManager : IpcService { public IUserManager(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/NfpManager/INfp.cs b/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/NfpManager/INfp.cs index ca833e33d..5e12510a1 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/NfpManager/INfp.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/NfpManager/INfp.cs @@ -16,7 +16,7 @@ using System.Threading.Tasks; namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp { - class INfp : IpcService + partial class INfp : IpcService { #pragma warning disable IDE0052 // Remove unread private member private ulong _appletResourceUserId; diff --git a/src/Ryujinx.HLE/HOS/Services/Ngct/IService.cs b/src/Ryujinx.HLE/HOS/Services/Ngct/IService.cs index d9ca70047..6925695c9 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ngct/IService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ngct/IService.cs @@ -1,7 +1,7 @@ namespace Ryujinx.HLE.HOS.Services.Ngct { [Service("ngct:u")] // 9.0.0+ - class IService : IpcService + partial class IService : IpcService { public IService(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Ngct/IServiceWithManagementApi.cs b/src/Ryujinx.HLE/HOS/Services/Ngct/IServiceWithManagementApi.cs index 88995335c..a5026e227 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ngct/IServiceWithManagementApi.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ngct/IServiceWithManagementApi.cs @@ -1,7 +1,7 @@ namespace Ryujinx.HLE.HOS.Services.Ngct { [Service("ngct:s")] // 9.0.0+ - class IServiceWithManagementApi : IpcService + partial class IServiceWithManagementApi : IpcService { public IServiceWithManagementApi(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Nifm/IStaticService.cs b/src/Ryujinx.HLE/HOS/Services/Nifm/IStaticService.cs index d669caba1..dc69f19d3 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nifm/IStaticService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nifm/IStaticService.cs @@ -5,7 +5,7 @@ namespace Ryujinx.HLE.HOS.Services.Nifm [Service("nifm:a")] // Max sessions: 2 [Service("nifm:s")] // Max sessions: 16 [Service("nifm:u")] // Max sessions: 5 - class IStaticService : IpcService + partial class IStaticService : IpcService { public IStaticService(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Nifm/StaticService/IGeneralService.cs b/src/Ryujinx.HLE/HOS/Services/Nifm/StaticService/IGeneralService.cs index dd4efce6e..3abb52b9b 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nifm/StaticService/IGeneralService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nifm/StaticService/IGeneralService.cs @@ -10,7 +10,7 @@ using System.Runtime.CompilerServices; namespace Ryujinx.HLE.HOS.Services.Nifm.StaticService { - class IGeneralService : DisposableIpcService + partial class IGeneralService : DisposableIpcService { private readonly GeneralServiceDetail _generalServiceDetail; diff --git a/src/Ryujinx.HLE/HOS/Services/Nifm/StaticService/IRequest.cs b/src/Ryujinx.HLE/HOS/Services/Nifm/StaticService/IRequest.cs index 577d03822..68ba510a2 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nifm/StaticService/IRequest.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nifm/StaticService/IRequest.cs @@ -6,7 +6,7 @@ using System; namespace Ryujinx.HLE.HOS.Services.Nifm.StaticService { - class IRequest : IpcService + partial class IRequest : IpcService { private enum RequestState { diff --git a/src/Ryujinx.HLE/HOS/Services/Nim/IShopServiceAccessServer.cs b/src/Ryujinx.HLE/HOS/Services/Nim/IShopServiceAccessServer.cs index 4deecc531..9bdc8ea04 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nim/IShopServiceAccessServer.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nim/IShopServiceAccessServer.cs @@ -3,7 +3,7 @@ using Ryujinx.HLE.HOS.Services.Nim.ShopServiceAccessServerInterface.ShopServiceA namespace Ryujinx.HLE.HOS.Services.Nim.ShopServiceAccessServerInterface { - class IShopServiceAccessServer : IpcService + partial class IShopServiceAccessServer : IpcService { public IShopServiceAccessServer() { } diff --git a/src/Ryujinx.HLE/HOS/Services/Nim/IShopServiceAccessServerInterface.cs b/src/Ryujinx.HLE/HOS/Services/Nim/IShopServiceAccessServerInterface.cs index d7e276ea0..213338299 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nim/IShopServiceAccessServerInterface.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nim/IShopServiceAccessServerInterface.cs @@ -6,7 +6,7 @@ using Ryujinx.HLE.HOS.Services.Nim.ShopServiceAccessServerInterface; namespace Ryujinx.HLE.HOS.Services.Nim { [Service("nim:eca")] // 5.0.0+ - class IShopServiceAccessServerInterface : IpcService + partial class IShopServiceAccessServerInterface : IpcService { public IShopServiceAccessServerInterface(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Nim/IShopServiceAccessor.cs b/src/Ryujinx.HLE/HOS/Services/Nim/IShopServiceAccessor.cs index c1f58a076..6ec5d8b13 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nim/IShopServiceAccessor.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nim/IShopServiceAccessor.cs @@ -7,7 +7,7 @@ using System; namespace Ryujinx.HLE.HOS.Services.Nim.ShopServiceAccessServerInterface.ShopServiceAccessServer { - class IShopServiceAccessor : IpcService + partial class IShopServiceAccessor : IpcService { private readonly KEvent _event; diff --git a/src/Ryujinx.HLE/HOS/Services/Nim/Ntc/IStaticService.cs b/src/Ryujinx.HLE/HOS/Services/Nim/Ntc/IStaticService.cs index ed6e4472e..ead72efe0 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nim/Ntc/IStaticService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nim/Ntc/IStaticService.cs @@ -4,7 +4,7 @@ using Ryujinx.HLE.HOS.Services.Nim.Ntc.StaticService; namespace Ryujinx.HLE.HOS.Services.Nim.Ntc { [Service("ntc")] - class IStaticService : IpcService + partial class IStaticService : IpcService { public IStaticService(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Nim/Ntc/StaticService/IEnsureNetworkClockAvailabilityService.cs b/src/Ryujinx.HLE/HOS/Services/Nim/Ntc/StaticService/IEnsureNetworkClockAvailabilityService.cs index 2bd6f4f0d..11247af1a 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nim/Ntc/StaticService/IEnsureNetworkClockAvailabilityService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nim/Ntc/StaticService/IEnsureNetworkClockAvailabilityService.cs @@ -6,7 +6,7 @@ using System; namespace Ryujinx.HLE.HOS.Services.Nim.Ntc.StaticService { - class IEnsureNetworkClockAvailabilityService : IpcService + partial class IEnsureNetworkClockAvailabilityService : IpcService { private readonly KEvent _finishNotificationEvent; private ResultCode _taskResultCode; diff --git a/src/Ryujinx.HLE/HOS/Services/Ns/Aoc/IAddOnContentManager.cs b/src/Ryujinx.HLE/HOS/Services/Ns/Aoc/IAddOnContentManager.cs index c77358803..cd4ab6d4e 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ns/Aoc/IAddOnContentManager.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ns/Aoc/IAddOnContentManager.cs @@ -8,7 +8,7 @@ using System.Collections.Generic; namespace Ryujinx.HLE.HOS.Services.Ns.Aoc { [Service("aoc:u")] - class IAddOnContentManager : IpcService + partial class IAddOnContentManager : IpcService { private readonly KEvent _addOnContentListChangedEvent; private int _addOnContentListChangedEventHandle; diff --git a/src/Ryujinx.HLE/HOS/Services/Ns/Aoc/IPurchaseEventManager.cs b/src/Ryujinx.HLE/HOS/Services/Ns/Aoc/IPurchaseEventManager.cs index 8521adc6e..b01db8a35 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ns/Aoc/IPurchaseEventManager.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ns/Aoc/IPurchaseEventManager.cs @@ -6,7 +6,7 @@ using System; namespace Ryujinx.HLE.HOS.Services.Ns.Aoc { - class IPurchaseEventManager : IpcService + partial class IPurchaseEventManager : IpcService { private readonly KEvent _purchasedEvent; diff --git a/src/Ryujinx.HLE/HOS/Services/Ns/IApplicationManagerInterface.cs b/src/Ryujinx.HLE/HOS/Services/Ns/IApplicationManagerInterface.cs index f510da594..e9cca2935 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ns/IApplicationManagerInterface.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ns/IApplicationManagerInterface.cs @@ -4,7 +4,7 @@ using Ryujinx.Common.Utilities; namespace Ryujinx.HLE.HOS.Services.Ns { [Service("ns:am")] - class IApplicationManagerInterface : IpcService + partial class IApplicationManagerInterface : IpcService { public IApplicationManagerInterface(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Ns/IReadOnlyApplicationControlDataInterface.cs b/src/Ryujinx.HLE/HOS/Services/Ns/IReadOnlyApplicationControlDataInterface.cs index ca7d42b48..a052c6d0e 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ns/IReadOnlyApplicationControlDataInterface.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ns/IReadOnlyApplicationControlDataInterface.cs @@ -3,7 +3,7 @@ using LibHac.Ns; namespace Ryujinx.HLE.HOS.Services.Ns { - class IReadOnlyApplicationControlDataInterface : IpcService + partial class IReadOnlyApplicationControlDataInterface : IpcService { public IReadOnlyApplicationControlDataInterface(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Ns/IServiceGetterInterface.cs b/src/Ryujinx.HLE/HOS/Services/Ns/IServiceGetterInterface.cs index e45c6750c..bcca7278f 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ns/IServiceGetterInterface.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ns/IServiceGetterInterface.cs @@ -5,7 +5,7 @@ namespace Ryujinx.HLE.HOS.Services.Ns [Service("ns:rid")] [Service("ns:rt")] [Service("ns:web")] - class IServiceGetterInterface : IpcService + partial class IServiceGetterInterface : IpcService { public IServiceGetterInterface(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs b/src/Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs index ed14b3e15..d7e420383 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs @@ -24,7 +24,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv [Service("nvdrv:a")] [Service("nvdrv:s")] [Service("nvdrv:t")] - class INvDrvServices : IpcService + partial class INvDrvServices : IpcService { private static readonly List _deviceFileDebugRegistry = [ diff --git a/src/Ryujinx.HLE/HOS/Services/Olsc/IOlscServiceForApplication.cs b/src/Ryujinx.HLE/HOS/Services/Olsc/IOlscServiceForApplication.cs index 1513d6fed..aac888272 100644 --- a/src/Ryujinx.HLE/HOS/Services/Olsc/IOlscServiceForApplication.cs +++ b/src/Ryujinx.HLE/HOS/Services/Olsc/IOlscServiceForApplication.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace Ryujinx.HLE.HOS.Services.Olsc { [Service("olsc:u")] // 10.0.0+ - class IOlscServiceForApplication : IpcService + partial class IOlscServiceForApplication : IpcService { private bool _initialized; private Dictionary _saveDataBackupSettingDatabase; diff --git a/src/Ryujinx.HLE/HOS/Services/Pctl/IParentalControlServiceFactory.cs b/src/Ryujinx.HLE/HOS/Services/Pctl/IParentalControlServiceFactory.cs index 707f6423c..12938bf2b 100644 --- a/src/Ryujinx.HLE/HOS/Services/Pctl/IParentalControlServiceFactory.cs +++ b/src/Ryujinx.HLE/HOS/Services/Pctl/IParentalControlServiceFactory.cs @@ -6,7 +6,7 @@ namespace Ryujinx.HLE.HOS.Services.Pctl [Service("pctl:a", 0x83BE)] [Service("pctl:r", 0x8040)] [Service("pctl:s", 0x838E)] - class IParentalControlServiceFactory : IpcService + partial class IParentalControlServiceFactory : IpcService { private readonly int _permissionFlag; diff --git a/src/Ryujinx.HLE/HOS/Services/Pctl/ParentalControlServiceFactory/IParentalControlService.cs b/src/Ryujinx.HLE/HOS/Services/Pctl/ParentalControlServiceFactory/IParentalControlService.cs index c36482e41..ddf7b21bd 100644 --- a/src/Ryujinx.HLE/HOS/Services/Pctl/ParentalControlServiceFactory/IParentalControlService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Pctl/ParentalControlServiceFactory/IParentalControlService.cs @@ -5,7 +5,7 @@ using static LibHac.Ns.ApplicationControlProperty; namespace Ryujinx.HLE.HOS.Services.Pctl.ParentalControlServiceFactory { - class IParentalControlService : IpcService + partial class IParentalControlService : IpcService { private readonly ulong _pid; private readonly int _permissionFlag; diff --git a/src/Ryujinx.HLE/HOS/Services/Pcv/Bpc/IRtcManager.cs b/src/Ryujinx.HLE/HOS/Services/Pcv/Bpc/IRtcManager.cs index c37176845..7cab9a2a0 100644 --- a/src/Ryujinx.HLE/HOS/Services/Pcv/Bpc/IRtcManager.cs +++ b/src/Ryujinx.HLE/HOS/Services/Pcv/Bpc/IRtcManager.cs @@ -3,7 +3,7 @@ using System; namespace Ryujinx.HLE.HOS.Services.Pcv.Bpc { [Service("bpc:r")] // 1.0.0 - 8.1.0 - class IRtcManager : IpcService + partial class IRtcManager : IpcService { public IRtcManager(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Pcv/Clkrst/ClkrstManager/IClkrstSession.cs b/src/Ryujinx.HLE/HOS/Services/Pcv/Clkrst/ClkrstManager/IClkrstSession.cs index 5d90fcbe2..3bdfe9119 100644 --- a/src/Ryujinx.HLE/HOS/Services/Pcv/Clkrst/ClkrstManager/IClkrstSession.cs +++ b/src/Ryujinx.HLE/HOS/Services/Pcv/Clkrst/ClkrstManager/IClkrstSession.cs @@ -4,7 +4,7 @@ using System.Linq; namespace Ryujinx.HLE.HOS.Services.Pcv.Clkrst.ClkrstManager { - class IClkrstSession : IpcService + partial class IClkrstSession : IpcService { private readonly DeviceCode _deviceCode; #pragma warning disable IDE0052 // Remove unread private member diff --git a/src/Ryujinx.HLE/HOS/Services/Pcv/Clkrst/IClkrstManager.cs b/src/Ryujinx.HLE/HOS/Services/Pcv/Clkrst/IClkrstManager.cs index c7c459196..228a3d632 100644 --- a/src/Ryujinx.HLE/HOS/Services/Pcv/Clkrst/IClkrstManager.cs +++ b/src/Ryujinx.HLE/HOS/Services/Pcv/Clkrst/IClkrstManager.cs @@ -8,7 +8,7 @@ namespace Ryujinx.HLE.HOS.Services.Pcv.Clkrst { [Service("clkrst")] // 8.0.0+ [Service("clkrst:i")] // 8.0.0+ - class IClkrstManager : IpcService + partial class IClkrstManager : IpcService { private int _moduleStateTableEventHandle = 0; diff --git a/src/Ryujinx.HLE/HOS/Services/Pm/IDebugMonitorInterface.cs b/src/Ryujinx.HLE/HOS/Services/Pm/IDebugMonitorInterface.cs index 9becc6e46..12fdad24f 100644 --- a/src/Ryujinx.HLE/HOS/Services/Pm/IDebugMonitorInterface.cs +++ b/src/Ryujinx.HLE/HOS/Services/Pm/IDebugMonitorInterface.cs @@ -6,7 +6,7 @@ using Ryujinx.Horizon.Common; namespace Ryujinx.HLE.HOS.Services.Pm { [Service("pm:dmnt")] - class IDebugMonitorInterface : IpcService + partial class IDebugMonitorInterface : IpcService { public IDebugMonitorInterface(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Pm/IInformationInterface.cs b/src/Ryujinx.HLE/HOS/Services/Pm/IInformationInterface.cs index d6440a4d1..e3277f3ff 100644 --- a/src/Ryujinx.HLE/HOS/Services/Pm/IInformationInterface.cs +++ b/src/Ryujinx.HLE/HOS/Services/Pm/IInformationInterface.cs @@ -3,7 +3,7 @@ using Ryujinx.HLE.HOS.Kernel.Process; namespace Ryujinx.HLE.HOS.Services.Pm { [Service("pm:info")] - class IInformationInterface : IpcService + partial class IInformationInterface : IpcService { public IInformationInterface(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Pm/IShellInterface.cs b/src/Ryujinx.HLE/HOS/Services/Pm/IShellInterface.cs index 1ee2c377f..9bac12bca 100644 --- a/src/Ryujinx.HLE/HOS/Services/Pm/IShellInterface.cs +++ b/src/Ryujinx.HLE/HOS/Services/Pm/IShellInterface.cs @@ -1,7 +1,7 @@ namespace Ryujinx.HLE.HOS.Services.Pm { [Service("pm:shell")] - class IShellInterface : IpcService + partial class IShellInterface : IpcService { public IShellInterface(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Ptm/Psm/IPsmServer.cs b/src/Ryujinx.HLE/HOS/Services/Ptm/Psm/IPsmServer.cs index 3ce502974..94536382f 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ptm/Psm/IPsmServer.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ptm/Psm/IPsmServer.cs @@ -3,7 +3,7 @@ using Ryujinx.Common.Logging; namespace Ryujinx.HLE.HOS.Services.Ptm.Psm { [Service("psm")] - class IPsmServer : IpcService + partial class IPsmServer : IpcService { public IPsmServer(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Ptm/Psm/IPsmSession.cs b/src/Ryujinx.HLE/HOS/Services/Ptm/Psm/IPsmSession.cs index edfa60afd..3d737108d 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ptm/Psm/IPsmSession.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ptm/Psm/IPsmSession.cs @@ -5,7 +5,7 @@ using Ryujinx.Horizon.Common; namespace Ryujinx.HLE.HOS.Services.Ptm.Psm { - class IPsmSession : IpcService + partial class IPsmSession : IpcService { private readonly KEvent _stateChangeEvent; private int _stateChangeEventHandle; diff --git a/src/Ryujinx.HLE/HOS/Services/Ro/IRoInterface.cs b/src/Ryujinx.HLE/HOS/Services/Ro/IRoInterface.cs index 873782d87..e8e80853e 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ro/IRoInterface.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ro/IRoInterface.cs @@ -16,7 +16,7 @@ namespace Ryujinx.HLE.HOS.Services.Ro { [Service("ldr:ro")] [Service("ro:1")] // 7.0.0+ - class IRoInterface : DisposableIpcService + partial class IRoInterface : DisposableIpcService { private const int MaxNrr = 0x40; private const int MaxNro = 0x40; diff --git a/src/Ryujinx.HLE/HOS/Services/Sdb/Pdm/IQueryService.cs b/src/Ryujinx.HLE/HOS/Services/Sdb/Pdm/IQueryService.cs index 6508794ab..ecc28e111 100644 --- a/src/Ryujinx.HLE/HOS/Services/Sdb/Pdm/IQueryService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Sdb/Pdm/IQueryService.cs @@ -3,7 +3,7 @@ using Ryujinx.HLE.HOS.Services.Sdb.Pdm.QueryService; namespace Ryujinx.HLE.HOS.Services.Sdb.Pdm { [Service("pdm:qry")] - class IQueryService : IpcService + partial class IQueryService : IpcService { public IQueryService(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Sdb/Pl/ISharedFontManager.cs b/src/Ryujinx.HLE/HOS/Services/Sdb/Pl/ISharedFontManager.cs index 45c4ce7e1..e8df8d2da 100644 --- a/src/Ryujinx.HLE/HOS/Services/Sdb/Pl/ISharedFontManager.cs +++ b/src/Ryujinx.HLE/HOS/Services/Sdb/Pl/ISharedFontManager.cs @@ -7,7 +7,7 @@ namespace Ryujinx.HLE.HOS.Services.Sdb.Pl { [Service("pl:u")] [Service("pl:s")] // 9.0.0+ - class ISharedFontManager : IpcService + partial class ISharedFontManager : IpcService { private int _fontSharedMemHandle; diff --git a/src/Ryujinx.HLE/HOS/Services/Settings/ISettingsServer.cs b/src/Ryujinx.HLE/HOS/Services/Settings/ISettingsServer.cs index fef994bf8..68ca85df3 100644 --- a/src/Ryujinx.HLE/HOS/Services/Settings/ISettingsServer.cs +++ b/src/Ryujinx.HLE/HOS/Services/Settings/ISettingsServer.cs @@ -6,7 +6,7 @@ using System.Text; namespace Ryujinx.HLE.HOS.Services.Settings { [Service("set")] - class ISettingsServer : IpcService + partial class ISettingsServer : IpcService { public ISettingsServer(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Settings/ISystemSettingsServer.cs b/src/Ryujinx.HLE/HOS/Services/Settings/ISystemSettingsServer.cs index cfad2884a..7dc89b5f1 100644 --- a/src/Ryujinx.HLE/HOS/Services/Settings/ISystemSettingsServer.cs +++ b/src/Ryujinx.HLE/HOS/Services/Settings/ISystemSettingsServer.cs @@ -15,7 +15,7 @@ using System.Text; namespace Ryujinx.HLE.HOS.Services.Settings { [Service("set:sys")] - class ISystemSettingsServer : IpcService + partial class ISystemSettingsServer : IpcService { public ISystemSettingsServer(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Sm/IUserInterface.cs b/src/Ryujinx.HLE/HOS/Services/Sm/IUserInterface.cs index 743c208e4..bf1ba5b8e 100644 --- a/src/Ryujinx.HLE/HOS/Services/Sm/IUserInterface.cs +++ b/src/Ryujinx.HLE/HOS/Services/Sm/IUserInterface.cs @@ -16,7 +16,7 @@ namespace Ryujinx.HLE.HOS.Services.Sm private bool _isInitialized; - public IUserInterface(KernelContext context, SmRegistry registry) : base(registerTipc: true) + public IUserInterface(KernelContext context, SmRegistry registry) { _commonServer = new ServerBase(context, "CommonServer"); _registry = registry; diff --git a/src/Ryujinx.HLE/HOS/Services/Sockets/Bsd/IClient.cs b/src/Ryujinx.HLE/HOS/Services/Sockets/Bsd/IClient.cs index ef3b68b27..cb56be35b 100644 --- a/src/Ryujinx.HLE/HOS/Services/Sockets/Bsd/IClient.cs +++ b/src/Ryujinx.HLE/HOS/Services/Sockets/Bsd/IClient.cs @@ -14,7 +14,7 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd { [Service("bsd:s", true)] [Service("bsd:u", false)] - class IClient : IpcService + partial class IClient : IpcService { private static readonly List _pollManagers = [ diff --git a/src/Ryujinx.HLE/HOS/Services/Sockets/Nsd/IManager.cs b/src/Ryujinx.HLE/HOS/Services/Sockets/Nsd/IManager.cs index 9e13a005c..17ec989c2 100644 --- a/src/Ryujinx.HLE/HOS/Services/Sockets/Nsd/IManager.cs +++ b/src/Ryujinx.HLE/HOS/Services/Sockets/Nsd/IManager.cs @@ -11,7 +11,7 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Nsd { [Service("nsd:a")] // Max sessions: 5 [Service("nsd:u")] // Max sessions: 20 - class IManager : IpcService + partial class IManager : IpcService { public static readonly NsdSettings NsdSettings; private readonly FqdnResolver _fqdnResolver; diff --git a/src/Ryujinx.HLE/HOS/Services/Sockets/Sfdnsres/IResolver.cs b/src/Ryujinx.HLE/HOS/Services/Sockets/Sfdnsres/IResolver.cs index 80bdbec8a..2df19228d 100644 --- a/src/Ryujinx.HLE/HOS/Services/Sockets/Sfdnsres/IResolver.cs +++ b/src/Ryujinx.HLE/HOS/Services/Sockets/Sfdnsres/IResolver.cs @@ -16,7 +16,7 @@ using System.Text; namespace Ryujinx.HLE.HOS.Services.Sockets.Sfdnsres { [Service("sfdnsres")] - class IResolver : IpcService + partial class IResolver : IpcService { public IResolver(ServiceCtx context) { diff --git a/src/Ryujinx.HLE/HOS/Services/Spl/IGeneralInterface.cs b/src/Ryujinx.HLE/HOS/Services/Spl/IGeneralInterface.cs index 6a9b4d442..725b27054 100644 --- a/src/Ryujinx.HLE/HOS/Services/Spl/IGeneralInterface.cs +++ b/src/Ryujinx.HLE/HOS/Services/Spl/IGeneralInterface.cs @@ -10,7 +10,7 @@ namespace Ryujinx.HLE.HOS.Services.Spl [Service("spl:manu")] [Service("spl:mig")] [Service("spl:ssl")] - class IGeneralInterface : IpcService + partial class IGeneralInterface : IpcService { public IGeneralInterface(ServiceCtx context) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Spl/IRandomInterface.cs b/src/Ryujinx.HLE/HOS/Services/Spl/IRandomInterface.cs index fc58613f5..65b482bf2 100644 --- a/src/Ryujinx.HLE/HOS/Services/Spl/IRandomInterface.cs +++ b/src/Ryujinx.HLE/HOS/Services/Spl/IRandomInterface.cs @@ -3,7 +3,7 @@ using System.Security.Cryptography; namespace Ryujinx.HLE.HOS.Services.Spl { [Service("csrng")] - class IRandomInterface : DisposableIpcService + partial class IRandomInterface : DisposableIpcService { private readonly RandomNumberGenerator _rng; diff --git a/src/Ryujinx.HLE/HOS/Services/Ssl/ISslService.cs b/src/Ryujinx.HLE/HOS/Services/Ssl/ISslService.cs index 8f38f293f..4d9d9777e 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ssl/ISslService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ssl/ISslService.cs @@ -10,7 +10,7 @@ namespace Ryujinx.HLE.HOS.Services.Ssl { [Service("ssl")] [Service("ssl:s")] - class ISslService : IpcService + partial class ISslService : IpcService { // NOTE: The SSL service is used by games to connect it to various official online services, which we do not intend to support. // In this case it is acceptable to stub all calls of the service. diff --git a/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslConnection.cs b/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslConnection.cs index 623990a58..830eb635a 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslConnection.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslConnection.cs @@ -8,7 +8,7 @@ using System.Text; namespace Ryujinx.HLE.HOS.Services.Ssl.SslService { - class ISslConnection : IpcService, IDisposable + partial class ISslConnection : IpcService, IDisposable { private bool _doNotClockSocket; private bool _getServerCertChain; diff --git a/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslContext.cs b/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslContext.cs index 7b371d299..d86c87bd0 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslContext.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslContext.cs @@ -4,7 +4,7 @@ using System.Text; namespace Ryujinx.HLE.HOS.Services.Ssl.SslService { - class ISslContext : IpcService + partial class ISslContext : IpcService { private uint _connectionCount; diff --git a/src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/IHOSBinderDriver.cs b/src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/IHOSBinderDriver.cs index e23e6fa3f..9a3da9571 100644 --- a/src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/IHOSBinderDriver.cs +++ b/src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/IHOSBinderDriver.cs @@ -6,7 +6,7 @@ using System; namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger { - abstract class IHOSBinderDriver : IpcService + abstract partial class IHOSBinderDriver : IpcService { public IHOSBinderDriver() { } diff --git a/src/Ryujinx.HLE/HOS/Services/Time/IStaticServiceForGlue.cs b/src/Ryujinx.HLE/HOS/Services/Time/IStaticServiceForGlue.cs index eaddf9cff..2c2c63f9f 100644 --- a/src/Ryujinx.HLE/HOS/Services/Time/IStaticServiceForGlue.cs +++ b/src/Ryujinx.HLE/HOS/Services/Time/IStaticServiceForGlue.cs @@ -10,7 +10,7 @@ namespace Ryujinx.HLE.HOS.Services.Time [Service("time:a", TimePermissions.Admin)] [Service("time:r", TimePermissions.Repair)] [Service("time:u", TimePermissions.User)] - class IStaticServiceForGlue : IpcService + partial class IStaticServiceForGlue : IpcService { private readonly IStaticServiceForPsc _inner; private readonly TimePermissions _permissions; diff --git a/src/Ryujinx.HLE/HOS/Services/Time/IStaticServiceForPsc.cs b/src/Ryujinx.HLE/HOS/Services/Time/IStaticServiceForPsc.cs index a6b33e4ae..53cd1b87e 100644 --- a/src/Ryujinx.HLE/HOS/Services/Time/IStaticServiceForPsc.cs +++ b/src/Ryujinx.HLE/HOS/Services/Time/IStaticServiceForPsc.cs @@ -16,7 +16,7 @@ namespace Ryujinx.HLE.HOS.Services.Time { [Service("time:s", TimePermissions.System)] [Service("time:su", TimePermissions.SystemUpdate)] - class IStaticServiceForPsc : IpcService + partial class IStaticServiceForPsc : IpcService { private readonly TimeManager _timeManager; private readonly TimePermissions _permissions; diff --git a/src/Ryujinx.HLE/HOS/Services/Time/ITimeServiceManager.cs b/src/Ryujinx.HLE/HOS/Services/Time/ITimeServiceManager.cs index 1648aa3e1..3abee97df 100644 --- a/src/Ryujinx.HLE/HOS/Services/Time/ITimeServiceManager.cs +++ b/src/Ryujinx.HLE/HOS/Services/Time/ITimeServiceManager.cs @@ -11,7 +11,7 @@ using System.IO; namespace Ryujinx.HLE.HOS.Services.Time { [Service("time:m")] // 9.0.0+ - class ITimeServiceManager : IpcService + partial class ITimeServiceManager : IpcService { private readonly TimeManager _timeManager; private int _automaticCorrectionEvent; diff --git a/src/Ryujinx.HLE/HOS/Services/Time/StaticService/ISteadyClock.cs b/src/Ryujinx.HLE/HOS/Services/Time/StaticService/ISteadyClock.cs index 8ddb646b9..6c99bf683 100644 --- a/src/Ryujinx.HLE/HOS/Services/Time/StaticService/ISteadyClock.cs +++ b/src/Ryujinx.HLE/HOS/Services/Time/StaticService/ISteadyClock.cs @@ -4,7 +4,7 @@ using Ryujinx.HLE.HOS.Services.Time.Clock; namespace Ryujinx.HLE.HOS.Services.Time.StaticService { - class ISteadyClock : IpcService + partial class ISteadyClock : IpcService { private readonly SteadyClockCore _steadyClock; private readonly bool _writePermission; diff --git a/src/Ryujinx.HLE/HOS/Services/Time/StaticService/ISystemClock.cs b/src/Ryujinx.HLE/HOS/Services/Time/StaticService/ISystemClock.cs index ada5f057a..47bcfc802 100644 --- a/src/Ryujinx.HLE/HOS/Services/Time/StaticService/ISystemClock.cs +++ b/src/Ryujinx.HLE/HOS/Services/Time/StaticService/ISystemClock.cs @@ -8,7 +8,7 @@ using System; namespace Ryujinx.HLE.HOS.Services.Time.StaticService { - class ISystemClock : IpcService + partial class ISystemClock : IpcService { private readonly SystemClockCore _clockCore; private readonly bool _writePermission; diff --git a/src/Ryujinx.HLE/HOS/Services/Time/StaticService/ITimeZoneServiceForGlue.cs b/src/Ryujinx.HLE/HOS/Services/Time/StaticService/ITimeZoneServiceForGlue.cs index 81944c835..028506a3e 100644 --- a/src/Ryujinx.HLE/HOS/Services/Time/StaticService/ITimeZoneServiceForGlue.cs +++ b/src/Ryujinx.HLE/HOS/Services/Time/StaticService/ITimeZoneServiceForGlue.cs @@ -10,7 +10,7 @@ using System.Text; namespace Ryujinx.HLE.HOS.Services.Time.StaticService { - class ITimeZoneServiceForGlue : IpcService + partial class ITimeZoneServiceForGlue : IpcService { private readonly TimeZoneContentManager _timeZoneContentManager; private readonly ITimeZoneServiceForPsc _inner; diff --git a/src/Ryujinx.HLE/HOS/Services/Time/StaticService/ITimeZoneServiceForPsc.cs b/src/Ryujinx.HLE/HOS/Services/Time/StaticService/ITimeZoneServiceForPsc.cs index b18a4f76c..245a5a050 100644 --- a/src/Ryujinx.HLE/HOS/Services/Time/StaticService/ITimeZoneServiceForPsc.cs +++ b/src/Ryujinx.HLE/HOS/Services/Time/StaticService/ITimeZoneServiceForPsc.cs @@ -12,7 +12,7 @@ using System.Runtime.InteropServices; namespace Ryujinx.HLE.HOS.Services.Time.StaticService { - class ITimeZoneServiceForPsc : IpcService + partial class ITimeZoneServiceForPsc : IpcService { private readonly TimeZoneManager _timeZoneManager; private readonly bool _writePermission; diff --git a/src/Ryujinx.HLE/HOS/Services/Vi/IApplicationRootService.cs b/src/Ryujinx.HLE/HOS/Services/Vi/IApplicationRootService.cs index 9cc9d421f..385ef486e 100644 --- a/src/Ryujinx.HLE/HOS/Services/Vi/IApplicationRootService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Vi/IApplicationRootService.cs @@ -4,7 +4,7 @@ using Ryujinx.HLE.HOS.Services.Vi.Types; namespace Ryujinx.HLE.HOS.Services.Vi { [Service("vi:u")] - class IApplicationRootService : IpcService + partial class IApplicationRootService : IpcService { public IApplicationRootService(ServiceCtx context) : base(context.Device.System.ViServer) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Vi/IManagerRootService.cs b/src/Ryujinx.HLE/HOS/Services/Vi/IManagerRootService.cs index dd4b25a08..0ef80b196 100644 --- a/src/Ryujinx.HLE/HOS/Services/Vi/IManagerRootService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Vi/IManagerRootService.cs @@ -4,7 +4,7 @@ using Ryujinx.HLE.HOS.Services.Vi.Types; namespace Ryujinx.HLE.HOS.Services.Vi { [Service("vi:m")] - class IManagerRootService : IpcService + partial class IManagerRootService : IpcService { // vi:u/m/s aren't on 3 separate threads but we can't put them together with the current ServerBase public IManagerRootService(ServiceCtx context) : base(context.Device.System.ViServerM) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Vi/ISystemRootService.cs b/src/Ryujinx.HLE/HOS/Services/Vi/ISystemRootService.cs index b2415f2e4..974684d36 100644 --- a/src/Ryujinx.HLE/HOS/Services/Vi/ISystemRootService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Vi/ISystemRootService.cs @@ -4,7 +4,7 @@ using Ryujinx.HLE.HOS.Services.Vi.Types; namespace Ryujinx.HLE.HOS.Services.Vi { [Service("vi:s")] - class ISystemRootService : IpcService + partial class ISystemRootService : IpcService { // vi:u/m/s aren't on 3 separate threads but we can't put them together with the current ServerBase public ISystemRootService(ServiceCtx context) : base(context.Device.System.ViServerS) { } diff --git a/src/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/IManagerDisplayService.cs b/src/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/IManagerDisplayService.cs index 0e5d103d1..5a3780bb6 100644 --- a/src/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/IManagerDisplayService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/IManagerDisplayService.cs @@ -2,7 +2,7 @@ using Ryujinx.Common.Logging; namespace Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService { - class IManagerDisplayService : IpcService + partial class IManagerDisplayService : IpcService { private readonly IApplicationDisplayService _applicationDisplayService; diff --git a/src/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/ISystemDisplayService.cs b/src/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/ISystemDisplayService.cs index 507290692..0140c0ee1 100644 --- a/src/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/ISystemDisplayService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/ISystemDisplayService.cs @@ -2,7 +2,7 @@ using Ryujinx.Common.Logging; namespace Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService { - class ISystemDisplayService : IpcService + partial class ISystemDisplayService : IpcService { private readonly IApplicationDisplayService _applicationDisplayService; diff --git a/src/Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs b/src/Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs index 99c640aa0..c5cc05610 100644 --- a/src/Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs @@ -17,7 +17,7 @@ using System.Text; namespace Ryujinx.HLE.HOS.Services.Vi.RootService { - class IApplicationDisplayService : IpcService + partial class IApplicationDisplayService : IpcService { private readonly ViServiceType _serviceType;