NAME
gelf_update_ehdr,
gelf_update_phdr,
gelf_update_shdr —
update underlying
ELF data structures
LIBRARY
ELF Access Library (libelf, -lelf)
SYNOPSIS
#include <gelf.h>
int
gelf_update_ehdr(
Elf
*elf,
GElf_Ehdr
*ehdr);
int
gelf_update_phdr(
Elf
*elf,
int ndx,
GElf_Phdr *phdr);
int
gelf_update_shdr(
Elf_Scn
*scn,
GElf_Shdr
*shdr);
DESCRIPTION
These functions are used to update ELF data structures on the underlying ELF
descriptor. Class-dependent data structures in the underlying ELF descriptor
are updated using the data in the class-independent GElf descriptors and the
underlying ELF data structures are marked “dirty”. The conversion
process signals an error if the values being copied to the target ELF data
structure would exceed representation limits. GElf descriptors are described
in
gelf(3).
Function
gelf_update_ehdr() updates the ELF Executable Header
with the values in the class-independent executable header
ehdr.
Function
gelf_update_phdr() updates the ELF Program Header
structure at index
ndx with the values in the
class-independent program header
phdr.
Function
gelf_update_shdr() updates the ELF Section Header
structure associated with section descriptor
scn with
the values in argument
shdr.
RETURN VALUES
These functions return a non-zero integer on success, or zero in case of an
error.
ERRORS
These functions may fail with the following errors:
-
-
- [
ELF_E_ARGUMENT
]
- Arguments elf,
ehdr, phdr,
scn, or shdr were NULL.
-
-
- [
ELF_E_ARGUMENT
]
- Argument elf was not a descriptor for
an ELF object.
-
-
- [
ELF_E_ARGUMENT
]
- Argument elf had an unsupported ELF
class.
-
-
- [
ELF_E_ARGUMENT
]
- Argument ndx exceeded the number of
entries in the program header table.
-
-
- [
ELF_E_ARGUMENT
]
- Section descriptor scn was not
associated with an ELF descriptor.
-
-
- [
ELF_E_MODE
]
- ELF descriptor elf was not opened for
writing or updating.
-
-
- [
ELF_E_RESOURCE
]
- An out of memory condition was detected.
SEE ALSO
elf(3),
elf_flagelf(3),
elf_flagphdr(3),
elf_flagshdr(3),
gelf(3),
gelf_getehdr(3),
gelf_getphdr(3),
gelf_getshdr(3)