RetroLinker
Linker for several 8-bit, 16-bit and 32-bit formats
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
AOut::AOutFormat::Relocation Class Reference

Represents an a.out relocation, unifying 16-bit and 32-bit formats. More...

#include <aout.h>

Public Types

enum  segment_type {
  Undefined , External , Absolute , Text ,
  Data , Bss , FileName , Illegal
}
 Type of target. More...
 

Public Member Functions

void WriteFile16Bit (Linker::Writer &wr) const
 
void WriteFile32Bit (Linker::Writer &wr, word_size_t word_size=WordSize32) const
 

Static Public Member Functions

static Relocation ReadFile16Bit (Linker::Reader &rd, uint16_t offset)
 
static Relocation ReadFile32Bit (Linker::Reader &rd, word_size_t word_size=WordSize32)
 

Public Attributes

uint32_t address = 0
 Offset of relocation within segment.
 
uint32_t symbol = 0
 Symbol number, only valid for external relocations.
 
bool relative = false
 Set to true if the relocation is PC-relative.
 
size_t size = 0
 Size of relocation, in bytes.
 
segment_type segment = Undefined
 Represents the type of relocation target.
 
uint32_t literal_entry = 0
 For invalid bit combinations, stores the bits that are expected to be 0.
 

Detailed Description

Represents an a.out relocation, unifying 16-bit and 32-bit formats.

Member Enumeration Documentation

◆ segment_type

Type of target.

Enumerator
Undefined 

Target is undefined.

External 

Target is external, symbol contains symbol number.

Absolute 

Target is an absolute value.

Text 

Target is the text segment.

Data 

Target is the data segment.

Bss 

Target is the bss segment.

FileName 

Represents a file name symbol.

Illegal 

Relocation entry is invalid.

Member Data Documentation

◆ size

size_t AOut::AOutFormat::Relocation::size = 0

Size of relocation, in bytes.

Must be 2 for 16-bit a.out


The documentation for this class was generated from the following files: