ELF_GETDATA(3) | Library Functions Manual | ELF_GETDATA(3) |
elf_getdata
, elf_newdata
,
elf_rawdata
—
#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);
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:
NULL
.ELF_F_LAYOUT
flag was set on the ELF
descriptor.ELF_T_BYTE
.ELF_F_LAYOUT
flag on descriptor
elf, then the data referenced 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 associated 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
.
SHT_NOBITS,
and for zero-sized
sections, the functions 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.
NULL
if an error occurs.
ELF_E_ARGUMENT
]NULL
.ELF_E_ARGUMENT
]ELF_E_ARGUMENT
]ELF_E_DATA
]ELF_E_RESOURCE
]ELF_E_SECTION
]SHT_NULL
.ELF_E_SECTION
]ELF_E_SECTION
]ELF_E_SECTION
]ELF_E_UNIMPL
]January 26, 2011 | NetBSD 9.0 |