|
RetroLinker
Linker for several 8-bit, 16-bit and 32-bit formats
|
Intel Relocatable Object Module for the Intel MCS-96. More...
#include <omf.h>
Classes | |
| class | BlockDefinitionRecord |
| class | ExternalDefinition |
| class | ExternalDefinitionsRecord |
| class | Module |
| class | ModuleAncestorRecord |
| class | ModuleEndRecord |
| class | ModuleHeaderRecord |
| class | RelocationRecord |
| class | SegmentDefinition |
| class | SegmentDefinitionsRecord |
| class | SymbolDefinition |
| class | SymbolDefinitionsRecord |
| class | TypeDefinitionRecord |
| class | TypeIndex |
Public Types | |
| enum | record_type_t : uint8_t { ModuleHeader = OMF80Format::ModuleHeader , ModuleEnd = OMF80Format::ModuleEnd , Content = OMF80Format::Content , LineNumbers = OMF80Format::LineNumbers , BlockDefinition = 0x0A , BlockEnd = 0x0C , EndOfFile = OMF80Format::EndOfFile , ModuleAncestor = OMF80Format::ModuleAncestor , LocalSymbols = OMF80Format::LocalSymbols , TypeDefinition = 0x14 , PublicDefinitions = OMF80Format::PublicDefinitions , ExternalDefinitions = OMF80Format::ExternalDefinitions , SegmentDefinitions = 0x20 , Relocations = OMF80Format::Relocations , LibraryModuleLocations = OMF80Format::LibraryModuleLocations , LibraryModuleNames = OMF80Format::LibraryModuleNames , LibraryDictionary = OMF80Format::LibraryDictionary , LibraryHeader = 0x2E } |
| enum | alignment_t { AlignByte = 0 , AlignWord = 1 , AlignLong = 2 } |
| typedef uint16_t | index_t |
| using | Record = OMFFormat::Record<record_type_t, OMF96Format, Module> |
| using | UnknownRecord = OMFFormat::UnknownRecord<record_type_t, OMF96Format, Module> |
| using | EmptyRecord = OMFFormat::EmptyRecord<record_type_t, OMF96Format, Module> |
| using | ContentRecord = OMFFormat::ContentRecord<record_type_t, OMF96Format, Module> |
| using | LineNumbersRecord = OMFFormat::LineNumbersRecord<record_type_t, OMF96Format, Module> |
| using | LibraryHeaderRecord = OMFFormat::LibraryHeaderRecord<record_type_t, OMF96Format, Module> |
| using | LibraryModuleNamesRecord = OMFFormat::LibraryModuleNamesRecord<record_type_t, OMF96Format, Module> |
| using | LibraryModuleLocationsRecord = OMFFormat::LibraryModuleLocationsRecord<record_type_t, OMF96Format, Module> |
| using | LibraryDictionaryRecord = OMFFormat::LibraryDictionaryRecord<record_type_t, OMF96Format, Module> |
| typedef uint8_t | segment_id_t |
Public Types inherited from OMF::OMFFormat | |
| typedef uint16_t | index_t |
| An index referring to an element or definition in the file, typically stored as 1 or 2 bytes, used for OMF86 and OMF96. | |
Public Member Functions | |
| std::shared_ptr< Record > | ReadRecord (Linker::Reader &rd) |
| Parses and returns an instance of the next record. | |
| void | ReadFile (Linker::Reader &rd) override |
| Loads file into memory. | |
| offset_t | WriteFile (Linker::Writer &wr) const override |
| Stores data in memory to file. | |
| void | Dump (Dumper::Dumper &dump) const override |
| Display file contents in a nice manner. | |
| void | GenerateModule (Linker::Module &module) const override |
| Loads the information into a module object, a convenience method when there is a single module generated. | |
Public Member Functions inherited from Linker::Format | |
| Format (offset_t file_offset=0) | |
| virtual void | Clear () |
| Resets all fields to their default values, deallocate memory. | |
| offset_t | ImageSize () const override |
| Retrieves size of stored data. | |
| offset_t | WriteFile (Writer &wr, offset_t count, offset_t offset=0) const override |
| Writes data of non-zero filled sections. | |
Public Member Functions inherited from Linker::Image | |
| virtual std::shared_ptr< const ActualImage > | AsImage () const |
| Retrieves a randomly accessible image. | |
| std::shared_ptr< ActualImage > | AsImage () |
| Retrieves a randomly accessible image. | |
Public Member Functions inherited from Linker::InputFormat | |
| virtual void | SetupOptions (std::shared_ptr< OutputFormat > format) |
| Initializes the reader for linking purposes. | |
| virtual void | ProduceModule (ModuleCollector &linker, Reader &rd, std::string file_name) |
| Reads a file and loads the information into a module object. | |
| virtual void | ProduceModule (Module &module, Reader &rd) |
| Reads a file and loads the information into a module object, a convenience method when there is a single module generated. | |
| virtual void | GenerateModule (ModuleCollector &linker, std::string file_name, bool is_library=false) const |
| Loads the information into a module object. | |
| virtual bool | FormatProvidesSegmentation () const |
| Whether the format enables multiple x86 segments. | |
| virtual bool | FormatRequiresDataStreamFix () const |
| Whether the generated file might contain bugs that require fixing. | |
| virtual bool | FormatProvidesResources () const |
| Whether the format supports resources. | |
| virtual bool | FormatProvidesLibraries () const |
| Whether the format enables importing/exporting libraries. | |
Static Public Member Functions | |
| static std::shared_ptr< OMF96Format > | ReadOMFFile (Linker::Reader &rd) |
| Parses an OMF96 file. | |
| static void | DumpAddFields (const Record *record, Dumper::Dumper &dump, Dumper::Region ®ion, const OMF96Format *omf, const Module *mod, size_t record_index) |
Static Public Member Functions inherited from OMF::OMFFormat | |
| static std::string | ReadString (Linker::Reader &rd, size_t max_bytes=size_t(-1)) |
| Reads a string prefixed with a length byte. | |
| static void | WriteString (ChecksumWriter &wr, std::string text) |
| Writes a string prefixed with a length byte. | |
| static index_t | ReadIndex (Linker::Reader &rd) |
| Parses a 1 or 2 byte index value. | |
| static void | WriteIndex (ChecksumWriter &wr, index_t index) |
| Produces a 1 or 2 byte index value. | |
| static size_t | IndexSize (index_t index) |
| Determines if the index value requires 1 or 2 bytes to store. | |
| static std::shared_ptr< OMFFormat > | ReadOMFFile (Linker::Reader &rd) |
| Attempts to parse an OMF file, whether OMF80, OMF86, OMF51 or OMF96. | |
Public Attributes | |
| std::vector< std::shared_ptr< Record > > | records |
| The ordered collection of records contained in the file. | |
| std::vector< Module > | modules |
| List of modules appearing in an OMF file, typically only one for an object file. | |
Public Attributes inherited from OMF::OMFFormat | |
| offset_t | file_size = 0 |
| Used to calculate record offsets when generating OMF file. | |
Public Attributes inherited from Linker::Format | |
| offset_t | file_offset |
Static Public Attributes | |
| static const std::map< offset_t, std::string > | RecordTypeNames |
| static constexpr segment_id_t | CodeSegment = 0 |
| static constexpr segment_id_t | DataSegment = 1 |
| static constexpr segment_id_t | RegisterSegment = 2 |
| static constexpr segment_id_t | OverlaySegment = 3 |
| static constexpr segment_id_t | StackSegment = 4 |
| static constexpr segment_id_t | DynamicSymbol = 5 |
| static constexpr segment_id_t | NullSegment = 6 |
| static constexpr segment_id_t | SegmentTypeMask = 7 |
| static constexpr segment_id_t | FlagBasedVariable = 0x40 |
| static constexpr segment_id_t | FlagRelocatableSegment = 0x80 |
Intel Relocatable Object Module for the Intel MCS-96.
|
overridevirtual |
Display file contents in a nice manner.
Reimplemented from Linker::Format.
|
overridevirtual |
Loads the information into a module object, a convenience method when there is a single module generated.
Reimplemented from Linker::InputFormat.
|
overridevirtual |
Loads file into memory.
Implements Linker::Format.
|
overridevirtual |
Stores data in memory to file.
Implements Linker::Format.
|
static |