forked from Mirror/Ryujinx
7870423671
* 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
22 lines
No EOL
540 B
C#
22 lines
No EOL
540 B
C#
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());
|
|
}
|
|
}
|
|
} |