diff options
Diffstat (limited to 'src/Ryujinx.Horizon/ServiceEntry.cs')
| -rw-r--r-- | src/Ryujinx.Horizon/ServiceEntry.cs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/Ryujinx.Horizon/ServiceEntry.cs b/src/Ryujinx.Horizon/ServiceEntry.cs new file mode 100644 index 00000000..06152d9f --- /dev/null +++ b/src/Ryujinx.Horizon/ServiceEntry.cs @@ -0,0 +1,27 @@ +using Ryujinx.Horizon.Common; +using Ryujinx.Memory; +using System; + +namespace Ryujinx.Horizon +{ + public struct ServiceEntry + { + private readonly Action<ServiceTable> _entrypoint; + private readonly ServiceTable _serviceTable; + private readonly HorizonOptions _options; + + internal ServiceEntry(Action<ServiceTable> entrypoint, ServiceTable serviceTable, HorizonOptions options) + { + _entrypoint = entrypoint; + _serviceTable = serviceTable; + _options = options; + } + + public void Start(ISyscallApi syscallApi, IVirtualMemoryManager addressSpace, IThreadContext threadContext) + { + HorizonStatic.Register(_options, syscallApi, addressSpace, threadContext, (int)threadContext.GetX(1)); + + _entrypoint(_serviceTable); + } + } +}
\ No newline at end of file |
