/ src / Ryujinx.HLE / HOS / Kernel / Process / CapabilityExtensions.cs
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  }