|
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 |
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) | |
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.