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

XCOFF optional header. More...

#include <coff.h>

Inheritance diagram for COFF::COFFFormat::XCOFFAOutHeader:
COFF::COFFFormat::OptionalHeader

Public Member Functions

 XCOFFAOutHeader (bool is64, 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

bool is64 = false
 False for XCOFF32, true for XCOFF64.
 
uint16_t magic = 0
 Type of executable (XCOFF name: mflag)
 
uint16_t version_stamp = 0
 Object file version stamp (XCOFF name: vstamp)
 
uint64_t code_size = 0
 Size of code segment (XCOFF name: tsize)
 
uint64_t data_size = 0
 Size of data segment (XCOFF name: dsize)
 
uint64_t bss_size = 0
 Size of bss segment (XCOFF name: bsize)
 
uint64_t entry_address = 0
 Virtual address of execution start (XCOFF name: entry)
 
uint64_t code_address = 0
 Base address for code segment (XCOFF name: text_start)
 
uint64_t data_address = 0
 Base address for data segment (XCOFF name: data_start)
 
uint64_t toc_address = 0
 Address of TOC (XCOFF name: toc)
 
uint16_t entry_section = 0
 Section number for entry point (XCOFF name: snentry)
 
uint16_t code_section = 0
 Section number for text (XCOFF name: sntext)
 
uint16_t data_section = 0
 Section number for data (XCOFF name: sndata)
 
uint16_t toc_section = 0
 Section number for TOC (XCOFF name: sntoc)
 
uint16_t loader_section = 0
 Section number for loader data (XCOFF name: snloader)
 
uint16_t bss_section = 0
 Section number for bss (XCOFF name: snbss)
 
uint16_t code_align = 0
 Maximum alignment of text (XCOFF name: algntext)
 
uint16_t data_align = 0
 Maximum alignment of data (XCOFF name: algndata)
 
uint16_t module_type = 0
 Module type (XCOFF name: modtype)
 
uint8_t cpu_flags = 0
 CPU flags (XCOFF name: cpuflag)
 
uint8_t cpu_type = 0
 CPU type (XCOFF name: cputype)
 
uint64_t maximum_stack_size = 0
 Maximum stack size (XCOFF name: maxstack)
 
uint64_t maximum_data_size = 0
 Maximum data size (XCOFF name: maxdata)
 
uint32_t debugger_data = 0
 Reserved for debugger (XCOFF name: debugger)
 
uint8_t code_page_size = 0
 Requested code page size (XCOFF name: textpsize)
 
uint8_t text_page_size = 0
 Requested data page size (XCOFF name: datapsize)
 
uint8_t stack_page_size = 0
 Requested stack page size (XCOFF name: stackpsize)
 
uint8_t flags = 0
 Flags.
 
uint16_t tdata_section = 0
 Section number for tdata (XCOFF name: sntdata)
 
uint16_t tbss_section = 0
 Section number for tbss (XCOFF name: sntbss)
 
uint32_t xcoff64_flags = 0
 XCOFF64 specific flags (XCOFF64 name: x64flags)
 

Detailed Description

XCOFF optional header.

TODO: untested

Member Function Documentation

◆ CalculateValues()

offset_t COFFFormat::XCOFFAOutHeader::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::XCOFFAOutHeader::Dump ( const COFFFormat & coff,
Dumper::Dumper & dump ) const
overridevirtual

Reimplemented from COFF::COFFFormat::OptionalHeader.

◆ GetSize()

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

Returns size of optional header.

Implements COFF::COFFFormat::OptionalHeader.

◆ ReadFile()

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

◆ WriteFile()

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

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