*DECK LOCLLCB
USETEXT NIPDEF
USETEXT TNT
USETEXT LLCB
USETEXT PT
PROC LOCLLCB((HN),(TN),LLCBAD); # LOCATE LLCB #
STARTIMS;
#
*1DC LOCLLCB
*
* 1. PROC NAME AUTHOR DATE
* LOCLLCB C. BITTNER 81/04/16
*
* 2. FUNCTIONAL DESCRIPTION
* LOCATE LOGICAL LINK CONTROL BLOCK.
*
* 3. METHOD USED
* USING THE TERMINAL NODE, INDEX INTO THE TNT TO FIND THE
* FIRST LLCB FOR THE LOGICAL LINK.
* SEARCH FOR LLCB WITH A MATCHING HOST NODE.
*
* 4. ENTRY PARAMETERS
* HN - HOST NODE
* TN - TERMINAL NODE
*
* 5. EXIT PARAMETERS
* LLCBAD - LLCB ADDRESS
*
* 6. SYMPL TEXTS USED
* NIPDEF PT
* TNT LLCB
*
* 7. ROUTINES CALLED
* XTRACE - RECORD PROCEDURE CALLS
*
* 8. DAYFILE MESSAGES
* THIS PROCEDURE IS CALLED BY MANY ROUTINES.
*
#
STOPIMS;
#
EXTERNAL VARIABLES
#
XREF
BEGIN
PROC XTRACE; # TRACE CALLS #
END
#
INPUT PARAMETERS
#
ITEM HN; # HOST NODE NUMBER #
ITEM TN; # TERMINAL NODE NUMBER #
#
OUTPUT PARAMETERS
#
ITEM LLCBAD; # FWA OF LLCB FOUND #
#
LOCAL VARIABLES
#
ITEM I I; # INDUCTION VARIABLE #
CONTROL EJECT;
BEGIN # LOCLLCB #
CONTROL IFEQ DEBUG,1;
XTRACE("LOCLL"); # TRACE CALL #
CONTROL FI;
IF TN LS TNTBS[0]
THEN # TERMINAL NODE NUMBER WITHIN TNT RANGE #
BEGIN # SEARCH FOR LLCB WITH MATCHING HOST NODE #
P<LLCB> = TNTLLAD[TN]; # FWA OF LLCB #
FOR I=I WHILE P<LLCB> NQ 0 # LLCB EXISTS #
AND HN NQ LLCBHN[0] # HOST NODE NUMBER NOT MATCH #
DO # GET NEXT LLCB IN CHAIN #
BEGIN
P<LLCB> = LLCBFP[0]; # RESET LLCB ADDRESS #
END
LLCBAD = P<LLCB>;
END
ELSE # TERMINAL NODE NON-EXISTENT, NO LLCB #
LLCBAD = 0;
RETURN;
END # LOCLLCB #
TERM