RetroLinker
Linker for several 8-bit, 16-bit and 32-bit formats
|
XCOFF optional header. More...
#include <coff.h>
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 |
![]() | |
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) | |
XCOFF optional header.
TODO: untested
|
overridevirtual |
Sets up fields to be consistent.
Implements COFF::COFFFormat::OptionalHeader.
|
overridevirtual |
Reimplemented from COFF::COFFFormat::OptionalHeader.
|
overridevirtual |
Returns size of optional header.
Implements COFF::COFFFormat::OptionalHeader.
|
overridevirtual |
Implements COFF::COFFFormat::OptionalHeader.
|
overridevirtual |
Implements COFF::COFFFormat::OptionalHeader.