namespace SabreTools.Models.NewExecutable
{
///
/// A table of relocation records follows. The following is the format
/// of each relocation record.
///
///
public sealed class RelocationRecord
{
///
/// Source type.
///
public RelocationRecordSourceType SourceType { get; set; }
///
/// Flags byte.
///
/// The target value has four types that are defined in the flag
/// byte field.
///
public RelocationRecordFlag Flags { get; set; }
///
/// Offset within this segment of the source chain.
/// If the ADDITIVE flag is set, then target value is added to
/// the source contents, instead of replacing the source and
/// following the chain. The source chain is an 0FFFFh
/// terminated linked list within this segment of all
/// references to the target.
///
public ushort Offset { get; set; }
///
/// INTERNALREF
///
/// Must be NULL if is not set to
public InternalRefRelocationRecord? InternalRefRelocationRecord { get; set; }
///
/// IMPORTNAME
///
/// Must be NULL if is not set to
public ImportNameRelocationRecord? ImportNameRelocationRecord { get; set; }
///
/// IMPORTORDINAL
///
/// Must be NULL if is not set to
public ImportOrdinalRelocationRecord? ImportOrdinalRelocationRecord { get; set; }
///
/// IMPORTORDINAL
///
/// Must be NULL if is not set to
public OSFixupRelocationRecord? OSFixupRelocationRecord { get; set; }
}
}