CapabilityExtensions.cs
1 using System.Numerics; 2 3 namespace Ryujinx.HLE.HOS.Kernel.Process 4 { 5 static class CapabilityExtensions 6 { 7 public static CapabilityType GetCapabilityType(this uint cap) 8 { 9 return (CapabilityType)(((cap + 1) & ~cap) - 1); 10 } 11 12 public static uint GetFlag(this CapabilityType type) 13 { 14 return (uint)type + 1; 15 } 16 17 public static uint GetId(this CapabilityType type) 18 { 19 return (uint)BitOperations.TrailingZeroCount(type.GetFlag()); 20 } 21 } 22 }