gelf_getsymshndxgelf_update_symshndx
- read and update symbol information using extended section indices
LIBRARY
Lb libelf
SYNOPSIS
#include <gelf.h> GElf_Sym *
Fo gelf_getsymshndx
Fa Elf_Data *symdata
Fa Elf_Data *xndxdata
Fa int ndx
Fa GElf_Sym *sym
Fa Elf32_Word *xndxptr
Fc Ft int
Fo gelf_update_symshndx
Fa Elf_Data *symdata
Fa Elf_Data *xndxdata
Fa int ndx
Fa GElf_Sym *sym
Fa Elf32_Word xndx
Fc
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
Vt Elf_Data
descriptor associated with a section of type
SHT_SYMTAB
Argument
xndxdata
is an
Vt 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
Vt GElf_Sym
structure.
Vt 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:
Bq Er ELF_E_ARGUMENT
Arguments
symdataxndxdataxndxptr
or
sym
were NULL.
Bq Er ELF_E_ARGUMENT
Argument
ndx
was less than zero, or too large for either of descriptors
symdata
or
xndxdata
Bq Er ELF_E_ARGUMENT
Data descriptor
symdata
was not associated with a section of type
SHT_SYMTAB
Bq Er ELF_E_ARGUMENT
Data descriptor
xndxdata
was not associated with a section of type
SHT_SYMTAB_SHNDX
Bq Er ELF_E_ARGUMENT
Data descriptor
symdata
and
xndxdata
were associated with different ELF objects.