These functions allocate an ELF Program Header table
for an ELF descriptor.
Vt Elf32_Phdr
and
Vt Elf64_Phdr
descriptors are described further in
elf(5).
Functions
elf32_newphdr ();
and
elf64_newphdr ();
allocate a table of
count
Vt Elf32_Phdr
and
Vt Elf64_Phdr
descriptors respectively,
discarding any existing program header table
already present in the ELF descriptor
elf
A value of zero for argument
count
may be used to delete an existing program header table
from an ELF descriptor.
Function
gelf_newphdr ();
will return a table of
Vt Elf32_Phdr
or
Vt Elf64_Phdr
with
count
elements depending on the ELF class of ELF descriptor
elf
The functions set the
e_phnum
field of the executable header for ELF descriptor
elf
to
count
and also set the
ELF_F_DIRTY
bit on the program header table.
All members of the returned array of Phdr structures
will be initialized to zero.
After a successful call to these functions, the pointer returned
by a prior call to
elf32_getphdr ();
or
elf64_getphdr ();
on the same descriptor
elf
will no longer be valid.
RETURN VALUES
The functions a valid pointer if successful, or NULL in case an error
was encountered.
ERRORS
These functions may fail with the following errors:
Bq Er ELF_E_ARGUMENT
Argument
elf
was NULL.
Bq Er ELF_E_ARGUMENT
Argument
elf
was not a descriptor for an ELF object.
Bq Er ELF_E_CLASS
ELF descriptor
elf
was of an unrecognized class.
Bq Er ELF_E_RESOURCE
An out of memory condition was detected.
Bq Er ELF_E_SEQUENCE
An executable header was not allocated for ELF descriptor
elf
before using these APIs.