NAME
elf32_newphdr,
elf64_newphdr,
gelf_newphdr —
allocate an ELF
program header table
LIBRARY
ELF Access Library (libelf, -lelf)
SYNOPSIS
#include <libelf.h>
Elf32_Phdr *
elf32_newphdr(
Elf
*elf,
size_t count);
Elf64_Phdr *
elf64_newphdr(
Elf
*elf,
size_t count);
#include <gelf.h>
void *
gelf_newphdr(
Elf
*elf,
size_t count);
DESCRIPTION
These functions allocate an ELF Program Header table for an ELF descriptor.
Elf32_Phdr and
Elf64_Phdr
descriptors are described further in
elf(5).
Functions
elf32_newphdr() and
elf64_newphdr() allocate a table of
count Elf32_Phdr and
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
Elf32_Phdr or
Elf64_Phdr with
count elements depending on the ELF class of ELF
descriptor
elf.
The functions set the
ELF_F_DIRTY
flag 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:
-
-
- [
ELF_E_ARGUMENT
]
- Argument elf was NULL.
-
-
- [
ELF_E_ARGUMENT
]
- Argument elf was not a descriptor for
an ELF object.
-
-
- [
ELF_E_CLASS
]
- ELF descriptor elf was of an
unrecognized class.
-
-
- [
ELF_E_RESOURCE
]
- An out of memory condition was detected.
-
-
- [
ELF_E_SEQUENCE
]
- An executable header was not allocated for ELF descriptor
elf before using these APIs.
SEE ALSO
elf(3),
elf32_getphdr(3),
elf32_newehdr(3),
elf64_getphdr(3),
elf64_newehdr(3),
elf_flagphdr(3),
elf_getphnum(3),
gelf(3),
gelf_getphdr(3),
gelf_newehdr(3),
elf(5)