GELF_GETSYMSHNDX(3) BSD Library Functions Manual GELF_GETSYMSHNDX(3)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 descrip-
tor 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.
SEE ALSOelf(3), elf_getdata(3), elf_getscn(3), gelf(3), gelf_getsym(3), gelf_update_sym(3)BSD November 5, 2006 BSD