diff options
Diffstat (limited to 'Ryujinx.Horizon/ServiceEntry.cs')
-rw-r--r-- | Ryujinx.Horizon/ServiceEntry.cs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Ryujinx.Horizon/ServiceEntry.cs b/Ryujinx.Horizon/ServiceEntry.cs new file mode 100644 index 00000000..3fea46c1 --- /dev/null +++ b/Ryujinx.Horizon/ServiceEntry.cs @@ -0,0 +1,25 @@ +using Ryujinx.Horizon.Common; +using Ryujinx.Memory; +using System; + +namespace Ryujinx.Horizon +{ + public struct ServiceEntry + { + private readonly Action _entrypoint; + private readonly HorizonOptions _options; + + internal ServiceEntry(Action entrypoint, HorizonOptions options) + { + _entrypoint = entrypoint; + _options = options; + } + + public void Start(ISyscallApi syscallApi, IVirtualMemoryManager addressSpace, IThreadContext threadContext) + { + HorizonStatic.Register(_options, syscallApi, addressSpace, threadContext, (int)threadContext.GetX(1)); + + _entrypoint(); + } + } +} |