HELPLIB.HLB  —  MACRO  MACRO Compiler Directives, .CALL LINKAGE
    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.
Close Help