Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ elf_getscn(3e) — Atari System V ue12

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

elf(3E)





   elf_getscn(3E)                 (ELF Library)                 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.




   7/91                                                                 Page 1









   elf_getscn(3E)                 (ELF Library)                 elf_getscn(3E)


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



































   Page 2                                                                 7/91





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