The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

gelf_xslatetom (3)
  • >> gelf_xslatetom (3) ( Solaris man: Библиотечные вызовы )
  • 
    NAME
         gelf, gelf_checksum, gelf_fsize, gelf_getclass, gelf_getdyn,
         gelf_getehdr,   gelf_getphdr,   gelf_getrel,   gelf_getrela,
         gelf_getshdr,  gelf_getsym,  gelf_getsyminfo,  gelf_newehdr,
         gelf_newphdr,       gelf_update_dyn,       gelf_update_ehdr,
         gelf_update_phdr,     gelf_update_rel,     gelf_update_rela,
         gelf_update_shdr,    gelf_update_sym,   gelf_update_syminfo,
         gelf_xlatetof, gelf_xslatetom,  - generic  class-independent
         ELF interface
    
    SYNOPSIS
         cc [flag ...] file ... -lelf [library ...]
    
         #include <gelf.h>
    
    
         long gelf_checksum(Elf *elf);
    
         int gelf_getclass(Elf *elf);
    
         size_t  gelf_fsize(Elf  *elf,  Elf_Type  type,  size_t  cnt,
         unsigned ver);
    
         GElf_Ehdr *gelf_getehdr(Elf *elf, GElf_Ehdr *dst);
    
         int gelf_update_ehdr(Elf *elf, GElf_Ehdr *src);
    
         unsigned long gelf_newehdr(Elf *elf, int class);
    
         GElf_Phdr *gelf_getphdr(Elf *elf, int ndx, GElf_Phdr *src);
    
         int gelf_update_phdr(Elf *elf, int ndx, GElf_Phdr *src);
    
         unsigned long gelf_newphdr(Elf *elf, size_t phnum);
    
         GElf_Shdr *gelf_getshdr(Elf_Scn *scn, Elf_Data *dst);
    
         int gelf_update_shdr(Elf_Scn *scn, GElf_Shdr *src);
    
         Elf_Data  *gelf_xlatetof(Elf  *elf,  Elf_Data  *dst,   const
         Elf_Data *src, unsigned encode);
    
         Elf_Data  *gelf_xlatetom(Elf  *elf,  Elf_Data  *dst,   const
         Elf_Data *src, unsigned encode);
    
         GElf_Sym  *gelf_getsym(Elf_Data  *data,  int  ndx,  GElf_Sym
         *dst);
    
         int gelf_update_sym(Elf_Data *dest, int ndx, GElf_Sym *src);
    
         GElf_Dyn  *gelf_getdyn(Elf_Data  *src,  int  ndx,   GElf_Dyn
         *src);
         int gelf_update_dyn(Elf_Data *src, int ndx, GElf_Dyn *src);
    
         GElf_Rela *gelf_getrela(Elf_Data *src,  int  ndx,  GElf_Rela
         *dst);
    
         int  gelf_update_rela(Elf_Data  *dst,  int  ndx,   GElf_Rela
         *src);
    
         GElf_Rel  *gelf_getrel(Elf_Data  *src,  int  ndx,   GElf_Rel
         *dst);
    
         int gelf_update_rel(Elf_Data *dst, int ndx, GElf_Rel *src);
    
         GElf_Syminfo  *gelf_getsyminfo(Elf_Data   *src,   int   ndx,
         GElf_Syminfo *dst);
    
         int gelf_update_syminfo(Elf_Data *dst, int ndx, GElf_Syminfo
         *src);
    
         GElf_Move *gelf_getmove(Elf_Data *src,  int  ndx,  GElf_Move
         *dst);
    
         int  gelf_update_move(Elf_Data  *dst,  int  ndx,   GElf_Move
         *src);
    
    DESCRIPTION
         GElf is a generic, ELF class-independent API, for manipulat-
         ing  ELF object files. GElf provides a single, common inter-
         face for handling 32-bit and 64-bit ELF format object files.
         GElf  is a translation layer between the application and the
         class-dependent parts of the ELF library. Thus, the applica-
         tion  can use GElf, which in turn, will call the correspond-
         ing elf32_ or elf64_ functions on behalf of the application.
         The  data  structures  returned are all large enough to hold
         32-bit and 64-bit data.
    
         GElf provides a simple, class-independent layer of  indirec-
         tion over the class-dependent ELF32 and ELF64 APIs.  GElf is
         stateless, and may be used along side the  ELF32  and  ELF64
         API's.
    
         GElf always returns a copy of the underlying ELF32 or  ELF64
         structure,  and  therefore the programming practice of using
         the address of an ELF header as  the  base  offset  for  the
         ELF's  mapping  into  memory  should be avoided.  Also, data
         accessed by type-casting the Elf_Data  buffer  to  a  class-
         dependent type and treating it like an array, for example, a
         symbol table, will not work under  GElf,  and  the  gelf_get
         functions must be used instead.  See the EXAMPLE section.
    
         Programs which create or modify ELF files using libelf(3LIB)
         need   to   perform   an   extra   step   when  using  GElf.
         Modifications to GElf values must be explicitly  flushed  to
         the  underlying  ELF32 or ELF64 structures by way of the the
         gelf_update_ interfaces.  Use of elf_update  or  elf_flagelf
         and the like remains the same.
    
         The sizes of versioning structures remains the same  between
         ELF32  and  ELF64.  The GElf API only defines types for ver-
         sioning, rather than a functional API.   The  processing  of
         versioning  information  will  stay  the  same  in  the GElf
         environment as it was in the  class-dependent  ELF  environ-
         ment.
    
      List of Functions
         gelf_checksum()
               An     analog     to     elf32_checksum(3ELF)      and
               elf64_checksum(3ELF).
    
         gelf_getclass()
               Returns one of the constants ELFCLASS32, ELFCLASS64 or
               ELFCLASSNONE.
    
         gelf_fsize()
               An analog to elf32_fsize(3ELF) and elf64_fsize(3ELF).
    
         gelf_getehdr()
               An     analog     to      elf32_getehdr(3ELF)      and
               elf64_getehdr(3ELF).
    
         gelf_update_ehdr()
               Copies the contents of the GElf_Ehdr ELF header to the
               underlying Elf32_Ehdr or Elf64_Ehdr structure.
    
         gelf_newehdr()
               An     analog     to      elf32_newehdr(3ELF)      and
               elf64_newehdr(3ELF).
    
         gelf_getphdr()
               An       analog       toelf32_getphdr(3ELF)        and
               elf64_getphdr(3ELF).
    
         gelf_update_phdr()
               Copies of the contents of GElf_Phdr program header  to
               underlying the Elf32_Phdr or Elf64_Phdr structure.
    
         gelf_newphdr()
               An     analog     to      elf32_newphdr(3ELF)      and
               elf64_newphdr(3ELF).
    
         gelf_getshdr()
               An     analog     to      elf32_getshdr(3ELF)      and
               elf64_getshdr(3ELF).
    
         gelf_update_shdr()
               Copies of the contents of GElf_Shdr section header  to
               underlying the Elf32_Shdr or Elf64_Shdr structure.
    
         gelf_xlatetof()
               An     analog     to     elf32_xlatetof(3ELF)      and
               elf64_xlatetof(3ELF)
    
         gelf_xlatetom()
               An     analog     to     elf32_xlatetom(3ELF)      and
               elf64_xlatetom(3ELF)
    
         gelf_getsym()
               Retrieves the Elf32_Sym or Elf64_Sym information  from
               the symbol table at the given index.
    
         gelf_update_sym()
               Copies the GElf_Sym information back into the underly-
               ing  Elf32_Sym  or  Elf64_Sym  structure  at the given
               index.
    
         gelf_getdyn()
               Retrieves the Elf32_Dyn or Elf64_Dyn information  from
               the dynamic table at the given index.
    
         gelf_update_dyn()
               Copies the GElf_Dyn information back into the underly-
               ing  Elf32_Dyn  or  Elf64_Dyn  structure  at the given
               index.
    
         gelf_getrela()
               Retrieves the  Elf32_Rela  or  Elf64_Rela  information
               from the relocation table at the given index.
    
         gelf_update_rela()
               Copies the GElf_Rela information back into the  under-
               lying  Elf32_Rela or Elf64_Rela structure at the given
               index.
    
         gelf_getrel()
               Retrieves the Elf32_Rel or Elf64_Rel information  from
               the relocation table at the given index.
    
         gelf_update_rel()
               Copies the GElf_Rel information back into the underly-
               ing  Elf32_Rel  or  Elf64_Rel  structure  at the given
               index.
    
         gelf_getsyminfo()
               Retrieves the Elf32_Syminfo or Elf64_Syminfo  informa-
               tion from the relocation table at the given index.
    
         gelf_update_syminfo()
               Copies the  GElf_Syminfo  information  back  into  the
               underlying Elf32_Syminfo or Elf64_Syminfo structure at
               the given index.
    
         gelf_getmove()
               Retrieves the  Elf32_Move  or  Elf64_Move  information
               from the move table at the given index.
    
         gelf_update_move()
               Copies the GElf_Move information back into the  under-
               lying  Elf32_Move or Elf64_Move structure at the given
               index.
    
    RETURN VALUES
         Upon failure, all GElf functions return 0 and set elf_errno.
         See elf_errno(3ELF)
    
    EXAMPLES
         Example 1: Printing the ELF Symbol Table
    
         #include <stdio.h>
         #include <sys/types.h>
         #include <sys/stat.h>
         #include <fcntl.h>
         #include <libelf.h>
         #include <gelf.h>
    
         void
         main(int argc, char **argv)
         {
             Elf         *elf
             Elf_Scn     *scn = NULL;
             GElf_Shdr   shdr;
             Elf_Data    *data;
             int         fd, ii, count;
    
             elf_version(EV_CURRENT);
    
             fd = open(argv[1], O_RDONLY);
             elf = elf_begin(fd, ELF_C_READ, NULL);
    
             while ((scn = elf_nextscn(elf, scn)) != NULL) {
                 gelf_getshdr(scn, &shdr);
                 if (shdr.sh_type == SHT_SYMTAB) {
                     /* found a symbol table, go print it. */
                     break;
                 }
             }
    
             data        = elf_getdata(scn, NULL);
             count       = shdr.sh_size / shdr.sh_entsize;
             /* print the symbol names */
             for (ii=0; ii < count; ++ii) {
                 GElf_Sym sym;
                 gelf_getsym(data, ii, &sym);
                 printf("%s\n", elf_strptr(elf, shdr.sh_link, sym.st_name));
             }
             elf_end(elf);
             close(fd);
         }
    
    FILES
         /usr/lib/libelf.so.1
               Shared object.
    
         /usr/lib/sparcv9/libelf.so.1
               64-bit shared object.
    
         /usr/lib//libelf.a
               Archive library.
    
    
    
    ATTRIBUTES
         See attributes(5)  for descriptions of the following  attri-
         butes:
    
         ____________________________________________________________
        |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
        |_____________________________|_____________________________|
        | MT Level                    | Safe                        |
        |_____________________________|_____________________________|
    
    
    SEE ALSO
         elf(3ELF),     elf32_checksum(3ELF),      elf32_fsize(3ELF),
         elf32_getehdr(3ELF),                    elf32_newehdr(3ELF),
         elf32_getphdr(3ELF),                    elf32_newphdr(3ELF),
         elf32_getshdr(3ELF),                   elf32_xlatetof(3ELF),
         elf32_xlatetom(3ELF), elf_errno(3ELF), libelf(3LIB),  attri-
         butes(5)
    
    
    
    


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру