FreeBSD manual
download PDF document: gelf_getsymshndx.3.pdf
GELF_GETSYMSHNDX(3) FreeBSD Library Functions Manual GELF_GETSYMSHNDX(3)
NAME
gelf_getsymshndx, gelf_update_symshndx - read and update symbol
information using extended section indices
LIBRARY
ELF Access Library (libelf, -lelf)
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
[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)
FreeBSD 14.0-RELEASE-p11 April 22, 2019 FreeBSD 14.0-RELEASE-p11