HP-UX Reference (11i v3 07/02) - 3 Library Functions A-M (vol 6)

e
elf_flag(3E) elf_flag(3E)
NAME
elf_flagdata, elf_flagehdr, elf_flagelf, elf_flagphdr, elf_flagscn, elf_flagshdr - manipulate flags
SYNOPSIS
cc [flag... ] file...
-lelf [library] ...
#include <libelf.h>
unsigned elf_flagdata(Elf_Data *data, Elf_Cmd cmd, unsigned flags);
unsigned elf_flagehdr(Elf *elf, Elf_Cmd cmd, unsigned flags);
unsigned elf_flagelf(Elf *elf, Elf_Cmd cmd, unsigned flags);
unsigned elf_flagphdr(Elf *elf, Elf_Cmd cmd, unsigned flags);
unsigned elf_flagscn(Elf_Scn *scn, Elf_Cmd cmd, unsigned flags);
unsigned elf_flagshdr(Elf_Scn *scn, Elf_Cmd cmd, unsigned flags);
DESCRIPTION
These functions manipulate the flags associated with various structures of an ELF file. Given an ELF
descriptor elf, a data descriptor data, or a section descriptor scn, the functions may set or clear the associ-
ated status bits, returning the updated bits. A null descriptor is allowed, to simplify error handling; all
functions return zero for this degenerate case.
cmd may have the following values:
ELF_C_CLR The functions clear the bits that are asserted in flags. Only the non-zero bits in flags
are cleared; zero bits do not change the status of the descriptor.
ELF_C_SET The functions set the bits that are asserted in flags. Only the non-zero bits in flags are
set; zero bits do not change the status of the descriptor.
Descriptions of the defined flags bits appear below.
ELF_F_DIRTY When the program intends to write an ELF file, this flag asserts the associated informa-
tion needs to be written to the file. Thus, for example, a program that wished to update
the ELF header of an existing file would call elf_flagehdr with this bit set in flags
and cmd equal to
ELF_C_SET. A later call to elf_update would write the marked
header to the file.
ELF_F_LAYOUT Normally, the library decides how to arrange an output file. That is, it automatically
decides where to place sections, how to align them in the file, etc. If this bit is set for an
ELF descriptor, the program assumes responsibility for determining all file positions.
This bit is meaningful only for
elf_flagelf and applies to the entire file associated
with the descriptor.
When a flag bit is set for an item, it affects all the subitems as well. Thus, for example, if the program sets
the ELF_F_DIRTY bit with elf_flagelf , the entire logical file is ‘‘dirty.’’
EXAMPLES
The following fragment shows how one might mark the ELF header to be written to the output file.
ehdr = elf32_getehdr(elf);
/* dirty ehdr ...*/
elf_flagehdr(elf, ELF_C_SET, ELF_F_DIRTY);
SEE ALSO
elf(3E), elf_end(3E), elf_getdata(3E), elf_getehdr(3E), elf_update(3E).
HP-UX 11i Version 3: February 2007 1 Hewlett-Packard Company 341