| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- using Ryujinx.Horizon.Sdk.Sf.Hipc;
- using Ryujinx.Horizon.Sdk.Sm;
- using Ryujinx.Horizon.Sm;
- namespace Ryujinx.Horizon.LogManager
- {
- class LmIpcServer
- {
- private const int LogMaxSessionsCount = 42;
- private const int PointerBufferSize = 0x400;
- private const int MaxDomains = 31;
- private const int MaxDomainObjects = 61;
- private const int MaxPortsCount = 1;
- private static readonly ManagerOptions _logManagerOptions = new ManagerOptions(
- PointerBufferSize,
- MaxDomains,
- MaxDomainObjects,
- false);
- private static readonly ServiceName _logServiceName = ServiceName.Encode("lm");
- private SmApi _sm;
- private ServerManager _serverManager;
- private LmLog _logServiceObject;
- public void Initialize()
- {
- HeapAllocator allocator = new HeapAllocator();
- _sm = new SmApi();
- _sm.Initialize().AbortOnFailure();
- _serverManager = new ServerManager(allocator, _sm, MaxPortsCount, _logManagerOptions, LogMaxSessionsCount);
- _logServiceObject = new LmLog();
- _serverManager.RegisterObjectForServer(_logServiceObject, _logServiceName, LogMaxSessionsCount);
- }
- public void ServiceRequests()
- {
- _serverManager.ServiceRequests();
- }
- public void Shutdown()
- {
- _serverManager.Dispose();
- }
- }
- }
|