NAME
gelf_getsymshndx
,
gelf_update_symshndx
—
read and update symbol information
using extended section indices
LIBRARY
library “libelf”
SYNOPSIS
#include
<gelf.h>
GElf_Sym *
gelf_getsymshndx
(Elf_Data
*symdata, Elf_Data *xndxdata,
int ndx, GElf_Sym *sym,
Elf32_Word *xndxptr);
int
gelf_update_symshndx
(Elf_Data
*symdata, Elf_Data *xndxdata,
int ndx, GElf_Sym *sym,
Elf32_Word xndx);
DESCRIPTION
These functions are analogous to
gelf_getsym
()
and
gelf_update_sym
()
respectively, but are capable of handling symbol tables using extended
section numbering.
Argument symdata is an
Elf_Data descriptor associated with a section of type
SHT_SYMTAB
. Argument xndxdata
is an Elf_Data descriptor associated with a section of
type SHT_SYMTAB_SHNDX
. Argument
ndx is the index of the symbol table entry being
retrieved or updated. Argument sym is a pointer to a
class-independent GElf_Sym structure.
GElf_Sym structures are described in detail in
gelf(3).
Function
gelf_getsymshndx
()
retrieves symbol information at index ndx from the
data descriptor specified by argument symdata and
stores in class-independent form in argument sym. In
addition it retrieves the extended section index for the symbol from data
buffer xndxdata and stores it into the location
pointed to by argument xndxptr.
Function
gelf_update_symshndx
()
updates the underlying symbol table entry in data descriptor
symdata with the information in argument
sym. In addition it sets the extended section index in
data buffer xndxdata to the value of argument
xndx.
RETURN VALUES
Function gelf_getsymshndx
() returns the
value of argument sym if successful, or NULL in case
of an error.
Function gelf_update_symshndx
() returns a
non-zero value if successful, or zero in case of an error.
ERRORS
These functions may fail with the following errors:
- [
ELF_E_ARGUMENT
] - Arguments symdata, xndxdata, xndxptr or sym were NULL.
- [
ELF_E_ARGUMENT
] - Argument ndx was less than zero, or too large for either of descriptors symdata or xndxdata.
- [
ELF_E_ARGUMENT
] - Data descriptor symdata was not associated with a
section of type
SHT_SYMTAB
. - [
ELF_E_ARGUMENT
] - Data descriptor xndxdata was not associated with a
section of type
SHT_SYMTAB_SHNDX
. - [
ELF_E_ARGUMENT
] - Data descriptor symdata and xndxdata were associated with different ELF objects.
- [
ELF_E_VERSION
] - The Elf_Data descriptors denoted by arguments symdata and xndxdata are associated with an ELF object with an unsupported version.
SEE ALSO
elf(3), elf_getdata(3), elf_getscn(3), gelf(3), gelf_getsym(3), gelf_update_sym(3)