diff options
| author | Ac_K <Acoustik666@gmail.com> | 2019-07-12 03:13:43 +0200 |
|---|---|---|
| committer | gdkchan <gab.dark.100@gmail.com> | 2019-07-11 22:13:43 -0300 |
| commit | 560ccbeb2d55a4426ad2827bf7534d4a695431c2 (patch) | |
| tree | 7e224acbd6c023ea56ff80c6207aa0966aa06ee5 /Ryujinx.HLE/HOS/Services/Ns | |
| parent | f723f6f39aaf7b1cebc0224a055058d62e3b689c (diff) | |
Refactoring commands handling (#728)
* Refactoring commands handling
- Use Reflection to handle commands ID.
- Add all symbols (from SwIPC so not all time accurate).
- Re-sort some services commands methods.
- Some cleanup.
- Keep some empty constructor for consistency.
* Fix order in IProfile
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Ns')
5 files changed, 14 insertions, 70 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Ns/IAddOnContentManager.cs b/Ryujinx.HLE/HOS/Services/Ns/IAddOnContentManager.cs index fe845f87..3357bce1 100644 --- a/Ryujinx.HLE/HOS/Services/Ns/IAddOnContentManager.cs +++ b/Ryujinx.HLE/HOS/Services/Ns/IAddOnContentManager.cs @@ -1,25 +1,14 @@ using Ryujinx.Common.Logging; -using Ryujinx.HLE.HOS.Ipc; -using System.Collections.Generic; namespace Ryujinx.HLE.HOS.Services.Ns { [Service("aoc:u")] class IAddOnContentManager : IpcService { - private Dictionary<int, ServiceProcessRequest> _commands; - - public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => _commands; - - public IAddOnContentManager(ServiceCtx context) - { - _commands = new Dictionary<int, ServiceProcessRequest> - { - { 2, CountAddOnContent }, - { 3, ListAddOnContent } - }; - } + public IAddOnContentManager(ServiceCtx context) { } + [Command(2)] + // CountAddOnContent(u64, pid) -> u32 public static long CountAddOnContent(ServiceCtx context) { context.ResponseData.Write(0); @@ -29,6 +18,8 @@ namespace Ryujinx.HLE.HOS.Services.Ns return 0; } + [Command(3)] + // ListAddOnContent(u32, u32, u64, pid) -> (u32, buffer<u32, 6>) public static long ListAddOnContent(ServiceCtx context) { Logger.PrintStub(LogClass.ServiceNs); diff --git a/Ryujinx.HLE/HOS/Services/Ns/IApplicationManagerInterface.cs b/Ryujinx.HLE/HOS/Services/Ns/IApplicationManagerInterface.cs index 32c50dcd..50d181b7 100644 --- a/Ryujinx.HLE/HOS/Services/Ns/IApplicationManagerInterface.cs +++ b/Ryujinx.HLE/HOS/Services/Ns/IApplicationManagerInterface.cs @@ -1,7 +1,5 @@ using LibHac; -using Ryujinx.HLE.HOS.Ipc; using System; -using System.Collections.Generic; using System.Text; namespace Ryujinx.HLE.HOS.Services.Ns @@ -9,18 +7,10 @@ namespace Ryujinx.HLE.HOS.Services.Ns [Service("ns:am")] class IApplicationManagerInterface : IpcService { - private Dictionary<int, ServiceProcessRequest> _commands; - - public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => _commands; - - public IApplicationManagerInterface(ServiceCtx context) - { - _commands = new Dictionary<int, ServiceProcessRequest> - { - { 400, GetApplicationControlData } - }; - } + public IApplicationManagerInterface(ServiceCtx context) { } + [Command(400)] + // GetApplicationControlData(unknown<0x10>) -> (unknown<4>, buffer<unknown, 6>) public long GetApplicationControlData(ServiceCtx context) { long position = context.Request.ReceiveBuff[0].Position; @@ -220,4 +210,4 @@ namespace Ryujinx.HLE.HOS.Services.Ns return 0; } } -} +}
\ No newline at end of file diff --git a/Ryujinx.HLE/HOS/Services/Ns/IServiceGetterInterface.cs b/Ryujinx.HLE/HOS/Services/Ns/IServiceGetterInterface.cs index 7c42d3ed..c1ca8f07 100644 --- a/Ryujinx.HLE/HOS/Services/Ns/IServiceGetterInterface.cs +++ b/Ryujinx.HLE/HOS/Services/Ns/IServiceGetterInterface.cs @@ -1,24 +1,13 @@ -using Ryujinx.HLE.HOS.Ipc; -using System.Collections.Generic; - namespace Ryujinx.HLE.HOS.Services.Ns { [Service("ns:am2")] [Service("ns:ec")] class IServiceGetterInterface : IpcService { - private Dictionary<int, ServiceProcessRequest> _commands; - - public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => _commands; - - public IServiceGetterInterface(ServiceCtx context) - { - _commands = new Dictionary<int, ServiceProcessRequest> - { - { 7996, GetApplicationManagerInterface } - }; - } + public IServiceGetterInterface(ServiceCtx context) { } + [Command(7996)] + // GetApplicationManagerInterface() -> object<nn::ns::detail::IApplicationManagerInterface> public long GetApplicationManagerInterface(ServiceCtx context) { MakeObject(context, new IApplicationManagerInterface(context)); diff --git a/Ryujinx.HLE/HOS/Services/Ns/ISystemUpdateInterface.cs b/Ryujinx.HLE/HOS/Services/Ns/ISystemUpdateInterface.cs index 503b2f10..84ed3d0f 100644 --- a/Ryujinx.HLE/HOS/Services/Ns/ISystemUpdateInterface.cs +++ b/Ryujinx.HLE/HOS/Services/Ns/ISystemUpdateInterface.cs @@ -1,21 +1,8 @@ -using Ryujinx.HLE.HOS.Ipc; -using System.Collections.Generic; - namespace Ryujinx.HLE.HOS.Services.Ns { [Service("ns:su")] class ISystemUpdateInterface : IpcService { - private Dictionary<int, ServiceProcessRequest> _commands; - - public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => _commands; - - public ISystemUpdateInterface(ServiceCtx context) - { - _commands = new Dictionary<int, ServiceProcessRequest> - { - // ... - }; - } + public ISystemUpdateInterface(ServiceCtx context) { } } }
\ No newline at end of file diff --git a/Ryujinx.HLE/HOS/Services/Ns/IVulnerabilityManagerInterface.cs b/Ryujinx.HLE/HOS/Services/Ns/IVulnerabilityManagerInterface.cs index c8a31e16..0b640992 100644 --- a/Ryujinx.HLE/HOS/Services/Ns/IVulnerabilityManagerInterface.cs +++ b/Ryujinx.HLE/HOS/Services/Ns/IVulnerabilityManagerInterface.cs @@ -1,21 +1,8 @@ -using Ryujinx.HLE.HOS.Ipc; -using System.Collections.Generic; - namespace Ryujinx.HLE.HOS.Services.Ns { [Service("ns:vm")] class IVulnerabilityManagerInterface : IpcService { - private Dictionary<int, ServiceProcessRequest> _commands; - - public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => _commands; - - public IVulnerabilityManagerInterface(ServiceCtx context) - { - _commands = new Dictionary<int, ServiceProcessRequest> - { - // ... - }; - } + public IVulnerabilityManagerInterface(ServiceCtx context) { } } }
\ No newline at end of file |
