diff options
| author | Mary <me@thog.eu> | 2021-04-14 00:01:24 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-14 00:01:24 +0200 |
| commit | 0746b83edf49d1fd668dd337264e942f361b675c (patch) | |
| tree | 37b71396036206252cdc42715d6a3046ee81c795 /Ryujinx.HLE/HOS/Ipc/IpcMessage.cs | |
| parent | faa654dbaf7cd5262c78c0961a5aa72b1ce8ac33 (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.cs | 16 |
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; |
