👤
Home Man
Search
Today's Posts
Register

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:
Select Section of Man Page:
Select Man Page Repository:

NetBSD 6.1.5 - man page for elf_update (netbsd section 3)

ELF_UPDATE(3)			   BSD Library Functions Manual 		    ELF_UPDATE(3)

NAME
     elf_update -- update an ELF descriptor

LIBRARY
     library ``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 val-
     ues:

     ELF_C_NULL   The library will recalculate structural information flagging modified struc-
		  tures 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 flag 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 FreeBSD executables, this field
				should be set to ELFOSABI_FREEBSD.
	     e_machine		Set to the desired machine architecture, one of the EM_* values
				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
				<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 ele-
			   ments, or set to zero for sections without fixed size elements.  If
			   the application is not managing file layout, it may leave this field
			   as zero for those sections whose types known to the library.
	     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_fill(3).

     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 cov-
     erage of the file's contents.

     All pointers to Elf_Scn and 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:

     [ELF_E_ARGUMENT]  Argument elf was null.

     [ELF_E_ARGUMENT]  Argument cmd was not recognized.

     [ELF_E_ARGUMENT]  The argument elf was not a descriptor for an ELF object.

     [ELF_E_CLASS]     The e_ident[EI_CLASS] field of the executable header of argument elf did
		       not match the class of the file.

     [ELF_E_DATA]      An Elf_Data descriptor contained in argument elf specified a type incom-
		       patible with its containing section.

     [ELF_E_HEADER]    The ELF header in argument elf requested a different byte order from the
		       byte order already associated with the file.

     [ELF_E_IO]        An I/O error was encountered.

     [ELF_E_LAYOUT]    An Elf_Data descriptor contained in argument elf specified an alignment
		       incompatible with its containing section.

     [ELF_E_LAYOUT]    Argument elf contained section descriptors that overlapped in extent.

     [ELF_E_LAYOUT]    Argument elf contained section descriptors that were incorrectly aligned
		       or were too small for their data.

     [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.

     [ELF_E_MODE]      An ELF_C_WRITE operation was requested with an ELF descriptor that was not
		       opened for writing or updating.

     [ELF_E_SECTION]   Argument elf contained a section with an unrecognized type.

     [ELF_E_SECTION]   The section header at index SHN_UNDEF had an illegal section type.

     [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.

     [ELF_E_VERSION]   Argument elf had an unsupported version or contained an Elf_Data descrip-
		       tor with an unsupported version.

SEE ALSO
     elf(3), elf32_getehdr(3), elf32_getphdr(3), elf32_newehdr(3), elf32_newphdr(3),
     elf64_getehdr(3), elf64_getphdr(3), elf64_newehdr(3), elf64_newphdr(3), elf_cntl(3),
     elf_fill(3), elf_flagehdr(3), elf_flagelf(3), elf_getdata(3), elf_getscn(3), elf_newdata(3),
     elf_newscn(3), elf_rawdata(3), gelf(3), gelf_newehdr(3), gelf_newphdr(3), elf(5)

BSD					  March 19, 2008				      BSD


All times are GMT -4. The time now is 03:32 AM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
×
UNIX.COM Login
Username:
Password:  
Show Password