Module elf.inc - Executable and Linkable Format (ELF) definitions

Executable and Linkable Format (ELF) definitions. Most contents based on Tool Interface Standards (TIS), ELF specification, version 1.1.

Index

Declarations

elf.inc:26Group ELF32

ELF types and alignments.

elf.inc:27Data type ELF32.ADDR

DATA TYPE ELF32.ADDR

Address type.

elf.inc:28Data type ELF32.HALF

DATA TYPE ELF32.HALF

Halfword type.

elf.inc:29Data type ELF32.OFF

DATA TYPE ELF32.OFF

Offset type.

elf.inc:30Data type ELF32.SWORD

DATA TYPE ELF32.SWORD

Signed-word type.

elf.inc:31Data type ELF32.WORD

DATA TYPE ELF32.WORD

Unsigned-word type.

elf.inc:32Data type ELF32.UC

DATA TYPE ELF32.UC

Unsigned-char type.

elf.inc:34Constant ELF32.ADDR.ALIGN

VAL INT ELF32.ADDR.ALIGN

Address alignment.

elf.inc:35Constant ELF32.HALF.ALIGN

VAL INT ELF32.HALF.ALIGN

Halfword alignment.

elf.inc:36Constant ELF32.OFF.ALIGN

VAL INT ELF32.OFF.ALIGN

Offset alignment.

elf.inc:37Constant ELF32.SWORD.ALIGN

VAL INT ELF32.SWORD.ALIGN

Signed-word alignment.

elf.inc:38Constant ELF32.WORD.ALIGN

VAL INT ELF32.WORD.ALIGN

Unsigned-word alignment.

elf.inc:39Constant ELF32.UC.ALIGN

VAL INT ELF32.UC.ALIGN

Unsigned-char alignment.

elf.inc:42Constant EI.NIDENT

VAL INT EI.NIDENT

Size of ELF identification header.

elf.inc:45Record ELF32.EHDR

DATA TYPE ELF32.EHDR

ELF header structure.

elf.inc:47Variable e.ident

[EI.NIDENT]ELF32.UC

ELF identification.

elf.inc:48Variable e.type

ELF32.HALF

Object file type (see ET).

elf.inc:49Variable e.machine

ELF32.HALF

Required architecture (see EM).

elf.inc:50Variable e.version

ELF32.WORD

Object file version.

elf.inc:51Variable e.entry

ELF32.ADDR

VA entry-point.

elf.inc:52Variable e.phoff

ELF32.OFF

Program header offset (bytes).

elf.inc:53Variable e.shoff

ELF32.OFF

Section header offset (bytes).

elf.inc:54Variable e.flags

ELF32.WORD

Processor-specific flags.

elf.inc:55Variable e.ehsize

ELF32.HALF

ELF header size (bytes).

elf.inc:56Variable e.phentsize

ELF32.HALF

Program header entry size (bytes).

elf.inc:57Variable e.phnum

ELF32.HALF

Number of entries in program header table.

elf.inc:58Variable e.shentsize

ELF32.HALF

Section header entry size (bytes).

elf.inc:59Variable e.shnum

ELF32.HALF

Number of entries in section header table.

elf.inc:60Variable e.shstrndx

ELF32.HALF

Section header index associated with section-name string table.

elf.inc:63Group EI

ELF identification constants. offsets into the "e.ident" field

elf.inc:69Constant EI.CLASS

VAL INT EI.CLASS

File class (see ELFCLASS)

elf.inc:70Constant EI.DATA

VAL INT EI.DATA

Data ordering (see ELFDATA)

elf.inc:74Group ELFMAG

ELF header magic constants.

elf.inc:81Group ELFCLASS

ELF file class constants.

elf.inc:82Constant ELFCLASSNONE

VAL ELF32.UC ELFCLASSNONE

Invalid class.

elf.inc:83Constant ELFCLASS32

VAL ELF32.UC ELFCLASS32

32-bit objects.

elf.inc:84Constant ELFCLASS64

VAL ELF32.UC ELFCLASS64

64-bit objects.

elf.inc:86Group ELFDATA

ELF file data constants.

elf.inc:87Constant ELFDATANONE

VAL ELF32.UC ELFDATANONE

Invalid data encoding.

elf.inc:88Constant ELFDATA2LSB

VAL ELF32.UC ELFDATA2LSB

Little-endian encoding.

elf.inc:89Constant ELFDATA2MSB

VAL ELF32.UC ELFDATA2MSB

Big-endian encoding.

elf.inc:91Group ET

ELF file type constants.

elf.inc:92Constant ET.NONE

VAL ELF32.HALF ET.NONE

