gelf_update_ehdr
,
gelf_update_phdr
,
gelf_update_shdr
— update
underlying ELF data structures
ELF Access Library (libelf, -lelf)
#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);
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.
These functions return a non-zero integer on success, or zero in
case of an error.
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.