ELF32_GETPHDR(3ELF) | ELF Library Functions | ELF32_GETPHDR(3ELF) |
elf32_getphdr, elf32_newphdr, elf64_getphdr, elf64_newphdr - retrieve class-dependent program header table
cc [ flag ... ] file... -lelf [ library ... ] #include <libelf.h> Elf32_Phdr *elf32_getphdr(Elf *elf);
Elf32_Phdr *elf32_newphdr(Elf *elf, size_t count);
Elf64_Phdr *elf64_getphdr(Elf *elf);
Elf64_Phdr *elf64_newphdr(Elf *elf, size_t count);
For a 32-bit class file, elf32_getphdr() returns a pointer to the program execution header table, if one is available for the ELF descriptor elf.
elf32_newphdr() allocates a new table with count entries, regardless of whether one existed previously, and sets the ELF_F_DIRTY bit for the table. See elf_flagdata(3ELF). Specifying a zero count deletes an existing table. Note this behavior differs from that of elf32_newehdr() allowing a program to replace or delete the program header table, changing its size if necessary. See elf32_getehdr(3ELF).
If no program header table exists, the file is not a 32-bit class file, an error occurs, or elf is NULL, both functions return a null pointer. Additionally, elf32_newphdr() returns a null pointer if count is 0.
The table is an array of Elf32_Phdr structures, each of which includes the following members:
Elf32_Word p_type; Elf32_Off p_offset; Elf32_Addr p_vaddr; Elf32_Addr p_paddr; Elf32_Word p_filesz; Elf32_Word p_memsz; Elf32_Word p_flags; Elf32_Word p_align;
The Elf64_Phdr structures include the following members:
Elf64_Word p_type; Elf64_Word p_flags; Elf64_Off p_offset; Elf64_Addr p_vaddr; Elf64_Addr p_paddr; Elf64_Xword p_filesz; Elf64_Xword p_memsz; Elf64_Xword p_align;
For the 64−bit class, replace 32 with 64 as appropriate.
The ELF header's e_phnum member tells how many entries the program header table has. See elf32_getehdr(3ELF). A program may inspect this value to determine the size of an existing table; elf32_newphdr() automatically sets the member's value to count. If the program is building a new file, it is responsible for creating the file's ELF header before creating the program header table.
See attributes(7) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Interface Stability | Stable |
MT-Level | MT-Safe |
elf(3ELF), elf32_getehdr(3ELF), elf_begin(3ELF), elf_flagdata(3ELF), libelf(3LIB), attributes(7)
July 11, 2001 | OmniOS |