29 lines
1.6 KiB
Markdown
29 lines
1.6 KiB
Markdown
# 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.
|