diff options
Diffstat (limited to 'Ryujinx.HLE/HOS/Kernel/Memory')
-rw-r--r-- | Ryujinx.HLE/HOS/Kernel/Memory/KPageTableBase.cs | 6 | ||||
-rw-r--r-- | Ryujinx.HLE/HOS/Kernel/Memory/MemoryPermission.cs | 5 | ||||
-rw-r--r-- | Ryujinx.HLE/HOS/Kernel/Memory/MemoryState.cs | 1 |
3 files changed, 7 insertions, 5 deletions
diff --git a/Ryujinx.HLE/HOS/Kernel/Memory/KPageTableBase.cs b/Ryujinx.HLE/HOS/Kernel/Memory/KPageTableBase.cs index ff87ecb7..fb3d669d 100644 --- a/Ryujinx.HLE/HOS/Kernel/Memory/KPageTableBase.cs +++ b/Ryujinx.HLE/HOS/Kernel/Memory/KPageTableBase.cs @@ -2682,7 +2682,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory return Context.MemoryManager.MemoryRegions[(int)_memRegion]; } - public long GetMmUsedPages() + public ulong GetMmUsedPages() { lock (_blockManager) { @@ -2690,9 +2690,9 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory } } - private long GetMmUsedSize() + private ulong GetMmUsedSize() { - return _blockManager.BlocksCount * KMemoryBlockSize; + return (ulong)(_blockManager.BlocksCount * KMemoryBlockSize); } public bool IsInvalidRegion(ulong address, ulong size) diff --git a/Ryujinx.HLE/HOS/Kernel/Memory/MemoryPermission.cs b/Ryujinx.HLE/HOS/Kernel/Memory/MemoryPermission.cs index 12300e4f..563b817d 100644 --- a/Ryujinx.HLE/HOS/Kernel/Memory/MemoryPermission.cs +++ b/Ryujinx.HLE/HOS/Kernel/Memory/MemoryPermission.cs @@ -5,8 +5,9 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory [Flags] enum KMemoryPermission : uint { - None = 0, - Mask = uint.MaxValue, + None = 0, + UserMask = Read | Write | Execute, + Mask = uint.MaxValue, Read = 1 << 0, Write = 1 << 1, diff --git a/Ryujinx.HLE/HOS/Kernel/Memory/MemoryState.cs b/Ryujinx.HLE/HOS/Kernel/Memory/MemoryState.cs index f7161a88..d3b61780 100644 --- a/Ryujinx.HLE/HOS/Kernel/Memory/MemoryState.cs +++ b/Ryujinx.HLE/HOS/Kernel/Memory/MemoryState.cs @@ -26,6 +26,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory KernelStack = 0x00002013, CodeReadOnly = 0x00402214, CodeWritable = 0x00402015, + UserMask = 0xff, Mask = 0xffffffff, PermissionChangeAllowed = 1 << 8, |