Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ stfd(3x) — 4D1 2.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

stfe(3x)

stcu(3x)

sym.h(5)

stsupport.h(5)



     STFD(3X)                                                 STFD(3X)



     NAME
          stfd - routines that provide access to per file descriptor
          section of the symbol table

     SYNOPSIS
          #include <syms.h>

          long stcurrentifd ()

          long stifdmax ()

          void stsetfd (ifd)
          long ifd;

          long stfdadd (filename)
          char *filename;

          long stsymadd (iss, value, st, sc, freloc, index)
          long iss;
          long value;
          long st;
          long sc;
          long freloc;
          long index;

          long stauxadd (aux)
          AUXU aux;

          long ststradd (cp)
          char *cp;

          long stlineadd (line)
          long line;

          long stpdadd (isym)
          long isym;

          long stifdpcfd (pcfd1)
          pCFDR pcfd1;

          pCFDR stpcfdifd (ifd)
          long ifd;

          pSYMR stpsymifdisym (ifd, isym)
          long ifd;
          long isym;

          pAUXU stpauxifdiaux (ifd, iaux)
          long ifd;
          long iaux;

          pAUXU stpauxiaux (iaux)



     Page 1                                        (last mod. 8/20/87)





     STFD(3X)                                                 STFD(3X)



          long iaux;

          char *ststriss (iss)
          long iss;

          char *ststrifdiss (ifd, iss)
          long ifd;
          long iss;

          pPDR stppdifdisym (ifd, isym)
          long ifd;
          long isym;

          char * stmalloc (ptr,psize,itemsize,baseitems)
          char *ptr;
          long *size;
          long itemsize;
          long baseitems;

     DESCRIPTION
          The stfd routines provide an interface to objects handled on
          a per file descriptor (or fd) level (for example, local
          symbols, auxiliaries, local strings, line numbers,
          optimization entries, procedure descriptor entries, and the
          file descriptors).  These routines constitute a group
          because they deal with objects corresponding to fields in
          the FDR structure.

          A fd can be activated by reading an existing one into memory
          or by creating a new one.  The compilation unit routines
          st_readbinary and st_readst read file descriptors and their
          constituent parts into memory from a symbol table on disk.

          St_fdadd adds a file descriptor to the list of file
          descriptors. The lang field is initialized from a user
          specified global st_lang that should be set to a constant
          designated for the language in symconst.h. The fMerge field
          is initialized from the user specified global st_merge that
          specifies whether the file is to start with the attribute of
          being able to be merged with identical files at load time.
          The fBigendian field is initialized by the gethostsex(3)
          routine, which determines the permanent byte ordering for
          the auxiliary and line number entries for this file.

          St_fdadd adds the null string to the new files string table
          that is accessible by the constant issNull (0.  It also adds
          the filename to the string table and sets the rss field.
          Finally, the current file is set to the newly added file so
          that later calls operate on that file.

          All routines for fd-level objects handle only the current
          file unless a file index is specified. The current file can



     Page 2                                        (last mod. 8/20/87)





     STFD(3X)                                                 STFD(3X)



          also be set with st_setfd.

          Programs can find the current file by calling st_currentifd,
          which returns the current index. Programs can find the
          number of files by calling st_ifdmax. The fd routines only
          require working with indices to do most things.  They allow
          more in-depth manipulation by allowing users to get the
          compile time file descriptor (CFDR see stsupport.h) that
          contains memory pointers to the per file tables (rather than
          indices or offsets used in disk files). Users can retrieve a
          pointer to the CFDR by calling st_pcfd_ifd with the index to
          the desired file. The inverse mapping st_ifd_pcfd exists, as
          well.

          Each of fd's constituent parts has an add routine:
          st_symadd, st_stradd, st_lineadd, st_pdadd, and st_auxadd.
          The parameters of the add routines correspond to the fields
          of the added object (see sym.h). The pdadd routine lets
          users fill in the isym field only. Further information can
          be added by directly accessing the procedure descriptor
          entry.

          The add routines return an index that can be used to
          retrieve a pointer to part of the desired object with one of
          the following routines:  st_psym_isym, st_str_iss, and
          st_paux_iaux. NOTE: These routines only return objects
          within the current file. The following routines allow for
          file specification:  st_psym_ifd_isym, st_aux_ifd_iaux, and
          st_str_ifd_iss.

          St_ppd_ifd_isym allows access to procedures through the file
          index for the file where they occur and the isym field of
          the entry that points at the local symbol for that
          procedure.

          The return index from st_symadd should be used to get a
          dense number (see stcu).  That number should be the ucode
          block number for the object the symbol describes.

          The programs must be loaded with the object file access
          routine library libmld.a.

     AUTHOR
          Mark I. Himelstein

     SEE ALSO
          stfe(3x), stcu(3x), sym.h(5), stsupport.h(5)

     BUGS
          The interface will added to incrementally, as needed.

     ORIGIN



     Page 3                                        (last mod. 8/20/87)





     STFD(3X)                                                 STFD(3X)



          MIPS Computer Systems






















































     Page 4                                        (last mod. 8/20/87)



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