CapabilityExtensions.cs 540 B

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