Skip site navigation (1)Skip section navigation (2)

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
GELF(3)                FreeBSD Library Functions Manual                GELF(3)

NAME
     GElf - class-independent API for ELF manipulation

LIBRARY
     ELF Access Library (libelf, -lelf)

SYNOPSIS
     #include <gelf.h>

DESCRIPTION
     This manual page describes a class independent API for manipulating ELF
     objects.  This API allows an application to operate on ELF descriptors
     without needing to the know the ELF class of the descriptor.

     The GElf API may be used alongside the ELF API without restriction.

   GElf Data Structures
     The GElf API defines the following class-independent data structures:

     GElf_Addr    A representation of ELF addresses.

     GElf_Dyn     A class-independent representation of ELF .dynamic section
                  entries.

     GElf_Ehdr    A class-independent representation of an ELF Executable
                  Header.

     GElf_Half    An unsigned 16 bit quantity.

     GElf_Off     A class-independent representation of a ELF offset.

     GElf_Phdr    A class-independent representation of an ELF Program Header
                  Table entry.

     GElf_Rel     A class-independent representation of an ELF relocation
                  entry.

     GElf_Rela    A class-independent representation of an ELF relocation
                  entry with addend.

     GElf_Shdr    A class-independent representation of an ELF Section Header
                  Table entry.

     GElf_Sword   A signed 32 bit quantity.

     GElf_Sxword  A signed 64 bit quantity.

     GElf_Sym     A class-independent representation of an ELF symbol table
                  entry.

     GElf_Word    An unsigned 32 bit quantity.

     GElf_Xword   An unsigned 64 bit quantity.

     These data structures are sized to be compatible with the corresponding
     64 bit ELF structures, and have the same internal structure as their 64
     bit class-dependent counterparts.  Class-dependent ELF structures are
     described in elf(5).

   GElf Programming Model
     GElf functions always return a copy of the underlying (class-dependent)
     ELF data structure.  The programming model with GElf is as follows:

     1.   An application will retrieve data from an ELF descriptor using a
          gelf_get_*() function.  This will copy out data into a private
          GElf_* data structure.

     2.   The application will work with its private copy of the GElf
          structure.

     3.   Once done, the application copies the new values back to the
          underlying ELF data structure using the gelf_update_*() functions.

     4.   The application will then use the elf_flag*() APIs to indicate to
          the ELF library that an ELF data structure is dirty.

     When updating an underlying 32 bit ELF data structure, the GElf routines
     will signal an error if a GElf value is out of range for the underlying
     ELF data type.

   Namespace use
     The GElf interface uses the following symbols:

     GElf_*   Class-independent data types.

     gelf_*   For functions defined in the API set.

   GElf Programming APIs
     This section provides an overview of the GElf programming APIs.  Further
     information is provided in the manual page of each function listed here.

     Allocating ELF Data Structures
                                      gelf_newehdr()    Allocate a new ELF
                                                        Executable Header.
                                      gelf_newphdr()    Allocate a new ELF
                                                        Program Header Table.

     Data Translation
                                      gelf_xlatetof()   Translate the native
                                                        representation of an
                                                        ELF data structure to
                                                        its file
                                                        representation.
                                      gelf_xlatetom()   Translate from the
                                                        file representation of
                                                        an ELF data structure
                                                        to a native
                                                        representation.

     Retrieving ELF Data
                                      gelf_getdyn()     Retrieve an ELF
                                                        .dynamic table entry.
                                      gelf_getehdr()    Retrieve an ELF
                                                        Executable Header from
                                                        the underlying ELF
                                                        descriptor.
                                      gelf_getphdr()    Retrieve an ELF
                                                        Program Header Table
                                                        entry from the
                                                        underlying ELF
                                                        descriptor.
                                      gelf_getrel()     Retrieve an ELF
                                                        relocation entry.
                                      gelf_getrela()    Retrieve an ELF
                                                        relocation entry with
                                                        addend.
                                      gelf_getshdr()    Retrieve an ELF
                                                        Section Header Table
                                                        entry from the
                                                        underlying ELF
                                                        descriptor.
                                      gelf_getsym()     Retrieve an ELF symbol
                                                        table entry.

     Queries
                                      gelf_checksum()   Retrieves the ELF
                                                        checksum for an ELF
                                                        descriptor.
                                      gelf_fsize()      Retrieves the size of
                                                        the file
                                                        representation of an
                                                        ELF type.
                                      gelf_getclass()   Retrieves the ELF
                                                        class of an ELF
                                                        descriptor.

     Updating ELF Data
                                      gelf_update_dyn()     Copy back an ELF
                                                            .dynamic Table
                                                            entry.
                                      gelf_update_phdr()    Copy back an ELF
                                                            Program Header
                                                            Table entry.
                                      gelf_update_rel()     Copy back an ELF
                                                            relocation entry.
                                      gelf_update_rela()    Copy back an ELF
                                                            relocation with
                                                            addend entry.
                                      gelf_update_shdr()    Copy back an ELF
                                                            Section Header
                                                            Table entry.
                                      gelf_update_sym()     Copy back an ELF
                                                            symbol table
                                                            entry.

SEE ALSO
     elf(3), elf(5)

HISTORY
     The GELF(3) API first appeared in System V Release 4.  This
     implementation of the API first appeared in FreeBSD 7.0.

AUTHORS
     The GElf API was implemented by Joseph Koshy <jkoshy@FreeBSD.org>.

FreeBSD 11.0-PRERELEASE        September 1, 2006       FreeBSD 11.0-PRERELEASE

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | SEE ALSO | HISTORY | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=gelf&sektion=3&manpath=FreeBSD+9.3-RELEASE>

home | help