aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Ipc
diff options
context:
space:
mode:
authorMary <me@thog.eu>2021-04-24 12:16:01 +0200
committerGitHub <noreply@github.com>2021-04-24 12:16:01 +0200
commit305f06eb71a7832e6b0081a67015b66ced8a23cd (patch)
tree98bcb3ed465332a04af449cb5c74bdca7855a141 /Ryujinx.HLE/HOS/Ipc
parentc46f6879ff9171a1e024965618242e8bad373b6b (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.cs14
-rw-r--r--Ryujinx.HLE/HOS/Ipc/IpcMessage.cs4
-rw-r--r--Ryujinx.HLE/HOS/Ipc/IpcPtrBuffDesc.cs24
-rw-r--r--Ryujinx.HLE/HOS/Ipc/IpcRecvListBuffDesc.cs8
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;