// <auto-generated/>
#nullable enable
using Microsoft.Diagnostics.DataContractReader;
using Microsoft.Diagnostics.DataContractReader.Contracts;
using Microsoft.Diagnostics.DataContractReader.Generated;
namespace Microsoft.Diagnostics.DataContractReader.Data;
/// <summary>Wraps the <c>RealCodeHeader</c> type.</summary>
partial class RealCodeHeader : global::Microsoft.Diagnostics.DataContractReader.Data.IReadableData
{
private static readonly string[] _typeNames = new[] { "RealCodeHeader" };
[UsesDataDescriptorTypeSize]
public static uint GetSize(Target target)
=> checked((uint)LayoutSet.Resolve(target, _typeNames).InstanceSize);
[DataDescriptorDependency("MethodDesc", "pointer")]
public static int GetMethodDescOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "MethodDesc");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("DebugInfo", "pointer")]
public static int GetDebugInfoOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "DebugInfo");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("EHInfo", "pointer")]
public static int GetEHInfoOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "EHInfo");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("GCInfo", "pointer")]
public static int GetGCInfoOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "GCInfo");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("NumUnwindInfos", "uint32")]
public static int GetNumUnwindInfosOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "NumUnwindInfos");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("UnwindInfos", "pointer")]
public static int GetUnwindInfosOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "UnwindInfos");
return type.Fields[name].Offset;
}
public TargetPointer Address { get; }
private readonly Target _target;
private readonly LayoutSet _layouts;
partial void OnInit(Target target, TargetPointer address);
public RealCodeHeader(Target target, TargetPointer address)
{
Address = address;
_target = target;
_layouts = LayoutSet.Resolve(target, _typeNames);
OnInit(target, address);
}
static RealCodeHeader IData<RealCodeHeader>.Create(Target target, TargetPointer address)
=> new RealCodeHeader(target, address);
private TargetPointer _MethodDesc__value = default!;
private bool _MethodDesc__read;
[DataDescriptorDependency("MethodDesc", "pointer")]
public partial TargetPointer MethodDesc
{
get
{
if (!_MethodDesc__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "MethodDesc");
_MethodDesc__value = _target.ReadPointerField(b, t, n);
_MethodDesc__read = true;
}
return _MethodDesc__value;
}
}
private TargetPointer _DebugInfo__value = default!;
private bool _DebugInfo__read;
[DataDescriptorDependency("DebugInfo", "pointer")]
public partial TargetPointer DebugInfo
{
get
{
if (!_DebugInfo__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "DebugInfo");
_DebugInfo__value = _target.ReadPointerField(b, t, n);
_DebugInfo__read = true;
}
return _DebugInfo__value;
}
}
private TargetPointer _EHInfo__value = default!;
private bool _EHInfo__read;
[DataDescriptorDependency("EHInfo", "pointer")]
public partial TargetPointer EHInfo
{
get
{
if (!_EHInfo__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "EHInfo");
_EHInfo__value = _target.ReadPointerField(b, t, n);
_EHInfo__read = true;
}
return _EHInfo__value;
}
}
private TargetPointer _GCInfo__value = default!;
private bool _GCInfo__read;
[DataDescriptorDependency("GCInfo", "pointer")]
public partial TargetPointer GCInfo
{
get
{
if (!_GCInfo__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "GCInfo");
_GCInfo__value = _target.ReadPointerField(b, t, n);
_GCInfo__read = true;
}
return _GCInfo__value;
}
}
private uint _NumUnwindInfos__value = default!;
private bool _NumUnwindInfos__read;
[DataDescriptorDependency("NumUnwindInfos", "uint32")]
public partial uint NumUnwindInfos
{
get
{
if (!_NumUnwindInfos__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "NumUnwindInfos");
_NumUnwindInfos__value = _target.ReadField<uint>(b, t, n);
_NumUnwindInfos__read = true;
}
return _NumUnwindInfos__value;
}
}
private TargetPointer _UnwindInfos__value = default!;
private bool _UnwindInfos__read;
[DataDescriptorDependency("UnwindInfos", "pointer")]
public partial TargetPointer UnwindInfos
{
get
{
if (!_UnwindInfos__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "UnwindInfos");
_UnwindInfos__value = b + (ulong)t.Fields[n].Offset;
_UnwindInfos__read = true;
}
return _UnwindInfos__value;
}
}
[DataDescriptorDependency("MethodDesc", "pointer")]
[DataDescriptorDependency("DebugInfo", "pointer")]
[DataDescriptorDependency("EHInfo", "pointer")]
[DataDescriptorDependency("GCInfo", "pointer")]
[DataDescriptorDependency("NumUnwindInfos", "uint32")]
[DataDescriptorDependency("UnwindInfos", "pointer")]
void global::Microsoft.Diagnostics.DataContractReader.Data.IReadableData.EnsureAllFieldsRead()
{
_ = MethodDesc;
_ = DebugInfo;
_ = EHInfo;
_ = GCInfo;
_ = NumUnwindInfos;
_ = UnwindInfos;
}
}