From 20ce37dee6158ede18ad699338ecea083728423b Mon Sep 17 00:00:00 2001 From: Mary Date: Sat, 29 Jan 2022 22:18:03 +0100 Subject: kernel: A bit of refactoring and fix GetThreadContext3 correctness (#3042) * Start refactoring kernel a bit and import some changes from kernel decoupling PR * kernel: Put output always at the start in Syscall functions * kernel: Rewrite GetThreadContext3 to use a structure and to be accurate * kernel: make KernelTransfer use generic types and simplify * Fix some warning and do not use getters on MemoryInfo * Address gdkchan's comment * GetThreadContext3: use correct pause flag --- Ryujinx.HLE/HOS/Kernel/Process/KProcessCapabilities.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'Ryujinx.HLE/HOS/Kernel/Process/KProcessCapabilities.cs') diff --git a/Ryujinx.HLE/HOS/Kernel/Process/KProcessCapabilities.cs b/Ryujinx.HLE/HOS/Kernel/Process/KProcessCapabilities.cs index 28944c4f..55e839ab 100644 --- a/Ryujinx.HLE/HOS/Kernel/Process/KProcessCapabilities.cs +++ b/Ryujinx.HLE/HOS/Kernel/Process/KProcessCapabilities.cs @@ -11,8 +11,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Process public byte[] SvcAccessMask { get; private set; } public byte[] IrqAccessMask { get; private set; } - public long AllowedCpuCoresMask { get; private set; } - public long AllowedThreadPriosMask { get; private set; } + public ulong AllowedCpuCoresMask { get; private set; } + public ulong AllowedThreadPriosMask { get; private set; } public int DebuggingFlags { get; private set; } public int HandleTableSize { get; private set; } @@ -28,7 +28,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process public KernelResult InitializeForKernel(ReadOnlySpan capabilities, KPageTableBase memoryManager) { AllowedCpuCoresMask = 0xf; - AllowedThreadPriosMask = -1; + AllowedThreadPriosMask = ulong.MaxValue; DebuggingFlags &= ~3; KernelReleaseVersion = KProcess.KernelVersionPacked; @@ -303,16 +303,16 @@ namespace Ryujinx.HLE.HOS.Kernel.Process return KernelResult.Success; } - private static long GetMaskFromMinMax(int min, int max) + private static ulong GetMaskFromMinMax(int min, int max) { int range = max - min + 1; if (range == 64) { - return -1L; + return ulong.MaxValue; } - long mask = (1L << range) - 1; + ulong mask = (1UL << range) - 1; return mask << min; } -- cgit v1.2.3