// <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>InlinedCallFrame</c> type.</summary>
partial class InlinedCallFrame : global::Microsoft.Diagnostics.DataContractReader.Data.IReadableData
{
private static readonly string[] _typeNames = new[] { "InlinedCallFrame" };
[UsesDataDescriptorTypeSize]
public static uint GetSize(Target target)
=> checked((uint)LayoutSet.Resolve(target, _typeNames).InstanceSize);
[DataDescriptorDependency("CallSiteSP", "pointer")]
public static int GetCallSiteSPOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "CallSiteSP");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("CallerReturnAddress", "CodePointer")]
public static int GetCallerReturnAddressOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "CallerReturnAddress");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("CalleeSavedFP", "pointer")]
public static int GetCalleeSavedFPOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "CalleeSavedFP");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("SPAfterProlog", "pointer")]
public static int GetSPAfterPrologOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "SPAfterProlog");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("Datum", "pointer")]
public static int GetDatumOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "Datum");
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 InlinedCallFrame(Target target, TargetPointer address)
{
Address = address;
_target = target;
_layouts = LayoutSet.Resolve(target, _typeNames);
OnInit(target, address);
}
static InlinedCallFrame IData<InlinedCallFrame>.Create(Target target, TargetPointer address)
=> new InlinedCallFrame(target, address);
private TargetPointer _CallSiteSP__value = default!;
private bool _CallSiteSP__read;
[DataDescriptorDependency("CallSiteSP", "pointer")]
public partial TargetPointer CallSiteSP
{
get
{
if (!_CallSiteSP__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "CallSiteSP");
_CallSiteSP__value = _target.ReadPointerField(b, t, n);
_CallSiteSP__read = true;
}
return _CallSiteSP__value;
}
}
private TargetCodePointer _CallerReturnAddress__value = default!;
private bool _CallerReturnAddress__read;
[DataDescriptorDependency("CallerReturnAddress", "CodePointer")]
public partial TargetCodePointer CallerReturnAddress
{
get
{
if (!_CallerReturnAddress__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "CallerReturnAddress");
_CallerReturnAddress__value = _target.ReadCodePointerField(b, t, n);
_CallerReturnAddress__read = true;
}
return _CallerReturnAddress__value;
}
}
private TargetPointer _CalleeSavedFP__value = default!;
private bool _CalleeSavedFP__read;
[DataDescriptorDependency("CalleeSavedFP", "pointer")]
public partial TargetPointer CalleeSavedFP
{
get
{
if (!_CalleeSavedFP__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "CalleeSavedFP");
_CalleeSavedFP__value = _target.ReadPointerField(b, t, n);
_CalleeSavedFP__read = true;
}
return _CalleeSavedFP__value;
}
}
private TargetPointer? _SPAfterProlog__value = default!;
private bool _SPAfterProlog__read;
[DataDescriptorDependency("SPAfterProlog", "pointer")]
public partial TargetPointer? SPAfterProlog
{
get
{
if (!_SPAfterProlog__read)
{
if (_layouts.TrySelect(Address, out var t, out var b, out var n, "SPAfterProlog"))
_SPAfterProlog__value = _target.ReadPointerField(b, t, n);
else
_SPAfterProlog__value = default(TargetPointer?);
_SPAfterProlog__read = true;
}
return _SPAfterProlog__value;
}
}
private TargetPointer _Datum__value = default!;
private bool _Datum__read;
[DataDescriptorDependency("Datum", "pointer")]
public partial TargetPointer Datum
{
get
{
if (!_Datum__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "Datum");
_Datum__value = _target.ReadPointerField(b, t, n);
_Datum__read = true;
}
return _Datum__value;
}
}
[DataDescriptorDependency("CallSiteSP", "pointer")]
[DataDescriptorDependency("CallerReturnAddress", "CodePointer")]
[DataDescriptorDependency("CalleeSavedFP", "pointer")]
[DataDescriptorDependency("SPAfterProlog", "pointer")]
[DataDescriptorDependency("Datum", "pointer")]
void global::Microsoft.Diagnostics.DataContractReader.Data.IReadableData.EnsureAllFieldsRead()
{
_ = CallSiteSP;
_ = CallerReturnAddress;
_ = CalleeSavedFP;
_ = SPAfterProlog;
_ = Datum;
}
}