The OpenNET Project / Index page

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

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

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

elf_update (3)
  • elf_update (3) ( Solaris man: Библиотечные вызовы )
  • >> elf_update (3) ( FreeBSD man: Библиотечные вызовы )

  • BSD mandoc
     

    NAME

    elf_update
    
     - update an ELF descriptor
    
     
    

    LIBRARY

    Lb libelf
    
     
    

    SYNOPSIS

       #include <libelf.h>
    off_t elf_update (Elf *elf Elf_Cmd cmd);
     

    DESCRIPTION

    Function elf_update ();
    causes the library to recalculate the structure of an ELF object and optionally write out the image of the object to file.

    Argument elf is a descriptor to an ELF object. Argument cmd can take on the following values:

    ELF_C_NULL
    The library will recalculate structural information flagging modified structures with the ELF_F_DIRTY flag, but will not write back data to the underlying file image.
    ELF_C_WRITE
    The library will recalculate structural information and will also write the new image to the underlying file.

     

    File Layout

    If the ELF_F_LAYOUT flag has been set on the ELF descriptor, the application assumes full responsibility for the layout of the ELF object. If this bit is not set, the ELF library will compute the layout of the file from its associated section descriptors.

    It is the application's responsibility to manage the the following structure members in the ELF file:

    "Executable Header"
    The ELF executable header is described in elf(5). The following members of the ELF executable header are the application's responsibility:

    e_entry
    Set to the desired entry address for executables.
    e_flags
    Set to the desired processor specific flags.
    e_ident[EI_DATA]
    Must be set to one of ELFDATA2LSB or ELFDATA2MSB
    e_ident[EI_OSABI]
    Set to the OS ABI desired. For Fx executables, this field should be set to ELFOSABI_FREEBSD
    e_machine
    Set to the desired machine architecture, one of the EM_* values in In sys/elf_common.h .
    e_phoff
    If the application is managing the object's layout, it must set this field to the file offset of the ELF program header table.
    e_shoff
    If the application is managing the object's layout, it must set this field to the file offset of the ELF section header table.
    e_shstrndx
    Set to the index of the string table containing section names.
    e_type
    Set to the type of the ELF object, one of the ET_* values in In sys/elf_common.h .
    e_version
    Set to the desired version of the ELF object.

    "Program Header"
    All fields of the entries in the program header table are under application control.
    "Section Header"
    The ELF section header is described in elf(5). The following members of the ELF section header are the application's responsibility:

    sh_addr
    Set to the physical memory address where the section should reside.
    sh_addralign
    If the application is managing the file layout, it must set this field to the desired alignment for the section's contents. This value must be a power of two.
    sh_entsize
    Set to the size of each entry, for sections containing fixed size elements, or set to zero for sections without fixed size elements. For section contents of types known to the library, the application may leave this field as zero.
    sh_flags
    Set to the desired section flags.
    sh_info
    Set as described in elf(5).
    sh_link
    Set as described in elf(5).
    sh_name
    Set to the index of the section's name in the string table containing section names.
    sh_offset
    If the application is managing the file layout, it must set this field to the file offset of the section's contents.
    sh_size
    If the application is managing the file layout, it must set this field to the file size of the section's contents.
    sh_type
    Set to the type of the section.

    Gaps in the coverage of the file's contents will be set to the fill value specified by elf_fill3.

    If the application has requested full control over the file's layout by setting the ELF_F_LAYOUT flag on the ELF descriptor, it should ensure that there are no gaps in the coverage of the file's contents.

    All pointers to Vt Elf_Scn and Vt Elf_Data descriptors associated with descriptor elf should be considered as invalid after a call to elf_update (.);
     

    RETURN VALUES

    Function elf_update ();
    returns the total size of the file image if successful, or -1 if an error occurred.  

    ERRORS

    This function may fail with the following errors:

    Bq Er ELF_E_ARGUMENT
    Argument elf was null.
    Bq Er ELF_E_ARGUMENT
    Argument cmd was not recognized.
    Bq Er ELF_E_ARGUMENT
    The argument elf was not a descriptor for an ELF object.
    Bq Er ELF_E_CLASS
    The e_ident[EI_CLASS] field of the executable header of argument elf did not match the class of the file.
    Bq Er ELF_E_DATA
    An Vt Elf_Data descriptor contained in argument elf specified a type incompatible with its containing section.
    Bq Er ELF_E_HEADER
    The ELF header in argument elf requested a different byte order from the byte order already associated with the file.
    Bq Er ELF_E_IO
    An I/O error was encountered.
    Bq Er ELF_E_LAYOUT
    An Vt Elf_Data descriptor contained in argument elf specified an alignment incompatible with its containing section.
    Bq Er ELF_E_LAYOUT
    Argument elf contained section descriptors that overlapped in extent.
    Bq Er ELF_E_LAYOUT
    Argument elf contained section descriptors that were incorrectly aligned or were too small for their data.
    Bq Er ELF_E_LAYOUT
    The flag ELF_F_LAYOUT was set on the Elf descriptor and the section header table overlapped an extent in the object mapped by a section descriptor.
    Bq Er ELF_E_MODE
    An ELF_C_WRITE operation was requested with an ELF descriptor that was not opened for writing or updating.
    Bq Er ELF_E_SECTION
    Argument elf contained a section with an unrecognized type.
    Bq Er ELF_E_SECTION
    The section header at index SHN_UNDEF had an illegal section type.
    Bq Er ELF_E_SEQUENCE
    An ELF_C_WRITE operation was requested after a prior call to elf_cntl (elf ELF_C_FDDONE);
    disassociated the ELF descriptor elf from its underlying file.
    Bq Er ELF_E_VERSION
    Argument elf had an unsupported version or contained an Vt Elf_Data descriptor with an unsupported version.

     

    SEE ALSO

    elf(3), elf32_getehdr3, elf32_getphdr3, elf32_newehdr3, elf32_newphdr3, elf64_getehdr3, elf64_getphdr3, elf64_newehdr3, elf64_newphdr3, elf_cntl3, elf_fill3, elf_flagehdr3, elf_flagelf3, elf_getdata3, elf_getscn3, elf_newdata3, elf_newscn3, elf_rawdata3, gelf(3), gelf_newehdr3, gelf_newphdr3, elf(5)


     

    Index

    NAME
    LIBRARY
    SYNOPSIS
    DESCRIPTION
    File Layout
    RETURN VALUES
    ERRORS
    SEE ALSO


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




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

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