|
RetroLinker
Linker for several 8-bit, 16-bit and 32-bit formats
|
Base class representing OMF record types. More...
#include <omf.h>
Public Member Functions | |
| Record (RecordTypeByte record_type=RecordTypeByte(0)) | |
| offset_t | RecordEnd () const |
| virtual void | ReadRecordContents (FormatType *omf, ModuleType *mod, Linker::Reader &rd)=0 |
| Reads the record contents, except for the type, length and checksum. | |
| virtual uint16_t | GetRecordSize (FormatType *omf, ModuleType *mod) const =0 |
| Calculates the required bytes to write the record, might be less than record_length. | |
| virtual void | WriteRecordContents (FormatType *omf, ModuleType *mod, ChecksumWriter &wr) const =0 |
| Writes the record contents, except for the type, length and checksum. | |
| virtual void | WriteRecord (FormatType *omf, ModuleType *mod, Linker::Writer &wr) const |
| Writes the full record. | |
| virtual void | CalculateValues (FormatType *omf, ModuleType *mod) |
| Updates all fields that will be used for writing an OMF module, should be called before output. | |
| virtual void | ResolveReferences (FormatType *omf, ModuleType *mod) |
| Resolves any fields read from an OMF module, should be called after inpnut. | |
| virtual void | DumpAddFields (Dumper::Dumper &dump, Dumper::Region ®ion, const FormatType *omf, const ModuleType *mod, size_t record_index) const |
| virtual void | Dump (Dumper::Dumper &dump, const FormatType *omf, const ModuleType *mod, size_t record_index) const |
| bool | Is32Bit (FormatType *omf) const |
| Records are 32-bit if the least significant bit of their record type is set (only meaningful for OMF86Format) | |
| size_t | GetOffsetSize (FormatType *omf) const |
| The number of bytes in an offset appearing inside the record, 2 for 16-bit records, 4 for 32-bit records (only meaningful for OMF86Format) | |
Base class representing OMF record types.
Any record type is expected to extend this class. If several record types have the same or similar layout, they can share the same class, since the record type can be determined using the record_type field.
|
pure virtual |
Calculates the required bytes to write the record, might be less than record_length.
Implemented in OMF::OMFFormat::UnknownRecord< RecordTypeByte, FormatType, ModuleType >, OMF::OMFFormat::EmptyRecord< RecordTypeByte, FormatType, ModuleType >, OMF::OMFFormat::ContentRecord< RecordTypeByte, FormatType, ModuleType >, OMF::OMFFormat::LineNumbersRecord< RecordTypeByte, FormatType, ModuleType >, OMF::OMFFormat::LibraryHeaderRecord< RecordTypeByte, FormatType, ModuleType >, OMF::OMFFormat::LibraryModuleNamesRecord< RecordTypeByte, FormatType, ModuleType >, OMF::OMFFormat::LibraryModuleLocationsRecord< RecordTypeByte, FormatType, ModuleType >, and OMF::OMFFormat::LibraryDictionaryRecord< RecordTypeByte, FormatType, ModuleType >.
|
pure virtual |
Reads the record contents, except for the type, length and checksum.
Implemented in OMF::OMFFormat::UnknownRecord< RecordTypeByte, FormatType, ModuleType >, OMF::OMFFormat::EmptyRecord< RecordTypeByte, FormatType, ModuleType >, OMF::OMFFormat::ContentRecord< RecordTypeByte, FormatType, ModuleType >, OMF::OMFFormat::LineNumbersRecord< RecordTypeByte, FormatType, ModuleType >, OMF::OMFFormat::LibraryHeaderRecord< RecordTypeByte, FormatType, ModuleType >, OMF::OMFFormat::LibraryModuleNamesRecord< RecordTypeByte, FormatType, ModuleType >, OMF::OMFFormat::LibraryModuleLocationsRecord< RecordTypeByte, FormatType, ModuleType >, and OMF::OMFFormat::LibraryDictionaryRecord< RecordTypeByte, FormatType, ModuleType >.
|
pure virtual |
Writes the record contents, except for the type, length and checksum.
Implemented in OMF::OMFFormat::UnknownRecord< RecordTypeByte, FormatType, ModuleType >, OMF::OMFFormat::EmptyRecord< RecordTypeByte, FormatType, ModuleType >, OMF::OMFFormat::ContentRecord< RecordTypeByte, FormatType, ModuleType >, OMF::OMFFormat::LineNumbersRecord< RecordTypeByte, FormatType, ModuleType >, OMF::OMFFormat::LibraryHeaderRecord< RecordTypeByte, FormatType, ModuleType >, OMF::OMFFormat::LibraryModuleNamesRecord< RecordTypeByte, FormatType, ModuleType >, OMF::OMFFormat::LibraryModuleLocationsRecord< RecordTypeByte, FormatType, ModuleType >, and OMF::OMFFormat::LibraryDictionaryRecord< RecordTypeByte, FormatType, ModuleType >.