|
RetroLinker
Linker for several 8-bit, 16-bit and 32-bit formats
|
A record that defines a block, used for BLKDEF records (Intel only) More...
#include <omf.h>
Public Types | |
| enum | block_type_t : uint8_t { NotProcedure = 0x00 , NearProcedure = 0x80 , FarProcedure = 0xC0 } |
| Type of the block, if it is a procedure. More... | |
Public Member Functions | |
| BlockDefinitionRecord (record_type_t record_type=record_type_t(0)) | |
| void | ReadRecordContents (OMF86Format *omf, Module *mod, Linker::Reader &rd) override |
| uint16_t | GetRecordSize (OMF86Format *omf, Module *mod) const override |
| void | WriteRecordContents (OMF86Format *omf, Module *mod, ChecksumWriter &wr) const override |
| void | CalculateValues (OMF86Format *omf, Module *mod) override |
| void | ResolveReferences (OMF86Format *omf, Module *mod) override |
Public Member Functions inherited from OMF::OMFFormat::Record< RecordTypeByte, FormatType, ModuleType > | |
| 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) | |
Public Attributes | |
| BaseSpecification | base |
| The first byte of the segment containing the block. | |
| std::string | name |
| The name of the block or empty. | |
| uint16_t | offset |
| Offset to the first byte of the block. | |
| uint16_t | length |
| Length of the block. | |
| block_type_t | procedure |
| Whether this block is a procedure, and whether it is a near or far procedure. | |
| uint16_t | return_address_offset |
| Offset, relative to the frame pointer (BP), to the return address of the procedure in the calling frame on the stack. | |
| TypeIndex | type |
| Type of block or procedure, only used if name != "". | |
Public Attributes inherited from OMF::OMFFormat::Record< RecordTypeByte, FormatType, ModuleType > | |
| 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. | |
| RecordTypeByte | record_type |
| A byte value identifying the type of record. | |
A record that defines a block, used for BLKDEF records (Intel only)
| enum OMF::OMF86Format::BlockDefinitionRecord::block_type_t : uint8_t |