/ src / Ryujinx.Horizon.Common / ISyscallApi.cs
ISyscallApi.cs
 1  using Ryujinx.Memory;
 2  using System;
 3  
 4  namespace Ryujinx.Horizon.Common
 5  {
 6      public interface ISyscallApi
 7      {
 8          Result SetHeapSize(out ulong address, ulong size);
 9  
10          void SleepThread(long timeout);
11  
12          Result CloseHandle(int handle);
13  
14          Result WaitSynchronization(out int handleIndex, ReadOnlySpan<int> handles, long timeout);
15          Result CancelSynchronization(int handle);
16  
17          Result GetProcessId(out ulong pid, int handle);
18  
19          Result ConnectToNamedPort(out int handle, string name);
20          Result SendSyncRequest(int handle);
21          Result CreateSession(out int serverSessionHandle, out int clientSessionHandle, bool isLight, string name);
22          Result AcceptSession(out int sessionHandle, int portHandle);
23          Result ReplyAndReceive(out int handleIndex, ReadOnlySpan<int> handles, int replyTargetHandle, long timeout);
24  
25          Result CreateEvent(out int writableHandle, out int readableHandle);
26          Result SignalEvent(int handle);
27          Result ClearEvent(int handle);
28          Result ResetSignal(int handle);
29  
30          Result CreatePort(out int serverPortHandle, out int clientPortHandle, int maxSessions, bool isLight, string name);
31          Result ManageNamedPort(out int handle, string name, int maxSessions);
32          Result ConnectToPort(out int clientSessionHandle, int clientPortHandle);
33  
34          IExternalEvent GetExternalEvent(int handle);
35          IVirtualMemoryManager GetMemoryManagerByProcessHandle(int handle);
36          ulong GetTransferMemoryAddress(int handle);
37      }
38  }