stfd(3X)

stfd - Routines that provide access to file descriptor section of the symbol table

As shipped in IRIX 6.5.5. Last changed in IRIX 6.5.5.

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

SYNOPSIS
     #include <syms.h>

     "long st_currentifd(void);

     "long st_ifdmax(void);

     "void st_setfd(long ifd);

     "long st_fdadd(char *filename);

     "long st_symadd(long iss, long value, long st, long sc, long freloc,
     "         long index);

     "long st_auxadd(AUXU aux);

     "long st_stradd(char *cp);

     "long st_lineadd(long line);

     "long st_pdadd(long isym);

     "long st_ifd_pcfd(pCFDR pcfd1);

     "pCFDR st_pcfd_ifd(long ifd);

     "pSYMR st_psym_ifd_isym(long ifd; long isym);

     "pAUXU st_paux_ifd_iaux(long ifd, long iaux);

     "pAUXU st_paux_iaux(long iaux);

     "char *st_str_iss(long iss);

     "char *st_str_ifd_iss(long ifd, long iss);

     "pPDR st_ppd_ifd_isym(long ifd, long isym);

     "char *st_malloc(char *ptr, long *size, long itemsize, long
     baseitems);

IMPLEMENTATION
     IRIX systems (o32 ABI only)

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.  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 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
     <cmplrs/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.

BUGS
     The interface will added to incrementally, as needed.

SEE ALSO
     stfe(3x), stcu(3x)

     This man page is available only online.