Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ elf_flagehdr(3E) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

elf(3E)

elf_end(3E)

elf_getdata(3E)

elf_getehdr(3E)

elf_update(3E)






       elf_flag(3E)                                            elf_flag(3E)


       NAME
             elf_flag: 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 associated 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
                               information 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.


                           Copyright 1994 Novell, Inc.               Page 1













      elf_flag(3E)                                            elf_flag(3E)


            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);

      REFERENCES
            elf(3E), elf_end(3E), elf_getdata(3E), elf_getehdr(3E),
            elf_update(3E)






















                          Copyright 1994 Novell, Inc.               Page 2








Typewritten Software • bear@typewritten.org • Edmonds, WA 98026