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

ECOFF optional header. More...

#include <coff.h>

Inheritance diagram for COFF::COFFFormat::ECOFFAOutHeader:
COFF::COFFFormat::OptionalHeader

Public Member Functions

 ECOFFAOutHeader (uint16_t magic=0)
 
uint32_t GetSize () const override
 Returns size of optional header.
 
void ReadFile (Linker::Reader &rd) override
 
void WriteFile (Linker::Writer &wr) const override
 
offset_t CalculateValues (COFFFormat &coff) override
 Sets up fields to be consistent.
 
void Dump (const COFFFormat &coff, Dumper::Dumper &dump) const override
 
- Public Member Functions inherited from COFF::COFFFormat::OptionalHeader
virtual void PostReadFile (COFFFormat &coff, Linker::Reader &rd)
 Retrieves any additional data from the file corresponding to this type of optional header.
 
virtual void PostWriteFile (const COFFFormat &coff, Linker::Writer &wr) const
 Stores any additional data in the file corresponding to this type of optional header.
 

Public Attributes

uint16_t magic = 0
 Type of executable.
 
uint16_t version_stamp = SYM_STAMP
 Object file version stamp (ECOFF name: vstamp)
 
uint16_t build_revision = 0
 Revision build of system tools (ECOFF name: bldrev)
 
uint64_t code_size = 0
 Size of code segment (ECOFF name: tsize)
 
uint64_t data_size = 0
 Size of data segment (ECOFF name: dsize)
 
uint64_t bss_size = 0
 Size of bss segment (ECOFF name: bsize)
 
uint64_t entry_address = 0
 Virtual address of execution start (ECOFF name: entry)
 
uint64_t code_address = 0
 Base address for code segment (ECOFF name: text_start)
 
uint64_t data_address = 0
 Base address for data segment (ECOFF name: data_start)
 
uint64_t bss_address = 0
 Base address for bss segment (ECOFF name: bss_start)
 
uint32_t gpr_mask = 0
 unused (ECOFF name: gprmask)
 
uint32_t fpr_mask = 0
 unused (ECOFF name: fprmask)
 
uint64_t global_pointer = 0
 Initial global pointer value (ECOFF name: gp_value)
 

Static Public Attributes

static constexpr uint16_t OMAGIC = 0x0107
 
static constexpr uint16_t NMAGIC = 0x0108
 
static constexpr uint16_t ZMAGIC = 0x010B
 
static constexpr uint16_t SYM_STAMP = 0x030D
 

Detailed Description

ECOFF optional header.

TODO: untested

Member Function Documentation

◆ CalculateValues()

offset_t COFFFormat::ECOFFAOutHeader::CalculateValues ( COFFFormat & coff)
overridevirtual

Sets up fields to be consistent.

Returns
Number of extra bytes following symbol table

Implements COFF::COFFFormat::OptionalHeader.

◆ Dump()

void COFFFormat::ECOFFAOutHeader::Dump ( const COFFFormat & coff,
Dumper::Dumper & dump ) const
overridevirtual

Reimplemented from COFF::COFFFormat::OptionalHeader.

◆ GetSize()

uint32_t COFFFormat::ECOFFAOutHeader::GetSize ( ) const
overridevirtual

Returns size of optional header.

Implements COFF::COFFFormat::OptionalHeader.

◆ ReadFile()

void COFFFormat::ECOFFAOutHeader::ReadFile ( Linker::Reader & rd)
overridevirtual

◆ WriteFile()

void COFFFormat::ECOFFAOutHeader::WriteFile ( Linker::Writer & wr) const
overridevirtual

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