aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Ipc/IpcMessage.cs
diff options
context:
space:
mode:
authorMary <me@thog.eu>2021-04-14 00:01:24 +0200
committerGitHub <noreply@github.com>2021-04-14 00:01:24 +0200
commit0746b83edf49d1fd668dd337264e942f361b675c (patch)
tree37b71396036206252cdc42715d6a3046ee81c795 /Ryujinx.HLE/HOS/Ipc/IpcMessage.cs
parentfaa654dbaf7cd5262c78c0961a5aa72b1ce8ac33 (diff)
Initial support for the new 12.x IPC system (#2182)
* Rename CommandAttribute as CommandHIpcAttribute to prepare for 12.x changes * Implement inital support for TIPC and adds SM command ids * *Ipc to *ipc * Missed a ref in last commit... * CommandAttributeTIpc to CommandAttributeTipc * Addresses comment and fixes some bugs around TIPC doesn't have any padding requirements as buffer C isn't a thing Fix for RegisterService inverting two argument only on TIPC
Diffstat (limited to 'Ryujinx.HLE/HOS/Ipc/IpcMessage.cs')
-rw-r--r--Ryujinx.HLE/HOS/Ipc/IpcMessage.cs16
1 files changed, 10 insertions, 6 deletions
diff --git a/Ryujinx.HLE/HOS/Ipc/IpcMessage.cs b/Ryujinx.HLE/HOS/Ipc/IpcMessage.cs
index 135a0a1f..9fe3ae60 100644
--- a/Ryujinx.HLE/HOS/Ipc/IpcMessage.cs
+++ b/Ryujinx.HLE/HOS/Ipc/IpcMessage.cs
@@ -82,14 +82,18 @@ namespace Ryujinx.HLE.HOS.Ipc
long recvListPos = reader.BaseStream.Position + rawDataSize;
- long pad0 = GetPadSize16(reader.BaseStream.Position + cmdPtr);
-
- if (rawDataSize != 0)
+ // only HIPC have the padding requirements.
+ if (Type < IpcMessageType.TipcCloseSession)
{
- rawDataSize -= (int)pad0;
- }
+ long pad0 = GetPadSize16(reader.BaseStream.Position + cmdPtr);
+
+ if (rawDataSize != 0)
+ {
+ rawDataSize -= (int)pad0;
+ }
- reader.BaseStream.Seek(pad0, SeekOrigin.Current);
+ reader.BaseStream.Seek(pad0, SeekOrigin.Current);
+ }
int recvListCount = recvListFlags - 2;