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 #if NET48 public InternalRefRelocationRecord InternalRefRelocationRecord { get; set; } #else public InternalRefRelocationRecord? InternalRefRelocationRecord { get; set; } #endif /// /// IMPORTNAME /// /// Must be NULL if is not set to #if NET48 public ImportNameRelocationRecord ImportNameRelocationRecord { get; set; } #else public ImportNameRelocationRecord? ImportNameRelocationRecord { get; set; } #endif /// /// IMPORTORDINAL /// /// Must be NULL if is not set to #if NET48 public ImportOrdinalRelocationRecord ImportOrdinalRelocationRecord { get; set; } #else public ImportOrdinalRelocationRecord? ImportOrdinalRelocationRecord { get; set; } #endif /// /// IMPORTORDINAL /// /// Must be NULL if is not set to #if NET48 public OSFixupRelocationRecord OSFixupRelocationRecord { get; set; } #else public OSFixupRelocationRecord? OSFixupRelocationRecord { get; set; } #endif } }