No file type.

elf.inc:93Constant ET.REL

VAL ELF32.HALF ET.REL

Relocatable file.

elf.inc:94Constant ET.EXEC

VAL ELF32.HALF ET.EXEC

Executable file.

elf.inc:95Constant ET.DYN

VAL ELF32.HALF ET.DYN

Shared object file.

elf.inc:96Constant ET.CORE

VAL ELF32.HALF ET.CORE

Core file.

elf.inc:97Constant ET.LOPROC

VAL ELF32.HALF ET.LOPROC

Processor specific.

elf.inc:98Constant ET.HIPROC

VAL ELF32.HALF ET.HIPROC

Processor specific.

elf.inc:100Group EM

ELF machine type constants.

elf.inc:101Constant EM.NONE

VAL ELF32.HALF EM.NONE

No machine.

elf.inc:102Constant EM.M32

VAL ELF32.HALF EM.M32

AT&T WE 32100.

elf.inc:103Constant EM.SPARC

VAL ELF32.HALF EM.SPARC

Sparc.

elf.inc:104Constant EM.386

VAL ELF32.HALF EM.386

Intel 80386.

elf.inc:105Constant EM.68K

VAL ELF32.HALF EM.68K

Motorola 68000.

elf.inc:106Constant EM.88K

VAL ELF32.HALF EM.88K

Motorola 88000.

elf.inc:107Constant EM.860

VAL ELF32.HALF EM.860

Intel 80860.

elf.inc:108Constant EM.MIPS

VAL ELF32.HALF EM.MIPS

MIPS R3000 (big-endian).

elf.inc:109Constant EM.MIPS.RS3.LE

VAL ELF32.HALF EM.MIPS.RS3.LE

MIPS R3000 (little-endian).

elf.inc:110Constant EM.MIPS.RS4.BE

VAL ELF32.HALF EM.MIPS.RS4.BE

MIPS R4000 (big-endian).

elf.inc:111Constant EM.PARISC

VAL ELF32.HALF EM.PARISC

HPPA.

elf.inc:112Constant EM.SPARC32PLUS

VAL ELF32.HALF EM.SPARC32PLUS

Sun's 'v8plus'.

elf.inc:113Constant EM.PPC

VAL ELF32.HALF EM.PPC

PowerPC.

elf.inc:114Constant EM.PPC64

VAL ELF32.HALF EM.PPC64

PowerPC-64.

elf.inc:115Constant EM.S390

VAL ELF32.HALF EM.S390

IBM S/390.

elf.inc:116Constant EM.SPU

VAL ELF32.HALF EM.SPU

CELL BE SPU.

elf.inc:117Constant EM.SH

VAL ELF32.HALF EM.SH

SuperH.

elf.inc:118Constant EM.SPARCV9

VAL ELF32.HALF EM.SPARCV9

Sparc v9 64-bit.

elf.inc:119Constant EM.H8.300

VAL ELF32.HALF EM.H8.300

Renesas H8/300/300H,H8S.

elf.inc:120Constant EM.IA.64

VAL ELF32.HALF EM.IA.64

HP/Intel IA-64.

elf.inc:121Constant EM.X86.64

VAL ELF32.HALF EM.X86.64

AMD x86-64.

elf.inc:122Constant EM.CRIS

VAL ELF32.HALF EM.CRIS

Axis Communications 32-bit embedded processor.

elf.inc:123Constant EM.V850

VAL ELF32.HALF EM.V850

NEC v850.

elf.inc:124Constant EM.M32R

VAL ELF32.HALF EM.M32R

Renesas M32R.

elf.inc:125Constant EM.MN10300

VAL ELF32.HALF EM.MN10300

Panasonic/MEI MN10300, AM33.

elf.inc:126Constant EM.BLACKFIN

VAL ELF32.HALF EM.BLACKFIN

ADI Blackfin processor.

elf.inc:127Constant EM.AVR32

VAL ELF32.HALF EM.AVR32

Atmel AVR32.

elf.inc:128Constant EM.FRV

VAL ELF32.HALF EM.FRV

Fujitsu FR-V.

elf.inc:131Constant EM.ALPHA

VAL ELF32.HALF EM.ALPHA

DEC Alpha.

elf.inc:132Constant EM.XS1

VAL ELF32.HALF EM.XS1

XMOS XS1.

elf.inc:134Group EV

ELF version constants.

elf.inc:135Constant EV.NONE

VAL ELF32.WORD EV.NONE

No version.

elf.inc:136Constant EV.CURRENT

VAL ELF32.WORD EV.CURRENT

Current version (basic at 1).

elf.inc:139Group SHN

Special section indices.

