aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/ServiceCtx.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2020-12-01 20:23:43 -0300
committerGitHub <noreply@github.com>2020-12-02 00:23:43 +0100
commitcf6cd714884c41e9550757e364c2f4f5b04fc7f3 (patch)
treebea748b4d1a350e5b8075d63ec9d39d49693829d /Ryujinx.HLE/HOS/ServiceCtx.cs
parent461c24092ae6e148d896c18aa3e86220c89981f8 (diff)
IPC refactor part 2: Use ReplyAndReceive on HLE services and remove special handling from kernel (#1458)
* IPC refactor part 2: Use ReplyAndReceive on HLE services and remove special handling from kernel * Fix for applet transfer memory + some nits * Keep handles if possible to avoid server handle table exhaustion * Fix IPC ZeroFill bug * am: Correctly implement CreateManagedDisplayLayer and implement CreateManagedDisplaySeparableLayer CreateManagedDisplaySeparableLayer is requires since 10.x+ when appletResourceUserId != 0 * Make it exit properly * Make ServiceNotImplementedException show the full message again * Allow yielding execution to avoid starving other threads * Only wait if active * Merge IVirtualMemoryManager and IAddressSpaceManager * Fix Ro loading data from the wrong process Co-authored-by: Thog <me@thog.eu>
Diffstat (limited to 'Ryujinx.HLE/HOS/ServiceCtx.cs')
-rw-r--r--Ryujinx.HLE/HOS/ServiceCtx.cs52
1 files changed, 24 insertions, 28 deletions
diff --git a/Ryujinx.HLE/HOS/ServiceCtx.cs b/Ryujinx.HLE/HOS/ServiceCtx.cs
index 533c1d67..36d4163e 100644
--- a/Ryujinx.HLE/HOS/ServiceCtx.cs
+++ b/Ryujinx.HLE/HOS/ServiceCtx.cs
@@ -1,43 +1,39 @@
-using Ryujinx.Cpu;
using Ryujinx.HLE.HOS.Ipc;
-using Ryujinx.HLE.HOS.Kernel.Ipc;
using Ryujinx.HLE.HOS.Kernel.Process;
using Ryujinx.HLE.HOS.Kernel.Threading;
+using Ryujinx.Memory;
using System.IO;
namespace Ryujinx.HLE.HOS
{
class ServiceCtx
{
- public Switch Device { get; }
- public KProcess Process { get; }
- public MemoryManager Memory { get; }
- public KThread Thread { get; }
- public KClientSession Session { get; }
- public IpcMessage Request { get; }
- public IpcMessage Response { get; }
- public BinaryReader RequestData { get; }
- public BinaryWriter ResponseData { get; }
+ public Switch Device { get; }
+ public KProcess Process { get; }
+ public IVirtualMemoryManager Memory { get; }
+ public KThread Thread { get; }
+ public IpcMessage Request { get; }
+ public IpcMessage Response { get; }
+ public BinaryReader RequestData { get; }
+ public BinaryWriter ResponseData { get; }
public ServiceCtx(
- Switch device,
- KProcess process,
- MemoryManager memory,
- KThread thread,
- KClientSession session,
- IpcMessage request,
- IpcMessage response,
- BinaryReader requestData,
- BinaryWriter responseData)
+ Switch device,
+ KProcess process,
+ IVirtualMemoryManager memory,
+ KThread thread,
+ IpcMessage request,
+ IpcMessage response,
+ BinaryReader requestData,
+ BinaryWriter responseData)
{
- Device = device;
- Process = process;
- Memory = memory;
- Thread = thread;
- Session = session;
- Request = request;
- Response = response;
- RequestData = requestData;
+ Device = device;
+ Process = process;
+ Memory = memory;
+ Thread = thread;
+ Request = request;
+ Response = response;
+ RequestData = requestData;
ResponseData = responseData;
}
}