Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ elf_getscn(3E) — DG/UX R4.11MU05

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

elf(3E)



elf_getscn(3E)                 DG/UX R4.11MU05                elf_getscn(3E)


NAME
       elfgetscn, elfndxscn, elfnewscn, elfnextscn - get section
       information

SYNOPSIS
       cc [flag ...] file ...  -lelf [library ...]

       #include <libelf.h>
       ElfScn *elfgetscn(Elf *elf, sizet index);
       sizet elfndxscn(ElfScn *scn);
       ElfScn *elfnewscn(Elf *elf);
       ElfScn *elfnextscn(Elf *elf, ElfScn *scn);

DESCRIPTION
       These functions provide indexed and sequential access to the sections
       associated with the ELF descriptor elf.  If the program is building a
       new file, it is responsible for creating the file's ELF header before
       creating sections; see elfgetehdr(3E).

       elfgetscn  returns  a  section  descriptor,  given an index into the
       file's section header table.  Note the  first  ``real''  section  has
       index  1.   Although  a  program can get a section descriptor for the
       section whose index is 0  (SHNUNDEF,  the  undefined  section),  the
       section  has  no  data  and  the  section header is ``empty'' (though
       present).  If the specified section does not exist, an error  occurs,
       or elf is null, elfgetscn returns a null pointer.

       elfnewscn  creates a new section and appends it to the list for elf.
       Because the SHNUNDEF section is required and not ``interesting''  to
       applications,  the  library creates it automatically.  Thus the first
       call to elfnewscn for an ELF descriptor with  no  existing  sections
       returns  a  descriptor  for  section 1.  If an error occurs or elf is
       null, elfnewscn returns a null pointer.

       After  creating  a  new  section  descriptor,  the  program  can  use
       elfgetshdr  to retrieve the newly created, ``clean'' section header.
       The  new  section  descriptor  will  have  no  associated  data  [see
       elfgetdata(3E)].   When  creating  a  new  section  in this way, the
       library updates the eshnum member of the ELF  header  and  sets  the
       ELFFDIRTY  bit  for the section [see elfflag(3E)].  If the program
       is building a new file, it is responsible for creating the file's ELF
       header [see elfgetehdr(3E)] before creating new sections.

       elfnextscn  takes an existing section descriptor, scn, and returns a
       section descriptor for the next higher section.  One may use  a  null
       scn  to  obtain a section descriptor for the section whose index is 1
       (skipping the section whose  index  is  SHNUNDEF).   If  no  further
       sections  are  present or an error occurs, elfnextscn returns a null
       pointer.

       elfndxscn takes an existing section descriptor, scn, and returns its
       section  table  index.  If scn is null or an error occurs, elfndxscn
       returns SHNUNDEF.

EXAMPLE
       An example of sequential access appears below.  Each pass through the
       loop processes the next section in the file; the loop terminates when
       all sections have been processed.

            scn = 0;
            while ((scn = elfnextscn(elf, scn)) != 0)
            {
                    /* process section */
            }

SEE ALSO
       elf(3E), elfbegin(3E), elfflag(3E), elfgetdata(3E),
       elfgetehdr(3E), elfgetshdr(3E).


Licensed material--property of copyright holder(s)

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