RetroLinker
Linker for several 8-bit, 16-bit and 32-bit formats
|
Represents a LOCAL or GLOBAL record. More...
#include <gsos.h>
Public Types | |
enum | operation_type { OP_ADDRESS_DC = 'A' , OP_BOOL_DC = 'B' , OP_CHAR_DC = 'C' , OP_DOUBLE_DC = 'D' , OP_FLOAT_DC = 'E' , OP_EQU_GEQU = 'G' , OP_HEX_DC = 'H' , OP_INT_DC = 'I' , OP_REF_ADDRESS_DC = 'K' , OP_SOFT_REF_DC = 'L' , OP_INSTRUCTION = 'M' , OP_ASM_DIRECTIVE = 'N' , OP_ORG = 'O' , OP_ALIGN = 'P' , OP_DS = 'S' , OP_ARITHMETIC_SYMBOL = 'X' , OP_BOOL_SYMBOL = 'Y' , OP_CHAR_SYMBOL = 'Z' } |
![]() | |
enum | record_type { OPC_END = 0x00 , OPC_CONST_BASE = 0x00 , OPC_CONST_FIRST = 0x01 , OPC_CONST_LAST = 0xDF , OPC_ALIGN = 0xE0 , OPC_ORG = 0xE1 , OPC_RELOC = 0xE2 , OPC_INTERSEG = 0xE3 , OPC_USING = 0xE4 , OPC_STRONG = 0xE5 , OPC_GLOBAL = 0xE6 , OPC_GEQU = 0xE7 , OPC_MEM = 0xE8 , OPC_EXPR = 0xEB , OPC_ZEXPR = 0xEC , OPC_BEXPR = 0xED , OPC_RELEXPR = 0xEE , OPC_LOCAL = 0xEF , OPC_EQU = 0xF0 , OPC_DS = 0xF1 , OPC_LCONST = 0xF2 , OPC_LEXPR = 0xF3 , OPC_ENTRY = 0xF4 , OPC_C_RELOC = 0xF5 , OPC_C_INTERSEG = 0xF6 , OPC_SUPER = 0xF7 } |
Public Member Functions | |
LabelRecord (record_type type) | |
LabelRecord (record_type type, std::string name, uint16_t line_length, int operation, uint16_t private_flag) | |
offset_t | GetLength (const Segment &segment) const override |
Returns the size of the record, as stored in the file. | |
void | ReadFile (Segment &segment, Linker::Reader &rd) override |
void | WriteFile (const Segment &segment, Linker::Writer &wr) const override |
void | AddFields (Dumper::Dumper &dump, Dumper::Region ®ion, const OMFFormat &omf, const Segment &segment, unsigned index, offset_t file_offset, offset_t address) const override |
Adds any further fields to the file region that encompasses this record. | |
![]() | |
Record (record_type type) | |
virtual offset_t | GetMemoryLength (const Segment &segment, offset_t current_address) const |
Returns the amount of memory the record occupies when loaded into memory. Most records have a length of 0. | |
virtual void | Dump (Dumper::Dumper &dump, const OMFFormat &omf, const Segment &segment, unsigned index, offset_t file_offset, offset_t address) const |
Displays information pertaining to this record. | |
virtual void | AddSignals (Dumper::Block &block, offset_t current_segment_offset) const |
If this is a relocation record, add the relocation signals to the block. | |
virtual void | ReadData (size_t bytes, offset_t offset, void *buffer) const |
Attempts to read data from the in-memory image, if possible, it can be assumed that offset + bytes <= GetMemoryLength() | |
Public Attributes | |
std::string | name |
uint16_t | line_length = 0 |
operation_type | operation = operation_type(0) |
uint16_t | private_flag = 0 |
![]() | |
record_type | type |
Represents a LOCAL or GLOBAL record.
|
overridevirtual |
Adds any further fields to the file region that encompasses this record.
Reimplemented from Apple::OMFFormat::Segment::Record.
|
overridevirtual |
Returns the size of the record, as stored in the file.
segment | The segment the record is part of |
Reimplemented from Apple::OMFFormat::Segment::Record.
|
overridevirtual |
Reimplemented from Apple::OMFFormat::Segment::Record.
|
overridevirtual |
Reimplemented from Apple::OMFFormat::Segment::Record.