(Alpha and I64 only.) The Call Special Procedure routine performs a call to a procedure that may be either in native code or in a translated image. Format OTS$CALL_PROC target-func-value ,target-sig-info ,standard-args ,...
1 – Returns
None.
2 – Arguments
target-func-value OpenVMS usage:function value type: quadword address access: read only mechanism: by value in register R23 (Alpha). by value in register R17 (I64). Function value for the procedure to be called. target-sig-info OpenVMS usage:TIE signature information type: TIE signature block access: read only mechanism: by reference in register R24 (Alpha). by value in register R17 (I64). Signature information is used to transform the standard arguments into the form required by a translated image (if needed). The representation of signature information is described in the OpenVMS Calling Standard. standard-args type: access: mechanism: 0 Zero or more arguments to be passed to the called routine, passed using standard conventions (including the AI register).
3 – Description
When translated code support is requested, the compiled code must call the special service routine, OTS$CALL_PROC. The actual parameters to the target function are passed to OTS$CALL_PROC as though the target routine is native code that is being invoked directly. OTS$CALL_PROC first determines whether the target routine is part of a translated image. If the target is in native code, then OTS$CALL_PROC completes the call in a way that makes its mediation transparent (that is, control need not pass back through it for the return). The native parameters are used without modification. If the target is in translated code, then OTS$CALL_PROC passes control to the Translated Image Environment (TIE).
4 – Condition Values Returned
None.