internal static uint Get(uint descriptor) { DebugStub.Assert(IsType.Get(descriptor, L1.CoarsePageTableType) || IsType.Get(descriptor, L1.SectionType) || IsType.Get(descriptor, L1.FinePageTableType)); return((descriptor & L1.DomainMask) >> L1.DomainRoll); }
internal static AccessPermission Get(uint descriptor) { DebugStub.Assert(IsType.Get(descriptor, L1.SectionType) || IsType.Get(descriptor, L1.SupersectionType)); return((AccessPermission)((descriptor & L1.ApMask) >> L1.ApRoll)); }
internal static void Set(ref uint descriptor, AccessPermission ap) { DebugStub.Assert(IsType.Get(descriptor, L1.SectionType) || IsType.Get(descriptor, L1.SupersectionType)); descriptor = ((descriptor & ~L1.ApMask) | ((uint)ap) << L1.ApRoll); }
internal static uint Get(uint descriptor) { DebugStub.Assert(IsType.Get(descriptor, L1.SectionType) || IsType.Get(descriptor, L1.SupersectionType)); return((descriptor & L1.TexMask) >> L1.TexRoll); }
internal static void Set(ref uint descriptor, uint tex) { DebugStub.Assert(IsType.Get(descriptor, L1.SectionType) || IsType.Get(descriptor, L1.SupersectionType)); DebugStub.Assert(((tex << L1.TexRoll) & ~L1.TexMask) == 0); descriptor = (descriptor & L1.TexMask) | (tex << L1.TexRoll); }
internal static void Set(ref uint descriptor, uint domain) { DebugStub.Assert(IsType.Get(descriptor, L1.CoarsePageTableType) || IsType.Get(descriptor, L1.SectionType) || IsType.Get(descriptor, L1.FinePageTableType)); DebugStub.Assert((domain & (L1.DomainMask >> L1.DomainRoll)) == 0); descriptor = ((descriptor & ~L1.DomainMask) | (domain << L1.DomainRoll)); }