stcu - routines that provide a compilation unit symbol
#include <syms.h> pCHDRR st_cuinit ();
pCHDRR pchdr ); pCHDRR st_currentpchdr(
void ); void st_free(
void ); long st_extadd(
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 fext ); long st_idn_rndx(
RNDXR rndx ); pRNDXR st_pdn_idn(
long idn ); RNDXR st_rndx_idn(
long idn ); void st_setidn(
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. 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. Returns a pointer the current chdr. Sets the
current chdr to the pchdr argument and sets the per file
structures to reflect a change in symbol tables. Frees
all constituent structures associated with the current
chdr. 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)). 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).
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. 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 externals table).
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. Returns a RNDX,
given an index into the dense number table.
Returns a pointer to the RNDXR index by the idn
[ Back ]