elf_flagdataelf_flagehdrelf_flagelfelf_flagphdrelf_flagscnelf_flagshdr
- manipulate flags associated with ELF(3) data structures
LIBRARY
Lb libelf
SYNOPSIS
#include <libelf.h> unsigned int
elf_flagdata (Elf_Data *data Elf_Cmd cmd unsigned int flags); unsigned int
elf_flagehdr (Elf *elf Elf_Cmd cmd unsigned int flags); unsigned int
elf_flagelf (Elf *elf Elf_Cmd cmd unsigned int flags); unsigned int
elf_flagphdr (Elf *elf Elf_Cmd cmd unsigned int flags); unsigned int
elf_flagscn (Elf_Scn *scn Elf_Cmd cmd unsigned int flags); unsigned int
elf_flagshdr (Elf_Scn *scn Elf_Cmd cmd unsigned int flags);
DESCRIPTION
These functions are used to query, set or reset flag bits on data
structures associated with an ELF file.
Arguments
dataelf
and
scn
denote the data structures whose status bits need to be changed.
These values are allowed to be NULL to simplify error handling in
application code.
Argument
cmd
may have the following values:
ELF_C_CLR
The argument
flags
specifies the bits to be cleared.
ELF_C_SET
The argument
flags
specifies the bits to be set.
The argument
flags
is allowed to have the following bits set:
ELF_F_DIRTY
Mark the associated data structure as needing to be written back
to the underlying file.
A subsequent call to
elf_update3
will resynchronize the library's internal data structures.
ELF_F_LAYOUT
This flag is only valid with the
elf_flagelf ();
API.
It informs the library that the application will take
responsibility for the layout of the file and that the library is
not to insert any padding in between sections.
Marking a given data structure as
``dirty''
affects all of its contained elements.
Thus marking an ELF descriptor
elf
with
elf_flagelf (elf ELF_C_SET ELF_F_DIRTY);
means that the entire contents of the descriptor are
``dirty''
Using a value of zero for argument
flags
will return the current set of flags for the data structure being
queried.
RETURN VALUES
These functions return the updated bits is successful, and zero if
an error is detected.
ERRORS
These functions may fail with the following errors:
Bq Er ELF_E_ARGUMENT
An unsupported value was used for the
cmd
argument.
Bq Er ELF_E_ARGUMENT
Argument
flags
had unsupported flag bits set.
Bq Er ELF_E_ARGUMENT
The argument
elf
was not a descriptor for an ELF object.
Bq Er ELF_E_SEQUENCE
Function
elf_flagehdr ();
was called without an executable header being allocated.
Bq Er ELF_E_SEQUENCE
Function
elf_flagphdr ();
was called without a program header being allocated.