Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ elf_nextscn(3E) — IRIX 6.5.3f

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

elf(3E)



ELFGETSCN(3E)                                                  ELFGETSCN(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. Page 1


ELFGETSCN(3E)                                                  ELFGETSCN(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



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