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 } }