documentation/kernel/drivers/elf/segment.h.md

1.6 KiB

segment.h

Definitions needed to parse the elf program/segment headers.

elf_segment_type_E - enum

  • Null - Unused segment
  • Load - Segment that should be included into mappings
  • Dynamic - Segments of this type contain dynamic linking information
  • Interpreter - This holds a path to an interpreter
  • Note - These segments hold notes by the compiler / toolchain
  • Program Header Table - This points to the table that is holding the segment headers
  • TLS - This holds a Thread Local Storage template

elf_segment_T - struct

Name Type Description
type uint32_t The segments type -> elf_segment_type_E
flags uint32_t The segments flags (Read / Write / Execute)
offset uint64_t The segments position in the elf file
address_virtual uint64_t Where the segment should be mapped in the virtual address space
address_physical uint64_t Not used in the System V ABI
length_file uint64_t The segments size in the file
length_memory uint64_t The size of the area that should be mapped for the segment
align uint64_t The segments alignment (has to be a power of 2)

g_elf_segment_type_strings - global variable

An array of strings matching elf_segment_type_E.