Zephyr API Documentation
3.7.0
A Scalable Open Source RTOS
|
Data Structures | |
struct | elf32_ehdr |
ELF Header(32-bit) More... | |
struct | elf64_ehdr |
ELF Header(64-bit) More... | |
struct | elf32_shdr |
Section Header(32-bit) More... | |
struct | elf64_shdr |
Section Header(64-bit) More... | |
struct | elf32_sym |
Symbol table entry(32-bit) More... | |
struct | elf64_sym |
Symbol table entry(64-bit) More... | |
struct | elf32_rel |
Relocation entry for 32-bit ELFs. More... | |
struct | elf32_rela |
Relocation entry for 32-bit ELFs with addend. More... | |
struct | elf64_rel |
Relocation entry for 64-bit ELFs. More... | |
struct | elf64_rela |
Relocation entry for 64-bit ELFs with addend. More... | |
Macros | |
#define | EI_NIDENT 16 |
ELF identifier block. | |
#define | ET_REL 1 |
Relocatable (unlinked) ELF. | |
#define | ET_EXEC 2 |
Executable (without PIC/PIE) ELF. | |
#define | ET_DYN 3 |
Dynamic (executable with PIC/PIE or shared lib) ELF. | |
#define | ET_CORE 4 |
Core Dump. | |
#define | SHT_NULL 0x0 |
ELF section types. | |
#define | SHT_PROGBITS 0x1 |
Program data. | |
#define | SHT_SYMTAB 0x2 |
Symbol table. | |
#define | SHT_STRTAB 0x3 |
String table. | |
#define | SHT_RELA 0x4 |
Relocation entries with addends. | |
#define | SHT_NOBITS 0x8 |
Program data with no file image. | |
#define | SHT_REL 0x9 |
Relocation entries without addends. | |
#define | SHT_DYNSYM 0xB |
Dynamic linking symbol table. | |
#define | SHF_WRITE 0x1 |
ELF section flags. | |
#define | SHF_ALLOC 0x2 |
Section is present in memory. | |
#define | SHF_EXECINSTR 0x4 |
Section contains executable instructions. | |
#define | SHN_UNDEF 0 |
ELF section numbers. | |
#define | SHN_LORESERVE 0xff00 |
Start of reserved section numbers. | |
#define | SHN_ABS 0xfff1 |
Special value for absolute symbols. | |
#define | SHN_COMMON 0xfff2 |
Common block. | |
#define | SHN_HIRESERVE 0xffff |
End of reserved section numbers. | |
#define | STT_NOTYPE 0 |
Symbol table entry types. | |
#define | STT_OBJECT 1 |
Data or object. | |
#define | STT_FUNC 2 |
Function. | |
#define | STT_SECTION 3 |
Section. | |
#define | STT_FILE 4 |
File name. | |
#define | STT_COMMON 5 |
Common block. | |
#define | STT_LOOS 10 |
Start of OS specific. | |
#define | STT_HIOS 12 |
End of OS specific. | |
#define | STT_LOPROC 13 |
Start of processor specific. | |
#define | STT_HIPROC 15 |
End of processor specific. | |
#define | STB_LOCAL 0 |
Symbol table entry bindings. | |
#define | STB_GLOBAL 1 |
Global symbol. | |
#define | STB_WEAK 2 |
Weak symbol. | |
#define | STB_LOOS 10 |
Start of OS specific. | |
#define | STB_HIOS 12 |
End of OS specific. | |
#define | STB_LOPROC 13 |
Start of processor specific. | |
#define | STB_HIPROC 15 |
End of processor specific. | |
#define | ELF32_ST_BIND(i) ((i) >> 4) |
Symbol binding from 32bit st_info. | |
#define | ELF32_ST_TYPE(i) ((i) & 0xf) |
Symbol type from 32bit st_info. | |
#define | ELF64_ST_BIND(i) ((i) >> 4) |
Symbol binding from 32bit st_info. | |
#define | ELF64_ST_TYPE(i) ((i) & 0xf) |
Symbol type from 32bit st_info. | |
#define | ELF32_R_SYM(i) ((i) >> 8) |
Relocation symbol index from r_info. | |
#define | ELF32_R_TYPE(i) ((i) & 0xff) |
Relocation type from r_info. | |
#define | ELF64_R_SYM(i) ((i) >> 32) |
Relocation symbol from r_info. | |
#define | ELF64_R_TYPE(i) ((i) & 0xffffffff) |
Relocation type from r_info. | |
#define | ELF_R_SYM ELF64_R_SYM |
Machine sized macro alias for obtaining a relocation symbol. | |
#define | ELF_R_TYPE ELF64_R_TYPE |
Machine sized macro alias for obtaining a relocation type. | |
#define | ELF_ST_BIND ELF64_ST_BIND |
Machine sized macro alias for obtaining a symbol bind. | |
#define | ELF_ST_TYPE ELF64_ST_TYPE |
Machine sized macro alias for obtaining a symbol type. | |
Typedefs | |
typedef uint32_t | elf32_addr |
Unsigned program address. | |
typedef uint16_t | elf32_half |
Unsigned medium integer. | |
typedef uint32_t | elf32_off |
Unsigned file offset. | |
typedef int32_t | elf32_sword |
Signed integer. | |
typedef uint32_t | elf32_word |
Unsigned integer. | |
typedef uint64_t | elf64_addr |
Unsigned program address. | |
typedef uint16_t | elf64_half |
Unsigned medium integer. | |
typedef uint64_t | elf64_off |
Unsigned file offset. | |
typedef int32_t | elf64_sword |
Signed integer. | |
typedef uint32_t | elf64_word |
Unsigned integer. | |
typedef int64_t | elf64_sxword |
Signed long integer. | |
typedef uint64_t | elf64_xword |
Unsigned long integer. | |
typedef struct elf64_ehdr | elf_ehdr_t |
Relocation names (should be moved to arch-specific files) | |
typedef struct elf64_shdr | elf_shdr_t |
Machine sized section header structure. | |
typedef struct elf64_phdr | elf_phdr_t |
Machine sized program header structure. | |
typedef elf64_addr | elf_addr |
Machine sized program address. | |
typedef elf64_half | elf_half |
Machine sized small integer. | |
typedef elf64_xword | elf_word |
Machine sized integer. | |
typedef struct elf64_rel | elf_rel_t |
Machine sized relocation struct. | |
typedef struct elf64_rela | elf_rela_t |
Machine sized relocation struct with addend. | |
typedef struct elf64_sym | elf_sym_t |
Machine sized symbol struct. | |
#define EI_NIDENT 16 |
#include <zephyr/llext/elf.h>
ELF identifier block.
4 byte magic (.ELF) 1 byte class (Invalid, 32 bit, 64 bit) 1 byte endianness (Invalid, LSB, MSB) 1 byte version (1) 1 byte OS ABI (0 None, 1 HP-UX, 2 NetBSD, 3 Linux) 1 byte ABI (0) 7 bytes padding
#define ELF32_R_SYM | ( | i | ) | ((i) >> 8) |
#define ELF32_R_TYPE | ( | i | ) | ((i) & 0xff) |
#define ELF32_ST_BIND | ( | i | ) | ((i) >> 4) |
#define ELF32_ST_TYPE | ( | i | ) | ((i) & 0xf) |
#define ELF64_R_SYM | ( | i | ) | ((i) >> 32) |
#define ELF64_R_TYPE | ( | i | ) | ((i) & 0xffffffff) |
#define ELF64_ST_BIND | ( | i | ) | ((i) >> 4) |
#define ELF64_ST_TYPE | ( | i | ) | ((i) & 0xf) |
#define ELF_R_SYM ELF64_R_SYM |
#include <zephyr/llext/elf.h>
Machine sized macro alias for obtaining a relocation symbol.
#define ELF_R_TYPE ELF64_R_TYPE |
#include <zephyr/llext/elf.h>
Machine sized macro alias for obtaining a relocation type.
#define ELF_ST_BIND ELF64_ST_BIND |
#include <zephyr/llext/elf.h>
Machine sized macro alias for obtaining a symbol bind.
#define ELF_ST_TYPE ELF64_ST_TYPE |
#include <zephyr/llext/elf.h>
Machine sized macro alias for obtaining a symbol type.
#define ET_CORE 4 |
#include <zephyr/llext/elf.h>
Core Dump.
#define ET_DYN 3 |
#include <zephyr/llext/elf.h>
Dynamic (executable with PIC/PIE or shared lib) ELF.
#define ET_EXEC 2 |
#include <zephyr/llext/elf.h>
Executable (without PIC/PIE) ELF.
#define ET_REL 1 |
#include <zephyr/llext/elf.h>
Relocatable (unlinked) ELF.
#define SHF_ALLOC 0x2 |
#include <zephyr/llext/elf.h>
Section is present in memory.
#define SHF_EXECINSTR 0x4 |
#include <zephyr/llext/elf.h>
Section contains executable instructions.
#define SHF_WRITE 0x1 |
#define SHN_ABS 0xfff1 |
#include <zephyr/llext/elf.h>
Special value for absolute symbols.
#define SHN_COMMON 0xfff2 |
#include <zephyr/llext/elf.h>
Common block.
#define SHN_HIRESERVE 0xffff |
#include <zephyr/llext/elf.h>
End of reserved section numbers.
#define SHN_LORESERVE 0xff00 |
#include <zephyr/llext/elf.h>
Start of reserved section numbers.
#define SHN_UNDEF 0 |
#define SHT_DYNSYM 0xB |
#include <zephyr/llext/elf.h>
Dynamic linking symbol table.
#define SHT_NOBITS 0x8 |
#include <zephyr/llext/elf.h>
Program data with no file image.
#define SHT_NULL 0x0 |
#define SHT_PROGBITS 0x1 |
#include <zephyr/llext/elf.h>
Program data.
#define SHT_REL 0x9 |
#include <zephyr/llext/elf.h>
Relocation entries without addends.
#define SHT_RELA 0x4 |
#include <zephyr/llext/elf.h>
Relocation entries with addends.
#define SHT_STRTAB 0x3 |
#include <zephyr/llext/elf.h>
String table.
#define SHT_SYMTAB 0x2 |
#include <zephyr/llext/elf.h>
Symbol table.
#define STB_GLOBAL 1 |
#include <zephyr/llext/elf.h>
Global symbol.
#define STB_HIOS 12 |
#include <zephyr/llext/elf.h>
End of OS specific.
#define STB_HIPROC 15 |
#include <zephyr/llext/elf.h>
End of processor specific.
#define STB_LOCAL 0 |
#define STB_LOOS 10 |
#include <zephyr/llext/elf.h>
Start of OS specific.
#define STB_LOPROC 13 |
#include <zephyr/llext/elf.h>
Start of processor specific.
#define STB_WEAK 2 |
#include <zephyr/llext/elf.h>
Weak symbol.
#define STT_COMMON 5 |
#include <zephyr/llext/elf.h>
Common block.
#define STT_FILE 4 |
#include <zephyr/llext/elf.h>
File name.
#define STT_FUNC 2 |
#include <zephyr/llext/elf.h>
Function.
#define STT_HIOS 12 |
#include <zephyr/llext/elf.h>
End of OS specific.
#define STT_HIPROC 15 |
#include <zephyr/llext/elf.h>
End of processor specific.
#define STT_LOOS 10 |
#include <zephyr/llext/elf.h>
Start of OS specific.
#define STT_LOPROC 13 |
#include <zephyr/llext/elf.h>
Start of processor specific.
#define STT_NOTYPE 0 |
#define STT_OBJECT 1 |
#include <zephyr/llext/elf.h>
Data or object.
#define STT_SECTION 3 |
#include <zephyr/llext/elf.h>
Section.
typedef uint32_t elf32_addr |
#include <zephyr/llext/elf.h>
Unsigned program address.
typedef uint16_t elf32_half |
#include <zephyr/llext/elf.h>
Unsigned medium integer.
#include <zephyr/llext/elf.h>
Unsigned file offset.
typedef int32_t elf32_sword |
#include <zephyr/llext/elf.h>
Signed integer.
typedef uint32_t elf32_word |
#include <zephyr/llext/elf.h>
Unsigned integer.
typedef uint64_t elf64_addr |
#include <zephyr/llext/elf.h>
Unsigned program address.
typedef uint16_t elf64_half |
#include <zephyr/llext/elf.h>
Unsigned medium integer.
#include <zephyr/llext/elf.h>
Unsigned file offset.
typedef int32_t elf64_sword |
#include <zephyr/llext/elf.h>
Signed integer.
typedef int64_t elf64_sxword |
#include <zephyr/llext/elf.h>
Signed long integer.
typedef uint32_t elf64_word |
#include <zephyr/llext/elf.h>
Unsigned integer.
typedef uint64_t elf64_xword |
#include <zephyr/llext/elf.h>
Unsigned long integer.
typedef elf64_addr elf_addr |
#include <zephyr/llext/elf.h>
Machine sized program address.
typedef struct elf64_ehdr elf_ehdr_t |
#include <zephyr/llext/elf.h>
Relocation names (should be moved to arch-specific files)
Dynamic features currently not used by LLEXT Machine sized elf header structure
typedef elf64_half elf_half |
#include <zephyr/llext/elf.h>
Machine sized small integer.
typedef struct elf64_phdr elf_phdr_t |
#include <zephyr/llext/elf.h>
Machine sized program header structure.
#include <zephyr/llext/elf.h>
Machine sized relocation struct.
typedef struct elf64_rela elf_rela_t |
#include <zephyr/llext/elf.h>
Machine sized relocation struct with addend.
typedef struct elf64_shdr elf_shdr_t |
#include <zephyr/llext/elf.h>
Machine sized section header structure.
#include <zephyr/llext/elf.h>
Machine sized symbol struct.
typedef elf64_xword elf_word |
#include <zephyr/llext/elf.h>
Machine sized integer.