3 instantiations of MapUnit
Microsoft.Diagnostics.DataContractReader.Contracts (3)
Contracts\ExecutionManager\Helpers\NibbleMapHelpers.cs (3)
32
public MapUnit ShiftNextNibble => new
MapUnit
(Value >>> 4);
44
return new
MapUnit
(Value >>> (int)shift);
126
return new
MapUnit
(target.Read<uint>(mapUnitAdderss));
21 references to MapUnit
Microsoft.Diagnostics.DataContractReader.Contracts (21)
Contracts\ExecutionManager\Helpers\NibbleMapConstantLookup.cs (8)
41
internal static bool IsPointer(
MapUnit
mapUnit)
43
return (mapUnit.Value &
MapUnit
.NibbleMask) > 8;
46
internal static TargetPointer DecodePointer(TargetPointer baseAddress,
MapUnit
mapUnit)
48
uint nibble = mapUnit.Value &
MapUnit
.NibbleMask;
49
uint relativePointer = (mapUnit.Value & ~
MapUnit
.NibbleMask) + ((nibble - 9) << 2);
55
uint nibble = ((relativeAddress &
MapUnit
.NibbleMask) >>> 2) + 9;
56
return (relativeAddress & ~
MapUnit
.NibbleMask) + nibble;
64
MapUnit
t = mapIdx.ReadMapUnit(_target, mapStart);
Contracts\ExecutionManager\Helpers\NibbleMapHelpers.cs (12)
17
internal const ulong BytesPerBucket = 8 *
MapUnit
.SizeInBytes;
32
public
MapUnit
ShiftNextNibble => new MapUnit(Value >>> 4);
41
public
MapUnit
FocusOnIndexedNibble(MapKey mapIdx)
68
return (uint)(Value - 1) *
MapUnit
.SizeInBytes;
84
public ulong ContainingMapUnitIndex => _mapIdx /
MapUnit
.SizeInNibbles;
87
public ulong ContainingMapUnitByteOffset => ContainingMapUnitIndex *
MapUnit
.SizeInBytes;
90
public uint NibbleIndexInMapUnit => (uint)(_mapIdx & (
MapUnit
.SizeInNibbles - 1));
104
public MapKey PrevMapUnit => new MapKey(_mapIdx -
MapUnit
.SizeInNibbles);
107
public MapKey AlignDownToMapUnit() =>new MapKey(_mapIdx & (~(
MapUnit
.SizeInNibbles - 1)));
111
public bool InFirstMapUnit => _mapIdx <
MapUnit
.SizeInNibbles;
122
internal
MapUnit
ReadMapUnit(Target target, TargetPointer mapStart)
153
bucketByteIndex = new Nibble((bucketByteOffset /
MapUnit
.SizeInBytes) + 1);
Contracts\ExecutionManager\Helpers\NibbleMapLinearLookup.cs (1)
72
MapUnit
t = mapIdx.ReadMapUnit(_target, mapStart);