| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- using Ryujinx.Horizon.MmNv.Ipc;
- using Ryujinx.Horizon.Sdk.Sf.Hipc;
- using Ryujinx.Horizon.Sdk.Sm;
- namespace Ryujinx.Horizon.MmNv
- {
- class MmNvIpcServer
- {
- private const int MaxSessionsCount = 40;
- private const int PointerBufferSize = 0;
- private const int MaxDomains = 0;
- private const int MaxDomainObjects = 0;
- private const int MaxPortsCount = 1;
- private static readonly ManagerOptions _managerOptions = new(PointerBufferSize, MaxDomains, MaxDomainObjects, false);
- private SmApi _sm;
- private ServerManager _serverManager;
- public void Initialize()
- {
- HeapAllocator allocator = new();
- _sm = new SmApi();
- _sm.Initialize().AbortOnFailure();
- _serverManager = new ServerManager(allocator, _sm, MaxPortsCount, _managerOptions, MaxSessionsCount);
- _serverManager.RegisterObjectForServer(new Request(), ServiceName.Encode("mm:u"), MaxSessionsCount);
- }
- public void ServiceRequests()
- {
- _serverManager.ServiceRequests();
- }
- public void Shutdown()
- {
- _serverManager.Dispose();
- _sm.Dispose();
- }
- }
- }
|