stcu - routines that provide a compilation unit symbol table interface
void st_setchdr(pCHDRR pchdr);
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_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);
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.
Returns a pointer to the current chdr.
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
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>.
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 contain the same structure as symbols (see the SYMR and
Returns the current number of entries in the external symbol
The iss field in external symbols (the index into string space) must
point into external string space.
Adds a null-terminated string to the external string space and
returns its index.
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.
Returns a new dense number table index, given an index into the
symbol table of the current file (or if fext is set, the
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.
Returns a RNDX, given an index into the dense number table.
Returns a pointer to the RNDXR index by the `idn' argument.
The programs must be loaded with the object file access routine library
PPPPaaaaggggeeee 3333 [ Back ]