VMS Help  —  MACRO  /ALPHA  Supplied Library Macros, $RESET LP LIST
    Clears the list of linkage pairs maintained by the $LINKAGE_PAIR
    and $CALL macros.

    Format

      $RESET_LP_LIST

1  –  Description

    The $LINKAGE_PAIR and $CALL macros maintain an assembly-time
    list of linkage pairs that the $LINKAGE_PAIR macro has stored in
    the linkage section. This list enables $LINKAGE_PAIR and $CALL
    to use the same linkage pair for multiple routine calls to the
    same routine. You can clear this list of linkage pairs with the
    $RESET_LP_LIST macro.

    Under normal circumstances, you do not need to clear the linkage-
    pair list. Some of the times when you do are as follows:

    o  When you change the psect assigned to the linkage section.

    o  If distance from the linkage section of your current routine
       falls more than 32K bytes beyond where the linkage pair has
       been stored.

2  –  Example

         ; Define the linkage section psect for routines A & B
         $LINK$ = "AB_LINK,NOEXE,OCTA"

         $ROUTINE A, KIND=STACK
         .BASE  R27, $LS
         $CALL D ; Linkage pair is stored in A's linkage
           ;  section and put on the assembly-time list
         $RETURN
         $END_ROUTINE A

         $ROUTINE B, KIND=STACK
         .BASE  R27, $LS
         $CALL D ; Linkage pair is found on the list,
           ;  and used from A's linkage section
         $RETURN
         $END_ROUTINE B

         ; Define a different linkage section for routine C
         $LINK$ = "C_LINK,NOEXE,OCTA"

         ; Linkage pairs that are on the list are in A & B's linkage
         ; section, which is not easily accessible by C.  Therefore,
         ; clear the list.
         $RESET_LP_LIST

         $ROUTINE C, KIND=STACK
         .BASE  R27, $LS
         $CALL D ; Linkage pair is stored in C's linkage
           ;  section and put on the assembly-time list
         $RETURN
         $END_ROUTINE B
Close Help