|
RetroLinker
Linker for several 8-bit, 16-bit and 32-bit formats
|
A class that provides a general interface to loading a module. More...
#include <format.h>
Public Member Functions | |
| 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 void | GenerateModule (Module &module) const |
| Loads the information into a module object, a convenience method when there is a single module generated. | |
| 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. | |
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. | |
| virtual void | ReadFile (Reader &rd)=0 |
| Loads file into memory. | |
| offset_t | WriteFile (Writer &wr) const override=0 |
| Stores data in memory to file. | |
| virtual void | Dump (Dumper::Dumper &dump) const |
| Display file contents in a nice manner. | |
| 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. | |
Additional Inherited Members | |
Public Attributes inherited from Linker::Format | |
| offset_t | file_offset |
A class that provides a general interface to loading a module.
|
virtual |
Whether the format supports resources.
Formats such as NE, LE/LX, PE and the Macintosh classic support including resources in the final binary. To simplify writing resources, the ELF parser permits incorporating them directly in the binary image as $$RSRC$_<type>$<id>.
|
virtual |
Whether the format enables multiple x86 segments.
This is typically true for Intel 8086 targets and false for non-Intel targets. The ELF parser uses this to provide extended relocations, including the following:
|
virtual |
Whether the generated file might contain bugs that require fixing.
Reimplemented in COFF::COFFFormat.
|
virtual |
Loads the information into a module object, a convenience method when there is a single module generated.
Reimplemented in AOut::AOutFormat, AS86Obj::AS86ObjFormat, COFF::COFFFormat, ELF::ELFFormat, EMX::EMXAOutFormat, O65::O65Format, OMF::OMF86Format, OMF::OMF80Format, OMF::OMF51Format, OMF::OMF96Format, and OMF::OMFFormatContainer.
|
virtual |
Loads the information into a module object.
Reimplemented in Archive::ArchiveFormat.
|
virtual |
Initializes the reader for linking purposes.
| format | The output format that will be used. This is required to know which extra special features need to be implemented (such as segmentation). |
Reimplemented in COFF::COFFFormat, and ELF::ELFFormat.