cdc:nos2.source:nam5871:relllcb
Table of Contents
RELLLCB
Table Of Contents
- [00013] PRGM RELLLCB
- [00081] PROC MRELS
- [00082] PROC MGETS
- [00083] PROC OSCHAPP
- [00084] PROC BLINK
- [00086] PROC XTRACE
- [00087] PROC BLDKWL
Source Code
- RELLLCB.txt
- *DECK RELLLCB
- USETEXT LLCB
- USETEXT NHEADER
- USETEXT NIPDEF
- USETEXT AHEADER
- USETEXT AT
- USETEXT SUPMSG
- USETEXT PARAMS
- USETEXT PT
- USETEXT TNT
- USETEXT KDIS
- USETEXT KSTTAB
- PRGM RELLLCB;
- # DELETE LOGICAL LINK CONTROL BLOCK #
- STARTIMS;
- #
- *1DC RELLLCB
- *
- * 1. PROC NAME AUTHOR DATE
- * RELLLCB E.T. WAN 81/03/28
- *
- * 2. FUNCTIONAL DESCRIPTION
- * THIS ROUTINE RELEASES A LOGICAL LINK CONTROL BLOCK.
- *
- * 3. METHOD USED
- * CALL MGETS TO RELEASE THE LOGICAL LINK CONTROL BLOCK.
- * IF ONLY ONE LINK EXISTS FOR THE TERMINAL NODE, CLEAR THE
- * TNT ENTRY. IF MORE THAN ONE LINK EXIST, UPDATE ALL AFFECTED
- * FORWARD AND BACKWARD POINTERS.
- * DECREMENT THE NUMBER OF LOGICAL LINKS IN TNT ENTRY.
- * INFORM NVF THAT A LINK WENT DOWN (FOR THE LID/PID MANEGMENT)
- *
- * 4. ENTRY PARAMETERS
- * PARAMS1 NETWORK BLOCK HEADER ADDRESS
- * PARAMS2 ADDRESS OF LOGICAL LINK CONTROL BLOCK TO
- * BE DELETED.
- *
- * 5. EXIT PARAMETERS
- * NONE
- *
- * 6. COMDECKS CALLED
- * LLCB
- * NHEADER
- * NIPDEF
- * PARAMS
- * PT AT
- * TNT AHEADER
- * KDIS SUPMSG
- * OSSIZE
- *
- * 7. ROUTINES AND OVERLAYS CALLED
- * MRELS RELEASE BUFFER SPACE
- * XTRACE TRACE CALL
- * BLINK LINK A MESSAGE TO APPLICATION
- * MGETS GET A BUFFER SPACE
- * OSCHAPP SCHEDULE APPLICATION
- * KDEL DELETE A LINE FROM STATUS DISPLAY
- *
- * 8. DAYFILE MESSAGES
- * NONE
- *
- * THIS PROGRAM IS A SECONDARY OVERLAY LOADED BY SUBROUTINE
- * OVLCALL. WHEN EXECUTION HAS COMPLETED, A JUMP IS MADE TO
- * LOCATION RJMAIN TO RETURN TO THE CALLING PROGRAM.
- *
- * W A R N I N G - THIS PROGRAM CANNOT EXCEED THE SECONDARY
- *CALL OSSIZE
- *
- * THIS OVERLAY IS CALLED BY NPREGLL, NPREGCP.
- *
- #
- STOPIMS;
- #
- **** EXTERNAL ENTRY POINTS
- #
- XREF
- BEGIN
- PROC MRELS; # RELEASE BUFFER SPACE #
- PROC MGETS ;
- PROC OSCHAPP ;
- PROC BLINK ;
- LABEL RJMAIN; # RETURN ADDRESS IN OVLCALL #
- PROC XTRACE; # RECORD TRACE #
- PROC BLDKWL; # FORMAT KWL TO DELETE LLK ENTRY #
- END
- #
- * LOCAL VARIABLES
- #
- ITEM IDXTN; # TNT ENTRY INDEX #
- ITEM SAVBP; # SAVE LLCB BACKWARD POINTER #
- ITEM BUFADDR ;
- ITEM SAVFP; # SAVE LLCB FORWARD POINTER #
- BEGIN # RELLLCB #
- CONTROL IFEQ DEBUG,1 ;
- XTRACE("RLLCB") ;
- CONTROL FI;
- P<LLCB> = PARAMS2; # LOCATION OF LOGICAL LINK CONTROL BLOCK #
- IDXTN = LLCBTN[0] ; # INDEX INTO TNT #
- IF ATACBA[NVFAN] NQ 0
- THEN
- BEGIN # NVF ALREADY NETTED ON #
- #
- GET A BUFFER FOR MESSAGE TO INFORM NVF
- #
- MGETS( LCRSLL + ABHSIZE + BLKHSIZE , BUFADDR , TRUE ) ;
- #
- SET UP APPLICATION HEADER
- #
- P<AHEADER> = BUFADDR + BLKHSIZE ;
- ABHABT[0] = APPCMD ;
- ABHACT[0] = CT60TRANS ;
- ABHTLC[0] = LCRSLL ;
- #
- SET-UP THE MESSAGE ITSELF
- #
- P<SUPMSG> = BUFADDR + ABHSIZE + BLKHSIZE ;
- # #
- PFCSFC[0] = CRSLL ;
- P<SMNVF> = P<SUPMSG> ;
- # #
- CRSLDN [0] = LLCBTN[0] ; # DESTINATION NODE NUMBER #
- CRSLSN [0] = LLCBHN[0] ; # SOURCE NODE NUMBER #
- CRSLST [0] = 0 ; # LOGICAL LINK DOWN SIGNAL #
- #
- AND LINK MESSAGE TO NVF
- #
- BLINK ( BUFADDR,ATACBA[NVFAN]) ; # QUEUE TO NVF #
- OSCHAPP (ATACBA[NVFAN]) ;
- END # NVF ALREADY NETTED ON #
- IF KDST[0]
- AND LLCBHN[0] NQ 0 # NOT INTRA-HOST LOGICAL LINK #
- AND LLCBTN[0] NQ 0
- THEN # DELETE LOGICAL LINK ENTRY FROM STATUS DISPLAY #
- BLDKWL(KST"LLK",LLCBKNDX[0],0,KDELIDVALUE);
- # #
- IF TNTNLL[IDXTN] EQ 1 # ONE LLCB EXISTS #
- THEN
- BEGIN
- MRELS(P<LLCB>); # RELEASE LLCB SPACE #
- IF IDXTN NQ 0
- THEN
- TNTWD[IDXTN] = 0; # CLEAR TNT ENTRY #
- ELSE
- BEGIN # ZEROETH ENTRY A-A LOGICAL LINK #
- TNTNLL[IDXTN] = 0;
- TNTLLAD[IDXTN] = 0;
- END
- END
- ELSE
- BEGIN
- SAVBP = LLCBBP[0]; # SAVE BACKWARD POINTER #
- SAVFP = LLCBFP[0]; # SAVE FORWARD POINTER #
- MRELS(P<LLCB>); # RELEASE LLCB SPACE #
- IF SAVBP EQ 0 # FIRST LLCB TO BE DELETED #
- THEN
- BEGIN
- TNTLLAD[IDXTN] = SAVFP; # UPDATE LLCB ADDRESS IN TNT #
- P<LLCB> = SAVFP; # MOVE TO THE FOLLOWING LLCB #
- LLCBBP[0] = 0; # CLEAR BACKWARD POINTER #
- END
- ELSE
- BEGIN
- IF SAVFP EQ 0 # LAST LLCB TO BE DELETED #
- THEN
- BEGIN
- P<LLCB> = SAVBP; # MOVE TO THE PREVIOUS LLCB #
- LLCBFP[0] = 0; # CLEAR FORWARD POINTER #
- END
- ELSE # NOT FIRST OR LAST LLCB TO BE DELETED #
- BEGIN
- P<LLCB> = SAVFP; # MOVE TO THE FOLLOWING LLCB #
- LLCBBP[0] = SAVBP; # UPDATE BACKWARD POINTER #
- P<LLCB> = SAVBP; # MOVE TO THE PREVIOUS LLCB #
- LLCBFP[0] = SAVFP; # UPDATE FORWARD POINTER #
- END
- END
- TNTNLL[IDXTN] = TNTNLL[IDXTN] - 1; # DECREMENT LINK NUMBER #
- END;
- GOTO RJMAIN; # RETURN TO CALLING PROGRAM #
- END # RELLLCB #
- TERM
cdc/nos2.source/nam5871/relllcb.txt ยท Last modified: 2023/08/05 17:23 by Site Administrator