RetroLinker
Linker for several 8-bit, 16-bit and 32-bit formats
|
Public Member Functions | |
OMFVersionNumberRecord (record_type_t record_type) | |
void | ReadRecordContents (OMF86Format *omf, Linker::Reader &rd) override |
Reads the record contents, except for the type, length and checksum. | |
uint16_t | GetRecordSize (OMF86Format *omf) const override |
Calculates the required bytes to write the record, might be less than record_length. | |
void | WriteRecordContents (OMF86Format *omf, ChecksumWriter &wr) const override |
Writes the record contents, except for the type, length and checksum. | |
void | ReadRecordContents (OMFFormat *omf, Linker::Reader &rd) override |
Converts omf to OMF86Format and calls the other implementation of ReadRecordContents. | |
virtual void | ReadRecordContents (OMF86Format *omf, Linker::Reader &rd)=0 |
Reads the record contents, except for the type, length and checksum. | |
uint16_t | GetRecordSize (OMFFormat *omf) const override |
Converts omf to OMF86Format and calls the other implementation of GetRecordSize. | |
virtual uint16_t | GetRecordSize (OMF86Format *omf) const=0 |
Calculates the required bytes to write the record, might be less than record_length. | |
void | WriteRecordContents (OMFFormat *omf, ChecksumWriter &wr) const override |
Converts omf to OMF86Format and calls the other implementation of WriteRecordContents. | |
virtual void | WriteRecordContents (OMF86Format *omf, ChecksumWriter &wr) const=0 |
Writes the record contents, except for the type, length and checksum. | |
![]() | |
Record (record_type_t record_type) | |
void | ReadRecordContents (OMFFormat *omf, Linker::Reader &rd) override |
Converts omf to OMF86Format and calls the other implementation of ReadRecordContents. | |
uint16_t | GetRecordSize (OMFFormat *omf) const override |
Converts omf to OMF86Format and calls the other implementation of GetRecordSize. | |
void | WriteRecordContents (OMFFormat *omf, ChecksumWriter &wr) const override |
Converts omf to OMF86Format and calls the other implementation of WriteRecordContents. | |
virtual void | CalculateValues (OMF86Format *omf, Module *mod) |
Updates all fields that will be used for writing an OMF module, should be called before output. | |
virtual void | ResolveReferences (OMF86Format *omf, Module *mod) |
Resolves any fields read from an OMF module, should be called after inpnut. | |
bool | Is32Bit (OMF86Format *omf) const |
Records are 32-bit if the least significant bit of their record type is set. | |
size_t | GetOffsetSize (OMF86Format *omf) const |
The number of bytes in an offset appearing inside the record, 2 for 16-bit records, 4 for 32-bit records. | |
![]() | |
Record (uint8_t record_type=0) | |
virtual void | WriteRecord (OMFFormat *omf, Linker::Writer &wr) const |
Writes the full record. | |
Public Attributes | |
std::string | version |
![]() | |
offset_t | record_offset |
Offset of record within the file. | |
uint16_t | record_length |
Length of record body file, excluding the type byte and 2-byte length field. | |
uint8_t | record_type |
A byte value identifying the type of record. | |
Additional Inherited Members | |
![]() | |
enum | record_type_t { RHEADR = 0x6E , REGINT = 0x70 , REDATA = 0x72 , RIDATA = 0x74 , OVLDEF = 0x76 , ENDREC = 0x78 , BLKDEF = 0x7A , BLKEND = 0x7C , DEBSYM = 0x7E , THEADR = 0x80 , LHEADR = 0x82 , PEDATA = 0x84 , PIDATA = 0x86 , COMENT = 0x88 , MODEND16 = 0x8A , MODEND = 0x8A , MODEND32 = 0x8B , EXTDEF = 0x8C , TYPDEF = 0x8E , PUBDEF16 = 0x90 , PUBDEF = 0x90 , PUBDEF32 = 0x91 , LOCSYM = 0x92 , LINNUM = 0x94 , LNAMES = 0x96 , SEGDEF = 0x98 , GRPDEF = 0x9A , FIXUPP16 = 0x9C , FIXUPP = 0x9C , FIXUPP32 = 0x9D , LEDATA16 = 0xA0 , LEDATA = 0xA0 , LEDATA32 = 0xA1 , LIDATA16 = 0xA2 , LIDATA = 0xA2 , LIDATA32 = 0xA3 , LIBHED = 0xA4 , LIBNAM = 0xA6 , LIBLOC = 0xA8 , LIBDIC = 0xAA , COMDEF = 0xB0 , BAKPAT16 = 0xB2 , BAKPAT = 0xB2 , BAKPAT32 = 0xB3 , LEXTDEF16 = 0xB4 , LEXTDEF = 0xB4 , LEXTDEF32 = 0xB5 , LPUBDEF16 = 0xB6 , LPUBDEF = 0xB6 , LPUBDEF32 = 0xB7 , LCOMDEF = 0xB8 , CEXTDEF = 0xBC , COMDAT16 = 0xC2 , COMDAT = 0xC2 , COMDAT32 = 0xC3 , LINSYM16 = 0xC4 , LINSYM = 0xC4 , LINSYM32 = 0xC5 , ALIAS = 0xC6 , NBKPAT16 = 0xC8 , NBKPAT = 0xC8 , NBKPAT32 = 0xC9 , LLNAMES = 0xCA , VERNUM = 0xCC , VENDEXT = 0xCE , LibraryHeader = 0xF0 , LibraryEnd = 0xF1 } |
The recognized record types in an OMF86 file. | |
![]() | |
static std::shared_ptr< OMFFormat::Record > | ReadRecord (OMF86Format *omf, Linker::Reader &rd) |
Parses and returns an instance of the next record. | |
|
overridevirtual |
Calculates the required bytes to write the record, might be less than record_length.
Implements OMF::OMF86Format::Record.
|
virtual |
Calculates the required bytes to write the record, might be less than record_length.
Implements OMF::OMF86Format::Record.
|
overridevirtual |
Converts omf to OMF86Format and calls the other implementation of GetRecordSize.
Implements OMF::OMFFormat::Record.
|
overridevirtual |
Reads the record contents, except for the type, length and checksum.
Implements OMF::OMF86Format::Record.
|
virtual |
Reads the record contents, except for the type, length and checksum.
Implements OMF::OMF86Format::Record.
|
overridevirtual |
Converts omf to OMF86Format and calls the other implementation of ReadRecordContents.
Implements OMF::OMFFormat::Record.
|
overridevirtual |
Writes the record contents, except for the type, length and checksum.
Implements OMF::OMF86Format::Record.
|
virtual |
Writes the record contents, except for the type, length and checksum.
Implements OMF::OMF86Format::Record.
|
overridevirtual |
Converts omf to OMF86Format and calls the other implementation of WriteRecordContents.
Implements OMF::OMFFormat::Record.