Locates or defines a linkage pair in the linkage psect. Format $LINKAGE_PAIR name=routine-name, local=boolean
1 – Parameters
name Name of the linkage pair to define. This argument is required. local A Boolean value (TRUE or FALSE) that specifies whether the routine is defined within the module for not. The default is to store a linkage pair for a global routine. You must specify LOCAL=TRUE to store a linkage pair for a routine that is not globally visible.
2 – Description
You can invoke this macro to locate or define a linkage pair in the linkage psect. The linkage pair is added to a list for later use and retrieval by the $CALL and $LINKAGE_PAIR macros. Thus, only the first invocation of $LINKAGE_PAIR (or $CALL) for a given routine to be called results in a linkage pair being stored. $LINKAGE_PAIR and $CALL use the same list of linkage pairs. $LINKAGE_PAIR restores the current psect when it is done. $LINKAGE_PAIR defines the symbol $LP. This symbol value is the address within the linkage section of the linkage pair for the specified routine to call.
3 – Notes
o Because the $CALL macro invokes the $LINKAGE_PAIR macro for you, you do not need to use $LINKAGE_PAIR when you are using $CALL. You may wish to use $LINKAGE_PAIR when you are not using $CALL or when you require a specific ordering or placement of linkage pairs within the linkage section.
4 – Example
$LINKAGE_PAIR SUB1 ; define linkage pair in linkage section LDQ R26, $LP LDQ R27, $LP+8 JSR R26, R26