RetroLinker
Linker for several 8-bit, 16-bit and 32-bit formats
|
Public Types | |
enum | source_type { Offset8 = 0 , Selector16 = 2 , Pointer32 = 3 , Offset16 = 5 , Pointer48 = 11 , Offset32 = 13 } |
The type of the field that needs to be updated in the binary image. More... | |
enum | flag_type { TargetTypeMask = 3 , Internal = 0 , ImportOrdinal = 1 , ImportName = 2 , OSFixup = 3 , Additive = 4 } |
Encodes what the type of the target is for this relocation. More... | |
enum | { FIARQQ = 1 , FJARQQ = 1 , FISRQQ = 2 , FJSRQQ = 2 , FICRQQ = 3 , FJCRQQ = 3 , FIERQQ = 4 , FIDRQQ = 5 , FIWRQQ = 6 } |
Public Member Functions | |
Relocation (unsigned type, unsigned flags, uint16_t offset, uint16_t module, uint16_t target) | |
size_t | GetSize () const |
Static Public Member Functions | |
static source_type | GetType (Linker::Relocation &rel) |
Public Attributes | |
source_type | type = source_type(0) |
The type of relocation. | |
flag_type | flags = flag_type(0) |
The type of target. | |
std::vector< uint16_t > | offsets |
The offset to the relocation, or if the relocation is chained, a list of offsets (this is not possible for Offset8) | |
uint16_t | |
This field is a segment (1 based) or module (1 based) or 80x87 instruction reference, depending on the flags. | |
uint16_t | target = 0 |
This field is an offset or ordinal, depending on the flags. | |
std::string | module_name |
Convenience field that stores the module name. | |
std::string | import_name |
Convenience field that stores the imported procedure name, if imported by name, also the name for an exported entry. | |
uint8_t | actual_segment = 0 |
Convenience field that stores the actual segment for an entry. | |
uint16_t | actual_offset = 0 |
Convenience field that stores the actual offset for an entry. | |
Encodes what the type of the target is for this relocation.
The type of the field that needs to be updated in the binary image.