stcu(3X)

stcu - Routines that provide a compilation unit symbol table interface

Showing IRIX 6.5.30 (default release). Last changed in IRIX 6.5.19.

NAME
     stcu - Routines that provide a compilation unit symbol table interface

SYNOPSIS
     #include <syms.h>

     "pCHDRR st_cuinit(void);

     "void st_setchdr(pCHDRR pchdr);

     "pCHDRR st_currentpchdr(void);

     "void st_free(void);

     "long st_extadd(long iss, long value, long st, long sc, long index);

     "pEXTR st_pext_iext(long iext);

     "pEXTR st_pext_rndx(RNDXR rndx);

     "long st_iextmax(void);

     "long st_extstradd(char *str);

     "char *st_str_extiss(long iss);

     "long st_idn_index_fext(long index, long fext);

     "long st_idn_rndx(RNDXR rndx);

     "pRNDXR st_pdn_idn(long idn);

     "RNDXR st_rndx_idn(long idn);

     "void st_setidn(long idndest, long idnsrc);

DESCRIPTION
     This routine is available for o32 ABI programs only.

     The stcu routines provide an interface to objects that occur once per
     object rather than once per file descriptor (for example, external
     symbols, strings, and dense numbers).  The routines provide access to
     the current chdr (compile time hdr), which represents the symbol table
     in running processes with pointers to symbol table sections rather
     than indices and offsets used in the disk file representation.

     A new symbol table can be created with st_cuinit.  This routine
     creates and initializes a CHDRR (see <cmplrs/stsupport.h>).  The CHDRR
     is the current chdr and is used in all later calls.  NOTE:  A chdr can
     also be created with the read routines; see stio(3x).  The 2st_cuinit
     routine returns a pointer to the new CHDRR record.

     st_currentchdr Returns a pointer to the current chdr.

     st_setchdr     Sets the current chdr to the pchdr argument and sets
                    the per file structures to reflect a change in symbol
                    tables.

     st_free        Frees all constituent structures associated with the
                    current chdr.

     st_extadd      Lets you add to the externals table.  It returns the
                    index to the new external for future reference and use.
                    The ifd field for the external is filled in by the
                    current file; see stfd(3).  For more details on the
                    parameters, see <sym.h>.

     st_pext_iext, st_pext_rndx
                    Returns pointers to the external, given a index
                    referencing them.  The latter routine requires a
                    relative index where the index field should be the
                    index in external symbols and the rfd field should be
                    the constant ST_EXTIFD.

     NOTE:  The externals contain the same structure as symbols (see the
     SYMR and EXTR definitions).

     st_iextmax     Returns the current number of entries in the external
                    symbol table.

     The iss field in external symbols (the index into string space) must
     point into external string space.

     st_extstradd   Adds a null-terminated string to the external string
                    space and returns its index.

     st_str_extiss  Converts that index into a pointer to the external
                    string.

     The dense number table provides a convenience to the code optimizer,
     generator, and assembler.  This table lets them reference symbols from
     different files and externals with unique densely packed numbers.

     st_idn_index_fext
                    Returns a new dense number table index, given an index
                    into the symbol table of the current file (or if fext
                    is set, the externals table).

     st_idn_rndx    Returns a new dense number, but expects a RNDXR (see
                    <sym.h>) to specify both the file index and the symbol
                    index rather than implying the file index from the
                    current file.  The RNDXR contains two fields:  an index
                    into the externals table and a file index (rsyms can
                    point into the symbol table, as well).  The file index
                    is ST_EXTIFD (see <cmplrs/stsupport.h>) for externals.

     st_rndx_idn    Returns a RNDX, given an index into the dense number
                    table.

     st_pdn_idn     Returns a pointer to the RNDXR index by the idni
                    argument.

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

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