Ryujinx/Ryujinx.Cpu/AppleHv/Arm/ApFlags.cs
gdkchan a53cfdab78
Initial Apple Hypervisor based CPU emulation (#4332)
* Initial Apple Hypervisor based CPU emulation implementation

* Add UseHypervisor Setting

* Add basic MacOS support to Avalonia

* Fix initialization

* Fix GTK build

* Fix/silence warnings

* Change exceptions to asserts on HvAddressSpaceRange

* Replace DllImport with LibraryImport

* Fix LibraryImport

* Remove unneeded usings

* Revert outdated change

* Set DiskCacheLoadState when using hypervisor too

* Fix HvExecutionContext PC value

* Address PR feedback

* Use existing entitlements.xml file on distribution folder

---------

Co-authored-by: riperiperi <rhy3756547@hotmail.com>
2023-01-29 08:37:52 -03:00

28 lines
1.3 KiB
C#

namespace Ryujinx.Cpu.AppleHv.Arm
{
enum ApFlags : ulong
{
ApShift = 6,
PxnShift = 53,
UxnShift = 54,
UserExecuteKernelReadWriteExecute = (0UL << (int)ApShift),
UserReadWriteExecuteKernelReadWrite = (1UL << (int)ApShift),
UserExecuteKernelReadExecute = (2UL << (int)ApShift),
UserReadExecuteKernelReadExecute = (3UL << (int)ApShift),
UserExecuteKernelReadWrite = (1UL << (int)PxnShift) | (0UL << (int)ApShift),
UserExecuteKernelRead = (1UL << (int)PxnShift) | (2UL << (int)ApShift),
UserReadExecuteKernelRead = (1UL << (int)PxnShift) | (3UL << (int)ApShift),
UserNoneKernelReadWriteExecute = (1UL << (int)UxnShift) | (0UL << (int)ApShift),
UserReadWriteKernelReadWrite = (1UL << (int)UxnShift) | (1UL << (int)ApShift),
UserNoneKernelReadExecute = (1UL << (int)UxnShift) | (2UL << (int)ApShift),
UserReadKernelReadExecute = (1UL << (int)UxnShift) | (3UL << (int)ApShift),
UserNoneKernelReadWrite = (1UL << (int)PxnShift) | (1UL << (int)UxnShift) | (0UL << (int)ApShift),
UserNoneKernelRead = (1UL << (int)PxnShift) | (1UL << (int)UxnShift) | (2UL << (int)ApShift),
UserReadKernelRead = (1UL << (int)PxnShift) | (1UL << (int)UxnShift) | (3UL << (int)ApShift)
}
}