This repository has been archived on 2023-09-28. You can view files and clone it, but cannot push or open issues or pull requests.
homepage/content/projects/noxos/docs/codebase/drivers/elf/section.h.md

36 lines
2.9 KiB
Markdown
Raw Normal View History

---
title: "section.h"
summary: "definitions needed to parse the elf section headers"
---
# `elf_section_type_E` - enum
- **Null** - These sections can be ignored
- **Program Data** - These link to segments, if I remember right
- **Symbol Table** - Here are all the executables' symbols stored
- **String Table** - Here are all strings stored
- **RelocationA** - Contains relocation information
- **Hash** - Symbol Table hash table
- **Dynamic Link** - This provides information for the dynamic linker
- **Note** - notes that were created by the compiler / toolchain
- **Nobits** - Nulled data like `.bss`
# `elf_section_T` - struct
| Name | Type | Description |
|-----------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------|
| name_offset | uint32_t | The offset of the sections name in `.shstrtab` |
| type | uint32_t | The type of the section -> [elf_section_type_E](https://nerdcult.net/projects/noxos/docs/codebase/drivers/elf/section.h/#elf_section_type_e---enum) |
| flags | uint64_t | Sections attribute flags |
| virtual_address | uint64_t | The address where the section should be mapped to (if it's not 0) |
| offset | uint64_t | The sections offset in the file |
| length | uint64_t | The size of the section |
| link | uint32_t | Type specific link to another section |
| info | uint32_t | Type specific information |
| alignment | uint64_t | If the section is aligned, this value specifies the alignment |
| entry_size | uint64_t | The size of the sections entries |
# `g_elf_section_type_strings` - global variable
An array of strings matching [elf_section_type_E](https://nerdcult.net/projects/noxos/docs/codebase/drivers/elf/section.h/#elf_section_type_e---enum).