From 560ccbeb2d55a4426ad2827bf7534d4a695431c2 Mon Sep 17 00:00:00 2001 From: Ac_K Date: Fri, 12 Jul 2019 03:13:43 +0200 Subject: 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 --- Ryujinx.HLE/HOS/Services/Sm/IUserInterface.cs | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) (limited to 'Ryujinx.HLE/HOS/Services/Sm/IUserInterface.cs') diff --git a/Ryujinx.HLE/HOS/Services/Sm/IUserInterface.cs b/Ryujinx.HLE/HOS/Services/Sm/IUserInterface.cs index 4a663bd7..92923850 100644 --- a/Ryujinx.HLE/HOS/Services/Sm/IUserInterface.cs +++ b/Ryujinx.HLE/HOS/Services/Sm/IUserInterface.cs @@ -16,24 +16,12 @@ namespace Ryujinx.HLE.HOS.Services.Sm { private Dictionary _services; - private Dictionary _commands; - - public override IReadOnlyDictionary Commands => _commands; - private ConcurrentDictionary _registeredServices; private bool _isInitialized; public IUserInterface(ServiceCtx context = null) { - _commands = new Dictionary - { - { 0, Initialize }, - { 1, GetService }, - { 2, RegisterService }, - { 3, UnregisterService } - }; - _registeredServices = new ConcurrentDictionary(); _services = Assembly.GetExecutingAssembly().GetTypes() @@ -51,6 +39,8 @@ namespace Ryujinx.HLE.HOS.Services.Sm port.ClientPort.Service = new IUserInterface(); } + [Command(0)] + // Initialize(pid, u64 reserved) public long Initialize(ServiceCtx context) { _isInitialized = true; @@ -58,6 +48,8 @@ namespace Ryujinx.HLE.HOS.Services.Sm return 0; } + [Command(1)] + // GetService(ServiceName name) -> handle public long GetService(ServiceCtx context) { if (!_isInitialized) @@ -117,6 +109,8 @@ namespace Ryujinx.HLE.HOS.Services.Sm return 0; } + [Command(2)] + // RegisterService(ServiceName name, u8, u32 maxHandles) -> handle public long RegisterService(ServiceCtx context) { if (!_isInitialized) @@ -158,6 +152,8 @@ namespace Ryujinx.HLE.HOS.Services.Sm return 0; } + [Command(3)] + // UnregisterService(ServiceName name) public long UnregisterService(ServiceCtx context) { if (!_isInitialized) -- cgit v1.2.3