Use this system macro to generate the standardized linkage to call a
control program (CP) routine. This macro is used with other
standardized linkage macros such as the DLNKC, RLNKC, and SLNKC macros.
See the following for more information about these macros:
Format
- label
- A symbolic name can be assigned to the macro statement.
- BASE=R15|Rx
- The register specified, default R15, will be used as the link-to register
between the routines. The called routine will use this register as its
base register.
- LINK=R14|Ry
- The register specified, default R14, will be used as the link-from
register between the routines. The called routine will use this
register as the return register. This register is NOT saved and
restored over the call.
- RTN=address|(Rn)
- This parameter can be either a label or a register specified as
(Rn). This parameter must be the base of the called routine except when
TYPE=POINTER. In this case, the parameter will point to the address of
the routine. If the register specification is used and the TYPE
parameter is omitted, the proper address is assumed to be in the
register. If the address specification is used, the TYPE parameter must
be specified as EXT, INT, LOCAL, or POINTER.
- TYPE
- This parameter specifies the type of addressability this routine has to
the called routine identified by the RTN parameter. If the TYPE
parameter is not specified, the required address is assumed not to be a
POINTER. The TYPE parameter must be specified when the RTN parameter
specifies an address.
- POINTER
- The called control program (CP) routine's address is a
pointer.
- LOCAL
- The called control program (CP) routine's address is within the
current base register addressability.
- EXT
- The called control program (CP) routine's address is located in a
different CSECT than this routine. The address is resolved through a
Vcon.
- INT
- The called control program (CP) routine's address is within the
current CSECT but not within the current base register addressability.
The address is resolved through an Adcon.
Entry Requirements
R13 must contain the correct stack pointer.
Return Conditions
- Control is normally returned to the next sequential instruction, but need
not be.
- The contents of the registers are determined by the interface between this
routine and the called routine.
Programming Considerations
- This macro can be run on any I-stream.
- R13 must point to a valid stack.
- The condition code is determined as part of the interface between the two
routines.
- The program invoked by this macro should use the other linkage and stack
manipulation macros (SLNKC, DLNKC, RLNKC) to save and restore the proper
registers and stack base.
- This macro is for use in the control program (CP) only.
- The contents of the register specified by BASE will be saved on the stack
and restored by the called routine.
Examples
None.