staux(3X)

staux - Routines that provide scalar interfaces to auxiliaries

As shipped in IRIX 6.5.22. Last changed in IRIX 6.5.19.

NAME
     staux - Routines that provide scalar interfaces to auxiliaries

SYNOPSIS
     #include <syms.h>

     "long st_auxbtadd(long bt);

     "long st_auxbtsize(long iaux, long width);

     "long st_auxisymadd(long isym);

     "long st_auxrndxadd(long rfd, long index);

     "long st_auxrndxadd(long idn);

     "void st_addtq(long iaux, long tq);

     "long st_tqhigh_aux(long iaux);

     "void st_shifttq(int iaux, int tq);

     "long st_iaux_copyty(long ifd, pSYMR psym);

     "void st_changeaux(long iaux, AUXU aux);

     "void st_changeauxrndx(long iaux, long rfd, long index);

DESCRIPTION
     This routine is available for o32 ABI programs only.

     Auxiliary entries are unions with a fixed length of four bytes per
     entry.  Much information is packed within the auxiliaries. Rather than
     have the compiler front-ends handle each type of auxiliary entry
     directly, the following set of routines provide a high-level scalar
     interface to the auxiliaries:

     st_auxbtadd    Adds a type information record (TIR) to the
                    auxiliaries.  It sets the basic type (bt) to the
                    argument and all other fields to zero.  The index to
                    this auxiliary entry is returned.

     st_auxbtsize   Sets the bit in the TIR, pointed to by the iaux
                    argument.  This argument states that the basic type is
                    a bit field and adds an auxiliary with its width in
                    bits.

     st_auxisymadd  Adds an index into the symbol table (or any other
                    scalar) to the auxiliaries.  It sets the value to the
                    argument that will occupy all four bytes.  The index to
                    this auxiliary entry is returned.

     st_auxrndxadd  Adds a relative index, RNDXR, to the auxiliaries.  It
                    sets the rfd and index to their respective arguments.
                    The index to this auxiliary entry is returned.

     st_auxrndxadd_idn
                    Works the same as st_auxrndxadd, except that RNDXR is
                    referenced by an index into the dense number table.

     st_iaux_copyty Copies the type from the specified file (ifd) for the
                    specified symbol into the auxiliary table for the
                    current file.  It returns the index to the new aux.

     st_shifttq     Shifts in the specified type qualifier, tq (see sym.h),
                    into the auxiliary entry TIR, which is specified by the
                    `iaux' index into the current file.  The current type
                    qualifiers shift up one tq so that the first tq (tq0)
                    is free for the new entry.

     st_addtq       Adds a type qualifier in the highest or most
                    significant non-tqNil type qualifier.

     st_tqhigh_iaux Returns the most significant type qualifier given an
                    index into the files aux table.

     st_changeaux   Changes the iauxth aux in the current file's auxiliary
                    table to aux.

     st_changeauxrndx
                    Converts the relative index (RNDXR) auxiliary, which is
                    specified by iaux, to the specified arguments.

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

BUGS
     The interface will added to incrementally, as needed.

SEE ALSO
     stfd(3x)

     syms(4)