ELF32_GETPHDR(3ELF) ELF Library Functions ELF32_GETPHDR(3ELF)
NAME
elf32_getphdr, elf32_newphdr, elf64_getphdr, elf64_newphdr - retrieve
class-dependent program header table
SYNOPSIS
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);
DESCRIPTION
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.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Stable |
+--------------------+-----------------+
|MT-Level | MT-Safe |
+--------------------+-----------------+
SEE ALSO
elf(3ELF),
elf32_getehdr(3ELF),
elf_begin(3ELF),
elf_flagdata(3ELF),
libelf(3LIB),
attributes(7) July 11, 2001 ELF32_GETPHDR(3ELF)