Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

stfd(3) [ultrix man page]

stfd(3) 						     Library Functions Manual							   stfd(3)

Name
       stfd,  st_currentifd,  st_ifdmax,  st_setfd,  st_fdadd,	st_symadd,  st_auxadd,	st_stradd, st_lineadd, st_pdadd, st_ifd_pcfd, st_pcfd_ifd,
       st_psym_ifd_isym, st_paux_ifd_iaux, st_paux_iaux, st_str_iss, st_str_ifd_iss, st_ppd_ifd_isym, st_malloc  - routines that provide access to
       per file descriptor section of the symbol table

Syntax
       #include <syms.h>

       long st_currentifd ()

       long st_ifdmax ()

       void st_setfd (ifd)
       long ifd;

       long st_fdadd (filename)
       char *filename;

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

       long st_auxadd (aux)
       AUXU aux;

       long st_stradd (cp)
       char *cp;

       long st_lineadd (line)
       long line;

       long st_pdadd (isym)
       long isym;

       long st_ifd_pcfd (pcfd1)
       pCFDR pcfd1;

       pCFDR st_pcfd_ifd (ifd)
       long ifd;

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

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

       pAUXU st_paux_iaux (iaux)
       long iaux;

       char *st_str_iss (iss)
       long iss;

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

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

       char * st_malloc (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.

       The 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 routine, which determines the permanent byte ordering for the auxiliary and line number entries for
       this file.

       The 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  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 infor-
       mation 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.  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.  The 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.

See Also
       stcu(3), stfe(3), sym.h(5), stsupport.h(5)

								       RISC								   stfd(3)
Man Page