aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Kernel/Ipc/KPort.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.HLE/HOS/Kernel/Ipc/KPort.cs
parentc6a139a6e7e3ffe1591bc14dafafed60b9bef0dc (diff)
IPC refactor part 3+4: New server HIPC message processor (#4188)
* 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.HLE/HOS/Kernel/Ipc/KPort.cs')
-rw-r--r--Ryujinx.HLE/HOS/Kernel/Ipc/KPort.cs21
1 files changed, 11 insertions, 10 deletions
diff --git a/Ryujinx.HLE/HOS/Kernel/Ipc/KPort.cs b/Ryujinx.HLE/HOS/Kernel/Ipc/KPort.cs
index 2f67aeae..93f0f34c 100644
--- a/Ryujinx.HLE/HOS/Kernel/Ipc/KPort.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Ipc/KPort.cs
@@ -1,4 +1,5 @@
using Ryujinx.HLE.HOS.Kernel.Common;
+using Ryujinx.Horizon.Common;
namespace Ryujinx.HLE.HOS.Kernel.Ipc
{
@@ -7,26 +8,26 @@ namespace Ryujinx.HLE.HOS.Kernel.Ipc
public KServerPort ServerPort { get; }
public KClientPort ClientPort { get; }
- private long _nameAddress;
+ private string _name;
private ChannelState _state;
public bool IsLight { get; private set; }
- public KPort(KernelContext context, int maxSessions, bool isLight, long nameAddress) : base(context)
+ public KPort(KernelContext context, int maxSessions, bool isLight, string name) : base(context)
{
ServerPort = new KServerPort(context, this);
ClientPort = new KClientPort(context, this, maxSessions);
- IsLight = isLight;
- _nameAddress = nameAddress;
+ IsLight = isLight;
+ _name = name;
_state = ChannelState.Open;
}
- public KernelResult EnqueueIncomingSession(KServerSession session)
+ public Result EnqueueIncomingSession(KServerSession session)
{
- KernelResult result;
+ Result result;
KernelContext.CriticalSection.Enter();
@@ -34,7 +35,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Ipc
{
ServerPort.EnqueueIncomingSession(session);
- result = KernelResult.Success;
+ result = Result.Success;
}
else
{
@@ -46,9 +47,9 @@ namespace Ryujinx.HLE.HOS.Kernel.Ipc
return result;
}
- public KernelResult EnqueueIncomingLightSession(KLightServerSession session)
+ public Result EnqueueIncomingLightSession(KLightServerSession session)
{
- KernelResult result;
+ Result result;
KernelContext.CriticalSection.Enter();
@@ -56,7 +57,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Ipc
{
ServerPort.EnqueueIncomingLightSession(session);
- result = KernelResult.Success;
+ result = Result.Success;
}
else
{