mirror of
https://git.743378673.xyz/MeloNX/MeloNX.git
synced 2025-06-28 03:16:23 +02:00

* Implement reprotect method on virtual memory manager (currently stubbed) * Force all exclusive memory accesses to be ordered on AppleHv * Format whitespace * Fix test build * Fix comment copy/paste * Fix wrong bit for isLoad * Update src/Ryujinx.Cpu/AppleHv/HvMemoryManager.cs Co-authored-by: riperiperi <rhy3756547@hotmail.com> --------- Co-authored-by: riperiperi <rhy3756547@hotmail.com>
46 lines
1.1 KiB
C#
46 lines
1.1 KiB
C#
using Ryujinx.Memory;
|
|
using System;
|
|
|
|
namespace Ryujinx.HLE.HOS.Kernel.Memory
|
|
{
|
|
[Flags]
|
|
enum KMemoryPermission : uint
|
|
{
|
|
None = 0,
|
|
UserMask = Read | Write | Execute,
|
|
Mask = uint.MaxValue,
|
|
|
|
Read = 1 << 0,
|
|
Write = 1 << 1,
|
|
Execute = 1 << 2,
|
|
DontCare = 1 << 28,
|
|
|
|
ReadAndWrite = Read | Write,
|
|
ReadAndExecute = Read | Execute,
|
|
}
|
|
|
|
static class KMemoryPermissionExtensions
|
|
{
|
|
public static MemoryPermission Convert(this KMemoryPermission permission)
|
|
{
|
|
MemoryPermission output = MemoryPermission.None;
|
|
|
|
if (permission.HasFlag(KMemoryPermission.Read))
|
|
{
|
|
output = MemoryPermission.Read;
|
|
}
|
|
|
|
if (permission.HasFlag(KMemoryPermission.Write))
|
|
{
|
|
output |= MemoryPermission.Write;
|
|
}
|
|
|
|
if (permission.HasFlag(KMemoryPermission.Execute))
|
|
{
|
|
output |= MemoryPermission.Execute;
|
|
}
|
|
|
|
return output;
|
|
}
|
|
}
|
|
}
|