These functions are used to access and manipulate data descriptors
associated 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 control 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 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.