namespace SabreTools.Models.LinearExecutable { /// /// The `LINEAR` executable-file header contains information that the loader requires for /// segmented executable files. This information includes the linker version number, data /// specified by linker, data specified by resource compiler, tables of segment data, tables /// of resource data, and so on. The following illustrations shows the LE file header: /// /// /// public sealed class Executable { /// /// MS-DOS executable stub /// #if NET48 public MSDOS.Executable Stub { get; set; } #else public MSDOS.Executable? Stub { get; set; } #endif /// /// Information block /// #if NET48 public InformationBlock InformationBlock { get; set; } #else public InformationBlock? InformationBlock { get; set; } #endif /// /// Object table /// #if NET48 public ObjectTableEntry[] ObjectTable { get; set; } #else public ObjectTableEntry[]? ObjectTable { get; set; } #endif /// /// Object page map /// #if NET48 public ObjectPageMapEntry[] ObjectPageMap { get; set; } #else public ObjectPageMapEntry[]? ObjectPageMap { get; set; } #endif // TODO: Object iterate data map table (Undefined) /// /// Resource table /// #if NET48 public ResourceTableEntry[] ResourceTable { get; set; } #else public ResourceTableEntry[]? ResourceTable { get; set; } #endif /// /// Resident Name table /// #if NET48 public ResidentNamesTableEntry[] ResidentNamesTable { get; set; } #else public ResidentNamesTableEntry[]? ResidentNamesTable { get; set; } #endif /// /// Entry table /// #if NET48 public EntryTableBundle[] EntryTable { get; set; } #else public EntryTableBundle[]? EntryTable { get; set; } #endif /// /// Module format directives table (optional) /// #if NET48 public ModuleFormatDirectivesTableEntry[] ModuleFormatDirectivesTable { get; set; } #else public ModuleFormatDirectivesTableEntry[]? ModuleFormatDirectivesTable { get; set; } #endif /// /// Verify record directive table (optional) /// #if NET48 public VerifyRecordDirectiveTableEntry[] VerifyRecordDirectiveTable { get; set; } #else public VerifyRecordDirectiveTableEntry[]? VerifyRecordDirectiveTable { get; set; } #endif /// /// Fix-up page table /// #if NET48 public FixupPageTableEntry[] FixupPageTable { get; set; } #else public FixupPageTableEntry[]? FixupPageTable { get; set; } #endif /// /// Fix-up record table /// #if NET48 public FixupRecordTableEntry[] FixupRecordTable { get; set; } #else public FixupRecordTableEntry[]? FixupRecordTable { get; set; } #endif /// /// Import module name table /// #if NET48 public ImportModuleNameTableEntry[] ImportModuleNameTable { get; set; } #else public ImportModuleNameTableEntry[]? ImportModuleNameTable { get; set; } #endif /// /// Import procedure name table /// #if NET48 public ImportModuleProcedureNameTableEntry[] ImportModuleProcedureNameTable { get; set; } #else public ImportModuleProcedureNameTableEntry[]? ImportModuleProcedureNameTable { get; set; } #endif /// /// Per-Page checksum table /// #if NET48 public PerPageChecksumTableEntry[] PerPageChecksumTable { get; set; } #else public PerPageChecksumTableEntry[]? PerPageChecksumTable { get; set; } #endif /// /// Non-Resident Name table /// #if NET48 public NonResidentNamesTableEntry[] NonResidentNamesTable { get; set; } #else public NonResidentNamesTableEntry[]? NonResidentNamesTable { get; set; } #endif // TODO: Non-resident directives data (Undefined) /// /// Debug information /// #if NET48 public DebugInformation DebugInformation { get; set; } #else public DebugInformation? DebugInformation { get; set; } #endif } }