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/header.h.md

54 lines
5.0 KiB
Markdown
Raw Normal View History

---
title: "header.h"
summary: "definitions needed to parse the ELF Header"
---
# `elf_target_architecture_E` - enum
Field in [header](https://nerdcult.net/projects/noxos/docs/codebase/drivers/elf/header.h/#elf_header_t---struct): **identity[4]**
# `elf_endianness_E` - enum
Field in [header](https://nerdcult.net/projects/noxos/docs/codebase/drivers/elf/header.h/#elf_header_t---struct): **identity[5]**
# `elf_sysabi_E` - enum
Field in [header](https://nerdcult.net/projects/noxos/docs/codebase/drivers/elf/header.h/#elf_header_t---struct): **identity[7]**
# `elf_object_type_E` - enum
Field in [header](https://nerdcult.net/projects/noxos/docs/codebase/drivers/elf/header.h/#elf_header_t---struct): **type**
# `elf_instruction_set_E` - enum
Field in [header](https://nerdcult.net/projects/noxos/docs/codebase/drivers/elf/header.h/#elf_header_t---struct): **isa**
# `elf_header_T` - struct
| Name | Type | Description |
|----------------------------|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|
| identity | uint8_t[16] | Information like the used endian and the SysABI is stored in here |
| type | uint16_t | The type of the elf file -> [elf_object_type_E](https://nerdcult.net/projects/noxos/docs/codebase/drivers/elf/header.h/#elf_object_type_e---enum) |
| isa | uint16_t | The used instruction set -> [elf_instruction_set_E](https://nerdcult.net/projects/noxos/docs/codebase/drivers/elf/header.h/#elf_instruction_set_e---enum) |
| version | uint32_t | ELF version |
| address_entry_point | uint64_t | The start point for program execution |
| offset_program_header | uint64_t | The position of the program header array in the file |
| offset_section_header | uint64_t | The position of the section header array in the file |
| flags | uint32_t | Architecture dependent, can be ignored |
| len_header | uint16_t | The size of this header |
| len_program_header_entry | uint16_t | The size of one program header |
| num_program_header_entries | uint16_t | The amount of program headers |
| len_section_header_entry | uint16_t | The size of one section header |
| num_section_header_entries | uint16_t | The amount of section headers |
| string_section_index | uint16_t | The section header index of the `.shstrtab` section |
# `g_elf_target_architecture_strings` - global variable
An array of strings matching [elf_target_architecture_E](https://nerdcult.net/projects/noxos/docs/codebase/drivers/elf/header.h/#elf_target_architecture_e---enum).
# `g_elf_endianness_strings` - global variable
An array of strings matching [elf_endianess_E](https://nerdcult.net/projects/noxos/docs/codebase/drivers/elf/header.h/#elf_endianess_e---enum).
# `g_elf_sysabi_strings` - global variable
An array of strings matching [elf_sysabi_E](https://nerdcult.net/projects/noxos/docs/codebase/drivers/elf/header.h/#elf_sysabi_e---enum).
# `g_elf_object_type_strings` - global variable
An array of strings matching [elf_object_type_E](https://nerdcult.net/projects/noxos/docs/codebase/drivers/elf/header.h/#elf_object_type_e---enum).
# `g_elf_instruction_set_strings` - global variable
An array of strings matching [elf_instruction_set_E](https://nerdcult.net/projects/noxos/docs/codebase/drivers/elf/header.h/#elf_instruction_set_e---enum).