OpenVMS I64 only.
Associates a named or anonymous linkage with a routine name. When
the compiler sees a CALLS, CALLG, JSB, BSBB, or BSBW instruction
with the routine name as the target, it will use the associated
linkage to decide which registers need to be saved and restored
around the call.
Format
.CALL_LINKAGE routine_name [,linkage_name] [,input] [,output]
[,scratch] [,preserve]
1 – Parameters
routine_name
The name of a routine to be associated with the linkage.
linkage_name =
The name of a linkage previously defined with the .DEFINE_LINKAGE
directive. If you specify a linkage_name, you cannot specify an
input, output, scratch, or preserve parameter.
input=<>
Register set that indicates those registers from which the
routine_name receives input values. This parameter is for
documentation purposes only.
If you specify an input register set, you cannot specify a
linkage_name.
output=<>
Register set that indicates those registers to which the routine_
name assigns values that are returned to the routine's caller.
Registers included in this register set are not saved and
restored around the call.
If you specify an output register set, you cannot specify a
linkage_name.
scratch=<>
Register set that indicates registers that are used within the
routine.
If you specify a scratch register set, you cannot specify a
linkage_name.
preserve=<>
Register set that indicates those registers which the routine_
name will preserve. Registers included in this register set are
not saved and restored around a call to the routine, since the
called routine will perform that task.
If you specify a preserve register set, you cannot specify a
linkage_name.