diff options
Diffstat (limited to 'Ryujinx.Horizon/Sm/SmMain.cs')
-rw-r--r-- | Ryujinx.Horizon/Sm/SmMain.cs | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/Ryujinx.Horizon/Sm/SmMain.cs b/Ryujinx.Horizon/Sm/SmMain.cs index 8c37bece..5656d464 100644 --- a/Ryujinx.Horizon/Sm/SmMain.cs +++ b/Ryujinx.Horizon/Sm/SmMain.cs @@ -1,30 +1,34 @@ -using Ryujinx.Horizon.Sdk.Sf.Hipc; +using Ryujinx.Horizon.Prepo.Types; +using Ryujinx.Horizon.Prepo; +using Ryujinx.Horizon.Sdk.Sf.Hipc; using Ryujinx.Horizon.Sdk.Sm; using Ryujinx.Horizon.Sm.Impl; +using Ryujinx.Horizon.Sm.Types; namespace Ryujinx.Horizon.Sm { public class SmMain { - private enum PortIndex - { - User, - Manager - } + private const int SmMaxSessionsCount = 64; + private const int SmmMaxSessionsCount = 1; + private const int SmTotalMaxSessionsCount = SmMaxSessionsCount + SmmMaxSessionsCount; private const int MaxPortsCount = 2; - private readonly ServerManager _serverManager = new ServerManager(null, null, MaxPortsCount, ManagerOptions.Default, 0); - private readonly ServiceManager _serviceManager = new ServiceManager(); + private SmServerManager _serverManager; + + private readonly ServiceManager _serviceManager = new(); public void Main() { - HorizonStatic.Syscall.ManageNamedPort(out int smHandle, "sm:", 64).AbortOnFailure(); + HorizonStatic.Syscall.ManageNamedPort(out int smHandle, "sm:", SmMaxSessionsCount).AbortOnFailure(); + + _serverManager = new SmServerManager(_serviceManager, null, null, MaxPortsCount, ManagerOptions.Default, SmTotalMaxSessionsCount); - _serverManager.RegisterServer((int)PortIndex.User, smHandle); - _serviceManager.RegisterServiceForSelf(out int smmHandle, ServiceName.Encode("sm:m"), 1).AbortOnFailure(); - _serverManager.RegisterServer((int)PortIndex.Manager, smmHandle); + _serverManager.RegisterServer((int)SmPortIndex.User, smHandle); + _serviceManager.RegisterServiceForSelf(out int smmHandle, ServiceName.Encode("sm:m"), SmmMaxSessionsCount).AbortOnFailure(); + _serverManager.RegisterServer((int)SmPortIndex.Manager, smmHandle); _serverManager.ServiceRequests(); } } -} +}
\ No newline at end of file |