DRA --> User's guide --> options

Option XPLINK

The only valid specification is XPLINK()

When this option is specified, DRA installs the XPLINK interceptor. This enables DRA to intercept the XPLINK conversion routines CEEVROND and CEEVH2OS. These are LE supplied routines that supports LE runtime option XPLINK(ON).

LE conversion routines:
CEEVROND called every time a conversion is needed as a result of a non-XPLINK program calling an XPLINK function. This routine converts the stack from UPSTACK to DOWNSTACK. It also converts the linkage from standard or fastlink convention to XPLINK convention, and then calls the XPLINK function. On return from the xplink function, the stack and linkage are converted back to standard or fastlink convention.
CEEVH2OS called every time a conversion is needed as a result of an XPLINK program calling a non-XPLINK function (OS_UPSTACK). This routine converts the stack from DOWNSTACK to UPSTACK. It also converts the linkage from xplink convention to standard linkage and then calls the non-XPLINK function. On return from the non-XPLINK function, the stack and linkage are converted back to xplink convention.

 

If option TIME is in effect then the XPLINK interceptor:
takes a time measurement
calls the function via the LE supplied conversion routine
takes another time measurement after the call
computes the time used and writes it to the trace file

Example:
XPLINK routine printf called by main
CEEVROND TIME=104002 microsecs (cpu=4015 wait=99987)

 

If option TRACE is also in effect then the XPLINK interceptor:
traces the name of the called function
traces the name of the calling program

Example::
XPLINK routine time called by SntDate::loadActDate()
XPLINK routine localtime called by SntDate::loadActDate()
XPLINK routine time called by SntTime::loadActTime()
XPLINK routine localtime called by SntTime::loadActTime()

 

The XPLINK interceptor increments the counter "number of XPLINK conversions". This counter will appear in the report at the completion of the program.

Example:
XPLINK routines called via CEEVROND: 188029
OS_UPSTACK routines called via CEEVH2OS: 739