diff options
| author | Mary <me@thog.eu> | 2021-04-24 12:16:01 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-24 12:16:01 +0200 |
| commit | 305f06eb71a7832e6b0081a67015b66ced8a23cd (patch) | |
| tree | 98bcb3ed465332a04af449cb5c74bdca7855a141 /Ryujinx.HLE/HOS/Ipc | |
| parent | c46f6879ff9171a1e024965618242e8bad373b6b (diff) | |
HLE: Fix integer sign inconcistency accross the codebase (#2222)
* Make all title id instances unsigned
* Replace address and size with ulong instead of signed types
Long overdue change.
Also change some logics here and there to optimize with the new memory
manager.
* Address Ac_K's comments
* Remove uneeded cast all around
* Fixes some others misalignment
Diffstat (limited to 'Ryujinx.HLE/HOS/Ipc')
| -rw-r--r-- | Ryujinx.HLE/HOS/Ipc/IpcBuffDesc.cs | 14 | ||||
| -rw-r--r-- | Ryujinx.HLE/HOS/Ipc/IpcMessage.cs | 4 | ||||
| -rw-r--r-- | Ryujinx.HLE/HOS/Ipc/IpcPtrBuffDesc.cs | 24 | ||||
| -rw-r--r-- | Ryujinx.HLE/HOS/Ipc/IpcRecvListBuffDesc.cs | 8 |
4 files changed, 25 insertions, 25 deletions
diff --git a/Ryujinx.HLE/HOS/Ipc/IpcBuffDesc.cs b/Ryujinx.HLE/HOS/Ipc/IpcBuffDesc.cs index dddd2671..b61d5697 100644 --- a/Ryujinx.HLE/HOS/Ipc/IpcBuffDesc.cs +++ b/Ryujinx.HLE/HOS/Ipc/IpcBuffDesc.cs @@ -4,15 +4,15 @@ namespace Ryujinx.HLE.HOS.Ipc { struct IpcBuffDesc { - public long Position { get; private set; } - public long Size { get; private set; } - public int Flags { get; private set; } + public ulong Position { get; private set; } + public ulong Size { get; private set; } + public byte Flags { get; private set; } public IpcBuffDesc(BinaryReader reader) { - long word0 = reader.ReadUInt32(); - long word1 = reader.ReadUInt32(); - long word2 = reader.ReadUInt32(); + ulong word0 = reader.ReadUInt32(); + ulong word1 = reader.ReadUInt32(); + ulong word2 = reader.ReadUInt32(); Position = word1; Position |= (word2 << 4) & 0x0f00000000; @@ -21,7 +21,7 @@ namespace Ryujinx.HLE.HOS.Ipc Size = word0; Size |= (word2 << 8) & 0xf00000000; - Flags = (int)word2 & 3; + Flags = (byte)(word2 & 3); } } }
\ No newline at end of file diff --git a/Ryujinx.HLE/HOS/Ipc/IpcMessage.cs b/Ryujinx.HLE/HOS/Ipc/IpcMessage.cs index 9fe3ae60..c99ad622 100644 --- a/Ryujinx.HLE/HOS/Ipc/IpcMessage.cs +++ b/Ryujinx.HLE/HOS/Ipc/IpcMessage.cs @@ -196,7 +196,7 @@ namespace Ryujinx.HLE.HOS.Ipc } // ReSharper disable once InconsistentNaming - public (long Position, long Size) GetBufferType0x21(int index = 0) + public (ulong Position, ulong Size) GetBufferType0x21(int index = 0) { if (PtrBuff.Count > index && PtrBuff[index].Position != 0 && @@ -216,7 +216,7 @@ namespace Ryujinx.HLE.HOS.Ipc } // ReSharper disable once InconsistentNaming - public (long Position, long Size) GetBufferType0x22(int index = 0) + public (ulong Position, ulong Size) GetBufferType0x22(int index = 0) { if (RecvListBuff.Count > index && RecvListBuff[index].Position != 0 && diff --git a/Ryujinx.HLE/HOS/Ipc/IpcPtrBuffDesc.cs b/Ryujinx.HLE/HOS/Ipc/IpcPtrBuffDesc.cs index 67cf17c9..05798fe1 100644 --- a/Ryujinx.HLE/HOS/Ipc/IpcPtrBuffDesc.cs +++ b/Ryujinx.HLE/HOS/Ipc/IpcPtrBuffDesc.cs @@ -4,11 +4,11 @@ namespace Ryujinx.HLE.HOS.Ipc { struct IpcPtrBuffDesc { - public long Position { get; private set; } - public int Index { get; private set; } - public long Size { get; private set; } + public ulong Position { get; private set; } + public uint Index { get; private set; } + public ulong Size { get; private set; } - public IpcPtrBuffDesc(long position, int index, long size) + public IpcPtrBuffDesc(ulong position, uint index, ulong size) { Position = position; Index = index; @@ -17,20 +17,20 @@ namespace Ryujinx.HLE.HOS.Ipc public IpcPtrBuffDesc(BinaryReader reader) { - long word0 = reader.ReadUInt32(); - long word1 = reader.ReadUInt32(); + ulong word0 = reader.ReadUInt32(); + ulong word1 = reader.ReadUInt32(); - Position = word1; + Position = word1; Position |= (word0 << 20) & 0x0f00000000; Position |= (word0 << 30) & 0x7000000000; - Index = ((int)word0 >> 0) & 0x03f; - Index |= ((int)word0 >> 3) & 0x1c0; + Index = ((uint)word0 >> 0) & 0x03f; + Index |= ((uint)word0 >> 3) & 0x1c0; Size = (ushort)(word0 >> 16); } - public IpcPtrBuffDesc WithSize(long size) + public IpcPtrBuffDesc WithSize(ulong size) { return new IpcPtrBuffDesc(Position, Index, size); } @@ -42,8 +42,8 @@ namespace Ryujinx.HLE.HOS.Ipc word0 = (uint)((Position & 0x0f00000000) >> 20); word0 |= (uint)((Position & 0x7000000000) >> 30); - word0 |= (uint)(Index & 0x03f) << 0; - word0 |= (uint)(Index & 0x1c0) << 3; + word0 |= (Index & 0x03f) << 0; + word0 |= (Index & 0x1c0) << 3; word0 |= (uint)Size << 16; diff --git a/Ryujinx.HLE/HOS/Ipc/IpcRecvListBuffDesc.cs b/Ryujinx.HLE/HOS/Ipc/IpcRecvListBuffDesc.cs index 78732550..10406ac7 100644 --- a/Ryujinx.HLE/HOS/Ipc/IpcRecvListBuffDesc.cs +++ b/Ryujinx.HLE/HOS/Ipc/IpcRecvListBuffDesc.cs @@ -4,10 +4,10 @@ namespace Ryujinx.HLE.HOS.Ipc { struct IpcRecvListBuffDesc { - public long Position { get; private set; } - public long Size { get; private set; } + public ulong Position { get; private set; } + public ulong Size { get; private set; } - public IpcRecvListBuffDesc(long position, long size) + public IpcRecvListBuffDesc(ulong position, ulong size) { Position = position; Size = size; @@ -15,7 +15,7 @@ namespace Ryujinx.HLE.HOS.Ipc public IpcRecvListBuffDesc(BinaryReader reader) { - long value = reader.ReadInt64(); + ulong value = reader.ReadUInt64(); Position = value & 0xffffffffffff; |