elf.inc:140Constant SHN.UNDEF

VAL INT SHN.UNDEF

Undefined/irrelevant section.

elf.inc:141Constant SHN.LORESERVE

VAL INT SHN.LORESERVE

Lower-bound of reserved indices.

elf.inc:142Constant SHN.LOPROC

VAL INT SHN.LOPROC

Processor specific lower-bound.

elf.inc:143Constant SHN.HIPROC

VAL INT SHN.HIPROC

Processor specific upper-bound.

elf.inc:144Constant SHN.ABS

VAL INT SHN.ABS

Absolute values for corresponding references.

elf.inc:145Constant SHN.COMMON

VAL INT SHN.COMMON

For common symbols.

elf.inc:146Constant SHN.HIRESERVE

VAL INT SHN.HIRESERVE

Upper-bound of reserved indices.

elf.inc:150Record ELF32.SHDR

DATA TYPE ELF32.SHDR

ELF section header type.

elf.inc:152Variable sh.name

ELF32.WORD

Index into section header string-table for section name.

elf.inc:153Variable sh.type

ELF32.WORD

Section type.

elf.inc:154Variable sh.flags

ELF32.WORD

Miscellaneous section flags.

elf.inc:155Variable sh.addr

ELF32.ADDR

Loaded memory address for section.

elf.inc:156Variable sh.offset

ELF32.OFF

Byte offset in file to first byte of the section data.

elf.inc:157Variable sh.size

ELF32.WORD

Section size in bytes.

elf.inc:159Variable sh.info

ELF32.WORD

Extra section information.

elf.inc:160Variable sh.addralign

ELF32.WORD

Section alignment constraints.

elf.inc:161Variable sh.entsize

ELF32.WORD

Entry size for certain sections (e.g. symbol table).

elf.inc:164Group SHT

ELF section types for "sh.type".

elf.inc:165Constant SHT.NULL

VAL ELF32.WORD SHT.NULL

Inactive section header (no section).

elf.inc:166Constant SHT.PROGBITS

VAL ELF32.WORD SHT.PROGBITS

Program bits (program interpretation).

elf.inc:167Constant SHT.SYMTAB

VAL ELF32.WORD SHT.SYMTAB

Full symbol table.

elf.inc:168Constant SHT.STRTAB

VAL ELF32.WORD SHT.STRTAB

String table.

elf.inc:169Constant SHT.RELA

VAL ELF32.WORD SHT.RELA

Relocation entries with explicit addends (ELF32.RELA).

elf.inc:170Constant SHT.HASH

VAL ELF32.WORD SHT.HASH

Symbol hash-table.

elf.inc:171Constant SHT.DYNAMIC

VAL ELF32.WORD SHT.DYNAMIC

Information for dynamic linking.

elf.inc:172Constant SHT.NOTE

VAL ELF32.WORD SHT.NOTE

File marking.

elf.inc:173Constant SHT.NOBITS

VAL ELF32.WORD SHT.NOBITS

Null program bits (empty SHT.PROGBITS).

elf.inc:174Constant SHT.REL

VAL ELF32.WORD SHT.REL

Relocation entries without explicit addends (ELF32.REL).

elf.inc:175Constant SHT.SHLIB

VAL ELF32.WORD SHT.SHLIB

Reserved but unspecified.

elf.inc:176Constant SHT.DYNSYM

VAL ELF32.WORD SHT.DYNSYM

Minimal symbol table.

elf.inc:177Constant SHT.LOPROC

VAL ELF32.WORD SHT.LOPROC

Lower-bound for processor-specific sections.

elf.inc:178Constant SHT.HIPROC

VAL ELF32.WORD SHT.HIPROC

Upper-bound for processor-specific sections.

elf.inc:179Constant SHT.LOUSER

VAL ELF32.WORD SHT.LOUSER

Lower-bound for user-specific sections.

elf.inc:180Constant SHT.HIUSER

VAL ELF32.WORD SHT.HIUSER

Upper-bound for user-specific sections.

elf.inc:186Group SHF

ELF section flags for "sh.flags".

elf.inc:187Constant SHF.WRITE

VAL ELF32.WORD SHF.WRITE

Section whose contents should be writable in execution.

elf.inc:188Constant SHF.ALLOC

VAL ELF32.WORD SHF.ALLOC

Section occupies memory during execution.

elf.inc:189Constant SHF.EXECINSTR

VAL ELF32.WORD SHF.EXECINSTR

Section contains executable machine instructions.

elf.inc:190Constant SHF.MASKPROC

VAL ELF32.WORD SHF.MASKPROC

Bits reserved for processor-specific semantics.

