using System.Runtime.InteropServices;
namespace BurnOutSharp.Models.LinearExecutable
{
///
/// The Fixup Record Table contains entries for all fixups in the linear EXE module.
/// The fixup records for a logical page are grouped together and kept in sorted
/// order by logical page number. The fixups for each page are further sorted such
/// that all external fixups and internal selector/pointer fixups come before
/// internal non-selector/non-pointer fixups. This allows the loader to ignore
/// internal fixups if the loader is able to load all objects at the addresses
/// specified in the object table.
///
///
///
[StructLayout(LayoutKind.Sequential)]
public class FixupRecordTableEntry
{
///
/// Source type.
///
///
/// The source type specifies the size and type of the fixup to be performed
/// on the fixup source.
///
public FixupRecordSourceType SourceType;
///
/// Target Flags.
///
///
/// The target flags specify how the target information is interpreted.
///
public FixupRecordTargetFlags TargetFlags;
// TODO: The shape of the data relies on the source and flags from here
// SRCOFF = DW/CNT = DB Source offset or source offset list count.
}
}