diff options
author | TSRBerry <20988865+TSRBerry@users.noreply.github.com> | 2023-03-17 12:55:19 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-17 12:55:19 +0100 |
commit | 7870423671cba17c8aad9bb93a67c84bda441366 (patch) | |
tree | 6271060483ee90c7088c071be66c572d186d8ed4 /Ryujinx.HLE/HOS/Kernel/Process/CapabilityExtensions.cs | |
parent | b72916fbc15d9f112f5d2944034b38f1fd43e7b5 (diff) |
Update syscall capabilites to include SVCs from FW 15.0.0 (#4530)1.1.667
* Add CapabilityType enum
* Add SupervisorCallCount
* kernel: Add CapabilityExtensions & Change type of capabilities to uint
* Remove private setter from Mask arrays
* Pass ReadOnlySpan directly & Remove redundant type casts
Diffstat (limited to 'Ryujinx.HLE/HOS/Kernel/Process/CapabilityExtensions.cs')
-rw-r--r-- | Ryujinx.HLE/HOS/Kernel/Process/CapabilityExtensions.cs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Ryujinx.HLE/HOS/Kernel/Process/CapabilityExtensions.cs b/Ryujinx.HLE/HOS/Kernel/Process/CapabilityExtensions.cs new file mode 100644 index 00000000..66d56fe3 --- /dev/null +++ b/Ryujinx.HLE/HOS/Kernel/Process/CapabilityExtensions.cs @@ -0,0 +1,22 @@ +using System.Numerics; + +namespace Ryujinx.HLE.HOS.Kernel.Process +{ + static class CapabilityExtensions + { + public static CapabilityType GetCapabilityType(this uint cap) + { + return (CapabilityType)(((cap + 1) & ~cap) - 1); + } + + public static uint GetFlag(this CapabilityType type) + { + return (uint)type + 1; + } + + public static uint GetId(this CapabilityType type) + { + return (uint)BitOperations.TrailingZeroCount(type.GetFlag()); + } + } +}
\ No newline at end of file |