|
st_obj_file_start(3)
Contents
|
st_obj_file_start, st_obj_file_count, st_obj_file_next,
st_obj_proc_start, st_obj_proc_count, st_obj_proc_next,
st_obj_sym_start, st_obj_sym_next, st_obj_sym_count,
st_obj_lsym_start, st_obj_lsym_next, st_obj_lsym_count,
st_obj_esym_start, st_obj_esym_next, st_obj_esym_count -
access information about an object's files, procedures,
and symbols
#include <st.h>
st_status_t st_obj_file_start(
st_obj_t *obj,
st_file_t *start ); st_status_t st_obj_file_count(
st_obj_t *obj,
unsigned int *count ); st_status_t
st_obj_file_next(
st_obj_t *obj,
st_file_t cur,
st_file_t *next ); st_status_t st_obj_proc_start(
st_obj_t *obj,
st_proc_t *start ); st_status_t st_obj_proc_count(
st_obj_t *obj,
unsigned int *count ); st_status_t
st_obj_proc_next(
st_obj_t *obj,
st_proc_t cur,
st_proc_t *next ); st_status_t st_obj_sym_start(
st_obj_t *obj,
st_sym_t *start ); st_status_t st_obj_sym_next(
st_obj_t *obj,
st_sym_t cur,
st_sym_t *next ); st_status_t st_obj_sym_count(
st_obj_t *obj,
unsigned int *count ); st_status_t
st_obj_lsym_start(
st_obj_t *obj,
st_sym_t *start ); st_status_t st_obj_lsym_next(
st_obj_t *obj,
st_sym_t cur,
st_sym_t *next ); st_status_t st_obj_lsym_count(
st_obj_t *obj,
unsigned int *count ); st_status_t
st_obj_esym_start(
st_obj_t *obj,
st_sym_t *start ); st_status_t st_obj_esym_next(
st_obj_t *obj,
st_sym_t cur,
st_sym_t *next ); st_status_t st_obj_esym_count(
st_obj_t *obj,
unsigned int *count );
Symbol Table and Object File Access Library (libst.a)
Specifies an object handle, as returned by the
st_obj_open() function. Specifies the address to which
the functions return the handle of the first file, procedure,
or symbol. Specifies the address to which the functions
return the count of the files, procedures, or symbols.
Specifies the handle of the current file, procedure,
or symbol. Specifies the address to which the functions
return the handle of the next file, procedure, or
symbol.
An object or executable can contain multiple files, procedures,
and symbols. These routines provide the interface
for accessing each of these entities sequentially. Separate
interfaces are provided to allow local and external
symbols to be accessed independently.
The process for using these routines is as follows: Obtain
the handle of the first entity (file, procedure or symbol),
using the appropriate st_*_start routine. Obtain
the number of the files, procedures, or symbols contained
in the object using the appropriate st_*_count routine.
Loop through the files, procedures, or symbols using the
appropriate st_*_next routine. In typical usage, the first
time that the st_*_next routine is called, the cur argument
will be the handle returned by the earlier call to
st_*_start. In subsequent calls, the cur argument will be
the handle returned by the previous call to st_*_next.
Refer to the program in libst_intro(3) for an example of
how these routines are used.
The individual routines are described in the following
list: Returns the handle of the first file in the specified
object. You can use this file handle to call other
functions that return information about the procedures,
symbols, or lines in the file. Returns the number of
files in the specified object. Returns the handle of the
file following cur in the specified object. You can use
this function as a means of indexing through the files in
an object. If cur equals or exceeds the number of files in
the specified object, st_obj_file_next returns
ST_E_FILE_RANGE and returns a value of -1 to the location
to which next points. Returns the handle of the first
procedure in the specified object. See
st_file_proc_start(3) for information on accessing the
procedures in a particular file of an executable object.
Returns the number of procedures in the object. Returns
the handle of the procedure following cur in the specified
object. You can use this function as a means of indexing
through the procedures in an object. If cur equals or
exceeds the number of procedures in the specified object,
st_obj_proc_next() returns ST_E_PROC_RANGE and returns a
value of -1 to the location to which next points. Returns
the handle of the first symbol in the specified object.
See st_file_sym_start(3) for more information on accessing
symbols within a particular file. Returns the number of
symbols in the specified object. Returns the handle of
the symbol following sym in the specified object. You can
use this function as a means of indexing through the symbols
in an object -- after st_obj_sym_start() and
st_obj_sym_count() have been called. If sym equals or
exceeds the number of symbols in the specified object,
st_obj_sym_next() returns ST_E_SYM_RANGE. Perform the
same processing as the st_obj_sym_* routines -- except for
distinguishing between the local and external symbol
tables (which enables separate processing for each portion
of the symbol table). In a locally stripped object, the
external symbol table may be present without the local
symbol table. In this case, st_obj_sym_start() and
st_obj_esym_start() will return the same handle, and
st_obj_lsym_start() will return ST_E_OBJ_LSTRIPPED.
If cur equals or exceeds the number of symbols in
either the local or external symbol tables, the
st_obj_esym_next() and st_obj_lsym_next() routines
will return ST_E_SYM_RANGE.
All functions indicate success by returning a value of 0
(zero). A positive return value is an errno value from a
system call. A negative return value is a library error or
informational code. The library codes are documented in
st.h.
Return parameters are set to 0 or -1 when an error occurs.
Address parameters are set to 0 while file and procedure
handles are set to -1. An exception to this is if a NULL
pointer for the object or other return parameter is input.
In these cases, the return parameters will be unchanged.
A nonzero return status is the recommended method for
detecting an error return from a libst function.
See libst_intro(3) for examples of the use of
st_obj_file_* and st_obj_proc_*.
Header file that contains all definitions and function
prototypes for libst.a functions
Commands: atom(1)
Functions: libst_intro(3), st_addr_to_file(3),
st_file_lang(3), st_obj_open(3), st_obj_calls(3),
st_objlist_append(3), st_proc_addr(3), st_sym_value(3)
st_obj_file_start(3)
[ Back ] |