diff options
Diffstat (limited to 'Ryujinx.HLE/HOS/Kernel/Process/KProcessCapabilities.cs')
-rw-r--r-- | Ryujinx.HLE/HOS/Kernel/Process/KProcessCapabilities.cs | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/Ryujinx.HLE/HOS/Kernel/Process/KProcessCapabilities.cs b/Ryujinx.HLE/HOS/Kernel/Process/KProcessCapabilities.cs index a08c4b26..ef55a165 100644 --- a/Ryujinx.HLE/HOS/Kernel/Process/KProcessCapabilities.cs +++ b/Ryujinx.HLE/HOS/Kernel/Process/KProcessCapabilities.cs @@ -1,6 +1,7 @@ using Ryujinx.HLE.HOS.Kernel.Common; using Ryujinx.HLE.HOS.Kernel.Memory; using Ryujinx.HLE.HOS.Kernel.Threading; +using Ryujinx.Horizon.Common; using System; using System.Numerics; @@ -25,7 +26,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process IrqAccessMask = new byte[0x80]; } - public KernelResult InitializeForKernel(ReadOnlySpan<int> capabilities, KPageTableBase memoryManager) + public Result InitializeForKernel(ReadOnlySpan<int> capabilities, KPageTableBase memoryManager) { AllowedCpuCoresMask = 0xf; AllowedThreadPriosMask = ulong.MaxValue; @@ -35,12 +36,12 @@ namespace Ryujinx.HLE.HOS.Kernel.Process return Parse(capabilities, memoryManager); } - public KernelResult InitializeForUser(ReadOnlySpan<int> capabilities, KPageTableBase memoryManager) + public Result InitializeForUser(ReadOnlySpan<int> capabilities, KPageTableBase memoryManager) { return Parse(capabilities, memoryManager); } - private KernelResult Parse(ReadOnlySpan<int> capabilities, KPageTableBase memoryManager) + private Result Parse(ReadOnlySpan<int> capabilities, KPageTableBase memoryManager) { int mask0 = 0; int mask1 = 0; @@ -51,9 +52,9 @@ namespace Ryujinx.HLE.HOS.Kernel.Process if (((cap + 1) & ~cap) != 0x40) { - KernelResult result = ParseCapability(cap, ref mask0, ref mask1, memoryManager); + Result result = ParseCapability(cap, ref mask0, ref mask1, memoryManager); - if (result != KernelResult.Success) + if (result != Result.Success) { return result; } @@ -96,7 +97,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process ? KMemoryPermission.Read : KMemoryPermission.ReadAndWrite; - KernelResult result; + Result result; if ((cap >> 31) != 0) { @@ -107,17 +108,17 @@ namespace Ryujinx.HLE.HOS.Kernel.Process result = memoryManager.MapIoMemory(address, size, perm); } - if (result != KernelResult.Success) + if (result != Result.Success) { return result; } } } - return KernelResult.Success; + return Result.Success; } - private KernelResult ParseCapability(int cap, ref int mask0, ref int mask1, KPageTableBase memoryManager) + private Result ParseCapability(int cap, ref int mask0, ref int mask1, KPageTableBase memoryManager) { int code = (cap + 1) & ~cap; @@ -127,7 +128,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process } else if (code == 0) { - return KernelResult.Success; + return Result.Success; } int codeMask = 1 << (32 - BitOperations.LeadingZeroCount((uint)code + 1)); @@ -300,7 +301,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process default: return KernelResult.InvalidCapability; } - return KernelResult.Success; + return Result.Success; } private static ulong GetMaskFromMinMax(int min, int max) |