elf.inc:194Record ELF32.SYM

DATA TYPE ELF32.SYM

ELF symbol table entry.

elf.inc:196Variable st.name

ELF32.WORD

Index into string table (or nameless if zero).

elf.inc:197Variable st.value

ELF32.ADDR

Value of symbol.

elf.inc:198Variable st.size

ELF32.WORD

Size of symbol.

elf.inc:199Variable st.info

ELF32.UC

Info ((binding << 4) \/ type).

elf.inc:201Variable st.shndx

ELF32.HALF

Symbol's section header table index.

elf.inc:204Group STB

ELF bindings for 'st.info' high nibble.

elf.inc:205Constant STB.LOCAL

VAL ELF32.UC STB.LOCAL

Local symbol.

elf.inc:206Constant STB.GLOBAL

VAL ELF32.UC STB.GLOBAL

Global symbol.

elf.inc:207Constant STB.WEAK

VAL ELF32.UC STB.WEAK

Weak symbol.

elf.inc:208Constant STB.LOPROC

VAL ELF32.UC STB.LOPROC

Reserved ..

elf.inc:209Constant STB.HIPROC

VAL ELF32.UC STB.HIPROC

.. reserved.

elf.inc:212Group ETT

ELF types for 'st.info' low nibble:

elf.inc:213Constant STT.NOTYPE

VAL ELF32.UC STT.NOTYPE

Type not specified.

elf.inc:214Constant STT.OBJECT

VAL ELF32.UC STT.OBJECT

Data object.

elf.inc:215Constant STT.FUNC

VAL ELF32.UC STT.FUNC

Function or other code.

elf.inc:216Constant STT.SECTION

VAL ELF32.UC STT.SECTION

Symbol for section.

elf.inc:217Constant STT.FILE

VAL ELF32.UC STT.FILE

Source filename (convention).

elf.inc:218Constant STT.LOPROC

VAL ELF32.UC STT.LOPROC

Reserved ..

elf.inc:219Constant STT.HIPROC

VAL ELF32.UC STT.HIPROC

.. reserved.

elf.inc:225Record ELF32.REL

DATA TYPE ELF32.REL

ELF relocation record.

elf.inc:227Variable r.offset

ELF32.ADDR

Offset for relocation.

elf.inc:228Variable r.info

ELF32.WORD

Relocation info ((sym << 8) \/ type).

elf.inc:232Record ELF32.RELA

DATA TYPE ELF32.RELA

ELF relocation record with addend

elf.inc:234Variable r.offset

ELF32.ADDR

Offset for relocation.

elf.inc:235Variable r.info

ELF32.WORD

Relocation info ((sym << 8) \/ type).

elf.inc:236Variable r.addend

ELF32.SWORD

Constant to add at end.

elf.inc:239Group R.386

ELF relocation types (lower 8 bits of r.info). relocation types: (lower 8 bits of r.info), key: A=addend (comes from location when not explicitly ELF32.RELA), B=load-base-addr, G=offset into global offset table, GOT=address of global offset table, L=place of procedure linkage table entry, P=place of storage unit being relocated (where the relocation happens), S=value of symbol referenced in relocation entry.

elf.inc:249Constant R.386.NONE

VAL ELF32.WORD R.386.NONE

No relocation.

elf.inc:250Constant R.386.32

VAL ELF32.WORD R.386.32

S + A.

elf.inc:251Constant R.386.PC32

VAL ELF32.WORD R.386.PC32

(S + A) - P [relative].

elf.inc:252Constant R.386.GOT32

VAL ELF32.WORD R.386.GOT32

(G + A) - P [relative].

elf.inc:253Constant R.386.PLT32

VAL ELF32.WORD R.386.PLT32

(L + A) - P [relative].

elf.inc:254Constant R.386.COPY

VAL ELF32.WORD R.386.COPY

No relocation.

elf.inc:255Constant R.386.GLOB.DAT

VAL ELF32.WORD R.386.GLOB.DAT

S.

elf.inc:256Constant R.386.JMP.SLOT

VAL ELF32.WORD R.386.JMP.SLOT

S.

elf.inc:257Constant R.386.RELATIVE

VAL ELF32.WORD R.386.RELATIVE

B + A.

elf.inc:258Constant R.386.GOTOFF

VAL ELF32.WORD R.386.GOTOFF

(S + A) - GOT.

elf.inc:259Constant R.386.GOTPC

VAL ELF32.WORD R.386.GOTPC

(GOT + A) - P [relative].

elf.inc:261Constant R.386.RELOCATED

VAL ELF32.WORD R.386.RELOCATED

bit-set/not-set (RMoX specific).