VOV Instrumentation Library (VIL)

VIL: The Basic Procedures

The essential functions in the VOV C library, together with the few common utilities, allow for the easy instrumentation of tools. VIL can be used with either C or C++ programs.

Type Procedure Args Description
void VovBegin (int argc, char** argv) Starts a channel and opens a connection to it. We recommend the use of VovConnect() instead of this procedure.
void VovConnect (void) Connects to an existing channel, if available, that is if the current process is a child of a wrapper that activated runtime tracing, such as vrt or vov.
int VovBarrier (char* db, char* file, char* action) Declares an output barrier. The third argument action can be either "STOP" or "PROPAGATE". Used by "smart tools" to inform the server whether there are changes propagating to the output. The argument ACTION is either PROPAGATE or STOP. For more information, see Runtime Change Propagation Control.
VovStatus VovExecutable (char* exec) Declares an input taking advantage of the PATH search mechanism. Equivalent to VovInput("FILE",true_exec), where true_exec is the full path of the executable exec as produced by the PATH search mechanism. If true_exec cannot be found, an error condition is raised, causing termination of the run.
FILE* VovFopen (char* fname, char* mode) Replacement for fopen().
VovStatus VovInput (char* db, char* name) Generic input declaration.
VovStatus VovInputFile (char* name) Declares an input file.
VovStatus VovOutput (char* db, char* name) Generic output declaration.
VovStatus VovOutputFile (char* name) Declares an output file.
void VovFinish (int status) Closes connection with channel.
void VovEnd (int status) Closes connection and calls exit(). Use this only if in conjunction with VovBegin().
VovStatus VovInputWithFlags (const char* db, const char* name, int flags) Offers the most complete interface to declare an input in an instrumented tool. The flags argument is the OR'ing of the following flags defined in vil.h:
VID_CONSUMED_FLAG
VID_NORMAL_FLAGS
VovStatus VovOutputWithFlags (const char* db, const char* name, int flags) The procedure VovOutputWithFlags(db,name,flags) offers the most complete interface to declare an output in an instrumented tool. The flags argument is the OR'ing of the following flags defined in vil.h:
VOD_NORMAL_FLAGS
VOD_FORCE_FLAG
VOD_OPTIONAL_FLAG
VOD_SHARE_FLAG
VOD_IGNORE_TIMESTAMP_FLAG
VOD_BARRIER_STOP_FLAG
VOD_BARRIER_PROPAGATE_FLAG