aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Horizon.Common/ISyscallApi.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2023-01-04 19:15:45 -0300
committerGitHub <noreply@github.com>2023-01-04 23:15:45 +0100
commit08831eecf77cedd3c4192ebab5a9c485fb15d51e (patch)
tree6d95b921a18e9cfa477579fcecb9d041e03d682e /Ryujinx.Horizon.Common/ISyscallApi.cs
parentc6a139a6e7e3ffe1591bc14dafafed60b9bef0dc (diff)
IPC refactor part 3+4: New server HIPC message processor (#4188)1.1.506
* IPC refactor part 3 + 4: New server HIPC message processor with source generator based serialization * Make types match on calls to AlignUp/AlignDown * Formatting * Address some PR feedback * Move BitfieldExtensions to Ryujinx.Common.Utilities and consolidate implementations * Rename Reader/Writer to SpanReader/SpanWriter and move to Ryujinx.Common.Memory * Implement EventType * Address more PR feedback * Log request processing errors since they are not normal * Rename waitable to multiwait and add missing lock * PR feedback * Ac_K PR feedback
Diffstat (limited to 'Ryujinx.Horizon.Common/ISyscallApi.cs')
-rw-r--r--Ryujinx.Horizon.Common/ISyscallApi.cs33
1 files changed, 33 insertions, 0 deletions
diff --git a/Ryujinx.Horizon.Common/ISyscallApi.cs b/Ryujinx.Horizon.Common/ISyscallApi.cs
new file mode 100644
index 00000000..8fa276b5
--- /dev/null
+++ b/Ryujinx.Horizon.Common/ISyscallApi.cs
@@ -0,0 +1,33 @@
+using System;
+
+namespace Ryujinx.Horizon.Common
+{
+ public interface ISyscallApi
+ {
+ Result SetHeapSize(out ulong address, ulong size);
+
+ void SleepThread(long timeout);
+
+ Result CloseHandle(int handle);
+
+ Result WaitSynchronization(out int handleIndex, ReadOnlySpan<int> handles, long timeout);
+ Result CancelSynchronization(int handle);
+
+ Result GetProcessId(out ulong pid, int handle);
+
+ Result ConnectToNamedPort(out int handle, string name);
+ Result SendSyncRequest(int handle);
+ Result CreateSession(out int serverSessionHandle, out int clientSessionHandle, bool isLight, string name);
+ Result AcceptSession(out int sessionHandle, int portHandle);
+ Result ReplyAndReceive(out int handleIndex, ReadOnlySpan<int> handles, int replyTargetHandle, long timeout);
+
+ Result CreateEvent(out int writableHandle, out int readableHandle);
+ Result SignalEvent(int handle);
+ Result ClearEvent(int handle);
+ Result ResetSignal(int handle);
+
+ Result CreatePort(out int serverPortHandle, out int clientPortHandle, int maxSessions, bool isLight, string name);
+ Result ManageNamedPort(out int handle, string name, int maxSessions);
+ Result ConnectToPort(out int clientSessionHandle, int clientPortHandle);
+ }
+}