ServiceEntry.cs 679 B

12345678910111213141516171819202122232425
  1. using Ryujinx.Horizon.Common;
  2. using Ryujinx.Memory;
  3. using System;
  4. namespace Ryujinx.Horizon
  5. {
  6. public struct ServiceEntry
  7. {
  8. private readonly Action _entrypoint;
  9. private readonly HorizonOptions _options;
  10. internal ServiceEntry(Action entrypoint, HorizonOptions options)
  11. {
  12. _entrypoint = entrypoint;
  13. _options = options;
  14. }
  15. public void Start(ISyscallApi syscallApi, IVirtualMemoryManager addressSpace, IThreadContext threadContext)
  16. {
  17. HorizonStatic.Register(_options, syscallApi, addressSpace, threadContext, (int)threadContext.GetX(1));
  18. _entrypoint();
  19. }
  20. }
  21. }