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 }