|
@@ -161,17 +161,18 @@ namespace Ryujinx.Core.OsHle.Svc
|
|
|
|
|
|
|
|
switch (InfoType)
|
|
switch (InfoType)
|
|
|
{
|
|
{
|
|
|
- case 2: ThreadState.X1 = GetMapRegionBaseAddr(); break;
|
|
|
|
|
- case 3: ThreadState.X1 = GetMapRegionSize(); break;
|
|
|
|
|
- case 4: ThreadState.X1 = GetHeapRegionBaseAddr(); break;
|
|
|
|
|
- case 5: ThreadState.X1 = GetHeapRegionSize(); break;
|
|
|
|
|
- case 6: ThreadState.X1 = GetTotalMem(); break;
|
|
|
|
|
- case 7: ThreadState.X1 = GetUsedMem(); break;
|
|
|
|
|
- case 11: ThreadState.X1 = GetRnd64(); break;
|
|
|
|
|
- case 12: ThreadState.X1 = GetAddrSpaceBaseAddr(); break;
|
|
|
|
|
- case 13: ThreadState.X1 = GetAddrSpaceSize(); break;
|
|
|
|
|
- case 14: ThreadState.X1 = GetMapRegionBaseAddr(); break;
|
|
|
|
|
- case 15: ThreadState.X1 = GetMapRegionSize(); break;
|
|
|
|
|
|
|
+ case 2: ThreadState.X1 = GetMapRegionBaseAddr(); break;
|
|
|
|
|
+ case 3: ThreadState.X1 = GetMapRegionSize(); break;
|
|
|
|
|
+ case 4: ThreadState.X1 = GetHeapRegionBaseAddr(); break;
|
|
|
|
|
+ case 5: ThreadState.X1 = GetHeapRegionSize(); break;
|
|
|
|
|
+ case 6: ThreadState.X1 = GetTotalMem(); break;
|
|
|
|
|
+ case 7: ThreadState.X1 = GetUsedMem(); break;
|
|
|
|
|
+ case 8: ThreadState.X1 = IsCurrentProcessBeingDebugged(); break;
|
|
|
|
|
+ case 11: ThreadState.X1 = GetRnd64(); break;
|
|
|
|
|
+ case 12: ThreadState.X1 = GetAddrSpaceBaseAddr(); break;
|
|
|
|
|
+ case 13: ThreadState.X1 = GetAddrSpaceSize(); break;
|
|
|
|
|
+ case 14: ThreadState.X1 = GetMapRegionBaseAddr(); break;
|
|
|
|
|
+ case 15: ThreadState.X1 = GetMapRegionSize(); break;
|
|
|
|
|
|
|
|
default: throw new NotImplementedException($"SvcGetInfo: {InfoType} {Handle} {InfoId}");
|
|
default: throw new NotImplementedException($"SvcGetInfo: {InfoType} {Handle} {InfoId}");
|
|
|
}
|
|
}
|
|
@@ -179,49 +180,54 @@ namespace Ryujinx.Core.OsHle.Svc
|
|
|
ThreadState.X0 = (int)SvcResult.Success;
|
|
ThreadState.X0 = (int)SvcResult.Success;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private ulong GetTotalMem()
|
|
|
|
|
|
|
+ private ulong GetMapRegionBaseAddr()
|
|
|
{
|
|
{
|
|
|
- return (ulong)Memory.Manager.GetTotalMemorySize();
|
|
|
|
|
|
|
+ return 0x80000000;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private ulong GetUsedMem()
|
|
|
|
|
|
|
+ private ulong GetMapRegionSize()
|
|
|
{
|
|
{
|
|
|
- return (ulong)Memory.Manager.GetUsedMemorySize();
|
|
|
|
|
|
|
+ return 0x40000000;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private ulong GetRnd64()
|
|
|
|
|
|
|
+ private ulong GetHeapRegionBaseAddr()
|
|
|
{
|
|
{
|
|
|
- return (ulong)Rng.Next() + ((ulong)Rng.Next() << 32);
|
|
|
|
|
|
|
+ return GetMapRegionBaseAddr() + GetMapRegionSize();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private ulong GetAddrSpaceBaseAddr()
|
|
|
|
|
|
|
+ private ulong GetHeapRegionSize()
|
|
|
{
|
|
{
|
|
|
- return 0x08000000;
|
|
|
|
|
|
|
+ return 0x40000000;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private ulong GetAddrSpaceSize()
|
|
|
|
|
|
|
+ private ulong GetTotalMem()
|
|
|
{
|
|
{
|
|
|
- return AMemoryMgr.AddrSize - GetAddrSpaceBaseAddr();
|
|
|
|
|
|
|
+ return (ulong)Memory.Manager.GetTotalMemorySize();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private ulong GetMapRegionBaseAddr()
|
|
|
|
|
|
|
+ private ulong GetUsedMem()
|
|
|
{
|
|
{
|
|
|
- return 0x80000000;
|
|
|
|
|
|
|
+ return (ulong)Memory.Manager.GetUsedMemorySize();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private ulong GetMapRegionSize()
|
|
|
|
|
|
|
+ private ulong IsCurrentProcessBeingDebugged()
|
|
|
{
|
|
{
|
|
|
- return 0x40000000;
|
|
|
|
|
|
|
+ return (ulong)0;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private ulong GetHeapRegionBaseAddr()
|
|
|
|
|
|
|
+ private ulong GetRnd64()
|
|
|
{
|
|
{
|
|
|
- return GetMapRegionBaseAddr() + GetMapRegionSize();
|
|
|
|
|
|
|
+ return (ulong)Rng.Next() + ((ulong)Rng.Next() << 32);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private ulong GetHeapRegionSize()
|
|
|
|
|
|
|
+ private ulong GetAddrSpaceBaseAddr()
|
|
|
{
|
|
{
|
|
|
- return 0x40000000;
|
|
|
|
|
|
|
+ return 0x08000000;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private ulong GetAddrSpaceSize()
|
|
|
|
|
+ {
|
|
|
|
|
+ return AMemoryMgr.AddrSize - GetAddrSpaceBaseAddr();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|