SmMain.cs 977 B

123456789101112131415161718192021222324252627282930
  1. using Ryujinx.Horizon.Sdk.Sf.Hipc;
  2. using Ryujinx.Horizon.Sdk.Sm;
  3. using Ryujinx.Horizon.Sm.Impl;
  4. namespace Ryujinx.Horizon.Sm
  5. {
  6. public class SmMain
  7. {
  8. private enum PortIndex
  9. {
  10. User,
  11. Manager
  12. }
  13. private const int MaxPortsCount = 2;
  14. private readonly ServerManager _serverManager = new ServerManager(null, null, MaxPortsCount, ManagerOptions.Default, 0);
  15. private readonly ServiceManager _serviceManager = new ServiceManager();
  16. public void Main()
  17. {
  18. HorizonStatic.Syscall.ManageNamedPort(out int smHandle, "sm:", 64).AbortOnFailure();
  19. _serverManager.RegisterServer((int)PortIndex.User, smHandle);
  20. _serviceManager.RegisterServiceForSelf(out int smmHandle, ServiceName.Encode("sm:m"), 1).AbortOnFailure();
  21. _serverManager.RegisterServer((int)PortIndex.Manager, smmHandle);
  22. _serverManager.ServiceRequests();
  23. }
  24. }
  25. }