FreeBSD 7.0 manual page repository

FreeBSD is a free computer operating system based on BSD UNIX originally. Many IT companies, like DeployIS is using it to provide an up-to-date, stable operating system.

elf32_newehdr, elf64_newehdr, gelf_newehdr - retrieve or allocate the

 

NAME

      elf32_newehdr, elf64_newehdr, gelf_newehdr - retrieve or allocate the
      object file header
 

LIBRARY

      library “libelf”
 

SYNOPSIS

      #include <libelf.h>
 
      Elf32_Ehdr *
      elf32_newehdr(Elf *elf);
 
      Elf64_Ehdr *
      elf64_newehdr(Elf *elf);
 
      #include <gelf.h>
 
      void *
      gelf_newehdr(Elf *elf, int elfclass);
 

DESCRIPTION

      These functions retrieve the ELF header from the ELF descriptor elf,
      allocating a new header if needed.  File data structures are translated
      to their in-memory representations as described in elf(3).
 
      Function elf32_newehdr() returns a pointer to a 32 bit Elf32_Ehdr struc‐
      ture.  Function elf64_newehdr() returns a pointer to a 64 bit Elf64_Ehdr
      structure.
 
      When argument elfclass has value ELFCLASS32, function gelf_newehdr()
      returns the value returned by elf32_newehdr(elf).  When argument elfclass
      has value ELFCLASS64 it returns the value returned by elf64_newehdr(elf).
 
      If a fresh header structure is allocated, the members of the structure
      are initialized as follows:
 
      e_ident[EI_MAG0..EI_MAG3]
              Identification bytes at offsets EI_MAG0, EI_MAG1, EI_MAG2 and
              EI_MAG3 are set to the ELF signature.
 
      e_ident[EI_CLASS]
              The identification byte at offset EI_CLASS is set to the ELF
              class associated with the function being called or to argument
              elfclass for function gelf_newehdr().
 
      e_ident[EI_DATA]
              The identification byte at offset EI_DATA is set to ELFDATANONE.
 
      e_ident[EI_VERSION]
              The identification byte at offset EI_VERSION is set to the ELF
              library’s operating version set by a prior call to
              elf_version(3).
 
      e_machine
              is set to EM_NONE.
 
      e_type  is set to ELF_K_NONE.
 
      e_version
              is set to the ELF library’s operating version set by a prior call
              to elf_version(3).
 
      Other members of the header are set to zero.  The application is respon‐
      sible for changing these values as needed before calling elf_update().
 
      If successful, these three functions set the ELF_F_DIRTY bit on ELF
      descriptor elf.
      These functions return a pointer to a translated header descriptor if
      successful, or NULL on failure.
 

ERRORS

      These functions can fail with the following errors:
 
      [ELF_E_ARGUMENT]  The argument elf was null.
 
      [ELF_E_ARGUMENT]  Argument elf was not a descriptor for an ELF object.
 
      [ELF_E_ARGUMENT]  Argument elfclass had an unsupported value.
 
      [ELF_E_ARGUMENT]  The class of the ELF descriptor elf did not match that
                        of the requested operation.
 
      [ELF_E_ARGUMENT]  For function gelf_newehdr(), the class of argument elf
                        was not ELFCLASSNONE and did not match the argument
                        elfclass.
 
      [ELF_E_CLASS]     The ELF class of descriptor elf did not match that of
                        the API function being called.
 
      [ELF_E_HEADER]    A malformed ELF header was detected.
 
      [ELF_E_RESOURCE]  An out of memory condition was detected during execu‐
                        tion.
 
      [ELF_E_SECTION]   The ELF descriptor in argument elf did not adhere to
                        the conventions used for extended numbering.
 
      [ELF_E_VERSION]   The ELF descriptor elf had an unsupported ELF version
                        number.
      elf(3), elf32_getehdr(3), elf64_getehdr(3), elf_flagdata(3),
      elf_getident(3), elf_update(3), elf_version(3), gelf(3), gelf_getehdr(3),
      elf(5)
 

Sections

Based on BSD UNIX
FreeBSD is an advanced operating system for x86 compatible (including Pentium and Athlon), amd64 compatible (including Opteron, Athlon64, and EM64T), UltraSPARC, IA-64, PC-98 and ARM architectures. It is derived from BSD, the version of UNIX developed at the University of California, Berkeley. It is developed and maintained by a large team of individuals. Additional platforms are in various stages of development.