RetroLinker
Linker for several 8-bit, 16-bit and 32-bit formats
|
Represents a sequence of data, with optional repeated parts, used by RelocatableDataRecord, PhysicalDataRecord and LogicalDataRecord. More...
#include <omf.h>
Public Types | |
typedef std::vector< std::shared_ptr< DataBlock > > | Blocks |
If the contents are a sequence of blocks (iterated only) | |
typedef std::vector< uint8_t > | Data |
If the contents are a sequence of bytes (either iterated or enumerated) | |
Public Member Functions | |
uint16_t | GetEnumeratedDataBlockSize (OMF86Format *omf) const |
Gets the size of an encoded enumerated record in bytes. | |
void | WriteEnumeratedDataBlock (OMF86Format *omf, ChecksumWriter &wr) const |
Writes the contents of an enumerated record into a file. | |
uint16_t | GetIteratedDataBlockSize (OMF86Format *omf, bool is32bit) const |
Gets the size of an encoded iterated record in bytes. | |
void | WriteIteratedDataBlock (OMF86Format *omf, ChecksumWriter &wr, bool is32bit) const |
Writes the contents of an iterated record into a file. | |
Static Public Member Functions | |
static std::shared_ptr< DataBlock > | ReadEnumeratedDataBlock (OMF86Format *omf, Linker::Reader &rd, uint16_t data_length) |
Parses the contents of an enumerated record. | |
static std::shared_ptr< DataBlock > | ReadIteratedDataBlock (OMF86Format *omf, Linker::Reader &rd, bool is32bit) |
Parses the contents of an iterated record. | |
Public Attributes | |
uint16_t | repeat_count |
Number of times the data should be appear. Should be 1 for enumerated data. | |
std::variant< Data, Blocks > | content |
The actual contents of the block, whether iterated or enumerated. | |
Represents a sequence of data, with optional repeated parts, used by RelocatableDataRecord, PhysicalDataRecord and LogicalDataRecord.
Data blocks are divided into two types: enumerated or iterated. Enumerated blocks are just a sequence of bytes. Iterated blocks consist of a collection of blocks that get repeated a number of times.