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
ELF_GETDATA(3)	       FreeBSD Library Functions Manual		ELF_GETDATA(3)

NAME
     elf_getdata, elf_newdata, elf_rawdata -- iterate through or allocate sec-
     tion data

LIBRARY
     ELF Parsing Library (libelf, -lelf)

SYNOPSIS
     #include <libelf.h>

     Elf_Data *
     elf_getdata(Elf_Scn *scn, Elf_Data	*data);

     Elf_Data *
     elf_newdata(Elf_Scn *scn);

     Elf_Data *
     elf_rawdata(Elf_Scn *scn, Elf_Data	*data);

DESCRIPTION
     These functions are used to access	and manipulate data descriptors	asso-
     ciated with section descriptors.  Data descriptors	used by	the ELF
     library are described in elf(3).

     Function elf_getdata() will return	the next data descriptor associated
     with section descriptor scn.  The returned	data descriptor	will be	setup
     to	contain	translated data.  Argument data	may be NULL, in	which case the
     function returns the first	data descriptor	associated with	section	scn.
     If	argument data is not NULL, it must be a	pointer	to a data descriptor
     associated	with section descriptor	scn, and function elf_getdata()	will
     return a pointer to the next data descriptor for the section, or NULL
     when the end of the section's descriptor list is reached.

     Function elf_newdata() will allocate a new	data descriptor	and append it
     to	the list of data descriptors associated	with section descriptor	scn.
     The new data descriptor will be initialized as follows:
	   d_align    Set to 1.
	   d_buf      Initialized to NULL.
	   d_off      Set to (off_t) -1.  This field is	under application con-
		      trol if the ELF_F_LAYOUT flag was	set on the ELF
		      descriptor.
	   d_size     Set to zero.
	   d_type     Initialized to ELF_T_BYTE.
	   d_version  Set to the current working version of the	library, as
		      set by elf_version(3).
     The application must set these values as appropriate before calling
     elf_update(3).  Section scn must be associated with an ELF	file opened
     for writing.  If the application has not requested	full control of	layout
     by	setting	the ELF_F_LAYOUT flag on descriptor elf, then the data refer-
     enced by the returned descriptor will be positioned after the existing
     content of	the section, honoring the file alignment specified in member
     d_align.  On successful completion	of a call to elf_newdata(), the	ELF
     library will mark the section scn as ``dirty''.

     Function elf_rawdata() is used to step through the	data descriptors asso-
     ciated with section scn.  In contrast to function elf_getdata(), this
     function returns untranslated data.  If argument data is NULL, the	first
     data descriptor associated	with section scn is returned.  If argument
     data is not NULL, is must be a data descriptor associated with section
     scn, and function elf_rawdata() will return the next data descriptor in
     the list, or NULL if no further descriptors are present.  Function
     elf_rawdata() always returns Elf_Data structures of type ELF_T_BYTE.

   Special handling of zero-sized and SHT_NOBITS sections
     For sections of type SHT_NOBITS, and for zero-sized sections, the func-
     tions elf_getdata() and elf_rawdata() return a pointer to a valid
     Elf_Data structure	that has its d_buf member set to NULL and its d_size
     member set	to the size of the section.

     If	an application wishes to create	a section of type SHT_NOBITS, it
     should add	a data buffer to the section using function elf_newdata().  It
     should then set the d_buf and d_size members of the returned Elf_Data
     structure to NULL and the desired size of the section respectively.

RETURN VALUES
     These functions return a valid pointer to a data descriptor if success-
     ful, or NULL if an	error occurs.

ERRORS
     These functions may fail with the following errors:

     [ELF_E_ARGUMENT]  Arguments scn was NULL.

     [ELF_E_ARGUMENT]  Data descriptor data was	not associated with section
		       descriptor scn.

     [ELF_E_RESOURCE]  An out of memory	condition was detected.

     [ELF_E_SECTION]   Section scn had type SHT_NULL.

     [ELF_E_SECTION]   The type	of the section scn was not recognized by the
		       library.

     [ELF_E_SECTION]   The size	of the section scn is not a multiple of	the
		       file size for its section type.

     [ELF_E_SECTION]   The file	offset for section scn is incorrect.

SEE ALSO
     elf(3), elf_flagdata(3), elf_flagscn(3), elf_getscn(3), elf_getshdr(3),
     elf_newscn(3), elf_rawfile(3), elf_update(3), elf_version(3), gelf(3)

FreeBSD	10.1		       February	18, 2013		  FreeBSD 10.1

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO

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

home | help