cdc:nos2.source:nam5871:nvfscad
Table of Contents
NVFSCAD
Table Of Contents
- [00007] PROC NVFSCAD( AS )
- [00008] NVFSCAD - COMPLETE APPLICATION DEPARTURE.
- [00012] COMPLETE APPLICATION DEPARTURE.
- [00042] PROC ABORT
- [00043] PROC NVFUMQE
- [00044] PROC SSSAWR
- [00045] PROC SSTRTS
Source Code
- NVFSCAD.txt
- *DECK NVFSCAD
- USETEXT TEXTNVF
- USETEXT TXINNVF
- USETEXT TXSMNVF
- USETEXT TXTAPSS
- USETEXT TXTSUSS
- PROC NVFSCAD( AS );
- # TITLE NVFSCAD - COMPLETE APPLICATION DEPARTURE. #
- BEGIN # NVFSCAD #
- #
- ** NVFSCAD - COMPLETE APPLICATION DEPARTURE.
- *
- * S. H. FISCHER. 82/03/16.
- * A. LIM. 82/07/15.
- * A. LIM. 82/27/27.
- * C. BRION 83/04/12,83/10/20.
- *
- * THIS PROC SENDS NET/OFF/N AND FAIL/APPL/N SM S.
- * IF THE APPLICATION IS DOWN AND THE CONNECTION COUNTS ARE ZERO
- * THEN THE APPROPRIATE SM CAN BE SENT.
- * EACH PLACE THE CONNECTION COUNTS ARE DECREMENTED MUST CALL
- * THIS ROUTINE.
- *
- * ENTRY:
- * AS = AST INDEX FOR APPLICATION.
- * FLAGS IN AST ENTRY AST$DNF, AST$NON, AST$AFN SET AS NEEDED.
- *
- * EXIT:
- * NET/OFF/N OR FAIL/APPL/N SENT IF NEEDED.
- *
- #
- #
- **** PROC NVFSCAD XREF LIST.
- #
- XREF
- BEGIN
- PROC ABORT; # ABORT MACREL ROUTINE #
- PROC NVFUMQE; # TRANSFER SM OR TEXT TO QUEUE #
- PROC SSSAWR; # ACCEPT WORKLIST REQUEST #
- PROC SSTRTS; # SS - RELEASE TABLE SPACE #
- END
- #
- ****
- #
- ITEM AS I; # AST INDEX #
- ITEM FAILED$ B; # APPL FAILED INDICATOR #
- ITEM I I; # LOOP INDUCTION VARIABLE #
- ITEM MATCH B; # LOOP EXIT VARIABLE #
- ITEM PORD I; # PRIMARY AST ORDINAL #
- ITEM NETOFF$ B; # APPL NETOFF INDICATOR #
- ITEM SECFLAG B; # SECONDARY AST FLAG #
- CONTROL EJECT;
- #
- * INITIALIZE LOCAL FLAGS.
- * CHECK IF CONNECTIONS EXIST TO APPLICATION.
- #
- NETOFF$ = FALSE;
- FAILED$ = FALSE;
- SECFLAG = FALSE;
- #
- * CHECK IF THERE ARE NO OUTSTANDING T-A, A-A, OR RESERVED
- * CONNECTIONS FOR THE APPLICATION, OR, IF THE APPL HAS NETTED OFF
- * OR FAILED, CHECK IF THERE ARE NO OUTSTANDING T-A OR A-A
- * CONNECTIONS.
- #
- IF ((AST$TACN[AS] EQ 0) AND
- (AST$AACN[AS] EQ 0) AND
- (AST$RACN[AS] EQ 0))
- OR
- ((AST$NON[AS] OR AST$AFN[AS]) AND
- (AST$TACN[AS] EQ 0) AND
- (AST$AACN[AS] EQ 0))
- THEN
- BEGIN
- SPMSG0[1] = 0;
- IF AST$NON[AS]
- THEN
- BEGIN
- PFCSFC[1] = NETOFFN;
- NETAN[1] = AST$AN[AS];
- AST$DNF[AS] = FALSE;
- NVFUMQE( P<OTQ>, APSM[1], APPCMD, 0, LNETOFF );
- AST$JSN[AS] = " ";
- NETOFF$ = TRUE;
- AST$NON[AS] = FALSE;
- END
- IF AST$AFN[AS]
- THEN
- BEGIN
- PFCSFC[1] = FAIAPPN;
- FAILAN[1] = AST$AN[AS];
- AST$DNF[AS] = FALSE;
- NVFUMQE( P<OTQ>, APSM[1], APPCMD, 0, LAPPF );
- AST$JSN[AS] = " ";
- FAILED$ = TRUE;
- AST$AFN[AS] = FALSE;
- END
- #
- * CHECK IF SECONDARY APPLICATION. IF SO, CHECK IF ACTIVE AND IF SO,
- * DECREMENT THE NUMBER ACTIVE COPIES FOR THE PRIMARY AST ENTRY.
- * IF NOT ACTIVE, DECREMENT THE NUMBER PENDING COPIES OF THE PRIMARY
- * AST ENTRY AND RESET THE SECONDARY NETON PENDING FLAG.
- #
- IF AST$SANAM[AS] NQ AST$PANAM[AS]
- THEN
- BEGIN
- FOR PORD = 0 STEP 1 WHILE
- (PORD LS (ASTLNGTH/ASTSIZ$) AND
- (AST$PANAM[PORD] NQ AST$SANAM[AS]))
- DO
- BEGIN
- END
- $BEGIN
- IF PORD EQ (ASTLNGTH/ASTSIZ$)
- THEN
- ABORT;
- $END
- SECFLAG = TRUE;
- IF ((AST$AN[AS] NQ 0) AND
- (NETOFF$ OR FAILED$))
- THEN
- BEGIN
- AST$CUCOP[PORD] = AST$CUCOP[PORD] - 1;
- END
- ELSE IF AST$AN[AS] EQ 0
- THEN
- AST$SNPF[PORD] = FALSE;
- IF NETOFF$ OR FAILED$
- THEN
- BEGIN
- AST$AN[AS] = 0;
- AST$RACN[AS] = 0;
- END
- #
- * RELEASE THE SECONDARY AST TABLE ENTRY ONLY IF THE APPL
- * HAS NETTED OFF, FAILED OR NEVER CAME ACTIVE.
- #
- IF AST$AN[AS] EQ 0
- THEN
- BEGIN
- AS = AS * ASTSIZ$;
- SSTRTS(P<AST>,AS,ASTSIZ$);
- END
- END # IF AST$SANAM #
- #
- * ZERO THE APPLICATION NUMBER IF NETON OR FAIL SM SENT AND
- * NOT A SECONDARY APPLICATION ENTRY. ZERO THE NUMBER OF RESERVED
- * CONNECTIONS, AS THIS FIELD MAY NOT BE ZERO.
- #
- IF (NETOFF$ OR FAILED$) AND NOT SECFLAG
- THEN
- BEGIN
- AST$CUCOP[AS] = 0;
- AST$AN[AS] = 0;
- AST$RACN[AS] = 0;
- END
- #
- * IF IDLE/DISABLE HOST HAS BEEN INITIATED AND ALL APPLICATIONS HAVE
- * TERMINATED, COMPLETE NVF EXECUTION.
- #
- IF (NVFSTATE)
- THEN # IDLE/DISABLE HOST INITIATED #
- BEGIN
- MATCH = FALSE;
- FOR I = 0 STEP 1 WHILE (NOT MATCH)
- AND (I LS ASTLNGTH/ASTSIZ$)
- DO
- BEGIN
- IF (AST$AN[I] NQ 0)
- THEN
- BEGIN # STILL HAVE ACTIVE APPLICATION #
- MATCH = TRUE;
- END
- END
- IF (NOT MATCH)
- THEN # ALL APPLICATIONS TERMINATED #
- BEGIN
- SSSAWR(WWDF"NICNE"); # COMPLETE NVF EXECUTION #
- END
- END
- END
- END # NVFSCAD #
- TERM
cdc/nos2.source/nam5871/nvfscad.txt ยท Last modified: 2023/08/05 17:23 by Site Administrator