Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

stfe(3)

stfd(3)






























































                         Printed 1/15/91                   Page 1





STCU(3-SysV)        RISC/os Reference Manual         STCU(3-SysV)



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

SYNOPSIS
     #include <syms.h>

     pCHDRR st_cuinit ()

     void st_setchdr (pchdr)
     pCHDRR    pchdr;

     pCHDRR st_currentpchdr()

     void st_free()

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

     pEXTR st_pext_iext (iext)
     long iext;

     pEXTR st_pext_rndx (rndx)
     RNDXR rndx;

     long st_iextmax()

     long st_extstradd (str)
     char *str;

     char *st_str_extiss (iss)
     long iss;

     long st_idn_index_fext (index, fext)
     long index;
     long fext;

     long st_idn_rndx (rndx)
     RNDXR rndx;

     pRNDXR st_pdn_idn (idn)
     long idn;
     RNDXR st_rndx_idn (idn)
     long idn;

     void st_setidn (idndest, idnsrc)
     long idndest;
     long idnsrc;



                         Printed 1/15/91                   Page 1





STCU(3-SysV)        RISC/os Reference Manual         STCU(3-SysV)



DESCRIPTION
     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 rou-
     tine creates and initializes a CHDRR.  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(3)).
     The st_cuinit routine returns a pointer to the new CHDRR
     record.

     st_currentchdr
             Returns a pointer the current chdr.

     st_setchdr
             Sets the current chdr to the pchdr argument and sets
             the per file structures to reflect a change in sym-
             bol 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)).

     st_pext_iext

     and 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 con-
             tain the same structure as symbols (see the SYMR and
             EXTR definitions).

     st_iextmax
             Returns the current number of entries in the exter-
             nal symbol table.

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

     st_extstradd



 Page 2                  Printed 1/15/91





STCU(3-SysV)        RISC/os Reference Manual         STCU(3-SysV)



             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 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 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 `idn'
             argument.

AUTHOR Mark I. Himelstein
SEE ALSO
     stfe(3), stfd(3)


















                         Printed 1/15/91                   Page 3



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