*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> stfd (3)              



NAME    [Toc]    [Back]

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

SYNOPSIS    [Toc]    [Back]

       #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 );

DESCRIPTION    [Toc]    [Back]

       The stfd routines provide an interface to objects  handled
       on  a  per  file descriptor (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.

       An fd routine 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() routine 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 Bigendian field is initialized by
       the gethostsex() routine (see gethostsex(3)), which determines
  the  permanent  byte ordering for the auxiliary and
       line number entries for this file.

       The st_fdadd() routine 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) 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. The st_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().

       The  st_ppd_ifd_isym() routine 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(3)).  That  number should be the
       ucode  block  number  for  the  object  that  the   symbol

RESTRICTIONS    [Toc]    [Back]

       The interface will be added to incrementally, as needed.

SEE ALSO    [Toc]    [Back]

       stcu(3), stfe(3)

[ Back ]
 Similar pages
Name OS Title
stfe IRIX routines that provide a high-level interface to basic functions needed to access and add to the symbol table
stcu Tru64 routines that provide a compilation unit symbol table interface
stcu IRIX routines that provide a compilation unit symbol table interface
stio Tru64 routines that provide a binary read/write interface to the symbol table
stio IRIX routines that provide a binary read/write interface to the MIPS symbol table
libst Tru64 symbol table and object file access library
libst_intro Tru64 symbol table and object file access library
ranhashinit Tru64 access routine for the symbol table definition file in archives
ranlookup Tru64 access routine for the symbol table definition file in archives
ranhash Tru64 access routine for the symbol table definition file in archives
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service