cdc:nos2.source:nam5871:nvfarvd
Table of Contents
NVFARVD
Table Of Contents
- [00009] PROC NVFARVD
- [00010] NVFARVD - RECEIVE A-A VCB DATA
- [00014] RECEIVE A-A VCB DATA.
- [00049] PROC NVFUMQE
- [00050] PROC SSTRTS
- [00051] PROC NVFAIAM
- [00052] PROC NVFSCAD
- [00053] PROC NVFUFVO
- [00054] PROC NVFACTC
- [00055] PROC MESSAGE
- [00056] PROC ABORT
Source Code
- NVFARVD.txt
- *DECK NVFARVD
- USETEXT TEXTNVF
- USETEXT TEXTSS
- USETEXT TXTSUSS
- USETEXT TXTANVF
- USETEXT TXSMNVF
- USETEXT TXTAPSS
- PROC NVFARVD;
- # TITLE NVFARVD - RECEIVE A-A VCB DATA #
- BEGIN # NVFARVD #
- #
- ** NVFARVD - RECEIVE A-A VCB DATA.
- *
- * C. BRION 83/01/03, 83/02/18, 83/05/10, 83/12/12.
- *
- * THIS PROCEDURE PROCESSES THE VCB DATA RETURNED FROM A VCB READ
- * REQUEST FOR A-A CONNECTIONS.
- *
- * PROC NVFARVD
- *
- * ENTRY:
- * THE VCB DATA RESIDES IN MSGBUF.
- *
- * EXIT:
- * TWO DIFFERENT POSSIBLE EXIT CONDITIONS EXIST BASED ON THE
- * STATE OF THE PAAC AND VCB ENTRIES.
- *
- * IN BOTH CASES:
- * AN AEAA ACCOUNTING MESSAGE IS ISSUED.
- * APPLICATION DEPARTURE PROCESSING IS PERFORMED.
- * THE NUMBER OF A-A CONNECTIONS FOR THE APPLICATION IS
- * DECREMENTED.
- *
- * IF THE TERMINATION IS DUE TO A RECONNECT, THEN A CR/TRM/R SM
- * IS ISSUED. THE PAAC ENTRY, VCB ORDINAL AND ACTIVE PID TABLE
- * SPACE ARE RELEASED VIA A CALL TO NVFACTC.
- #
- CONTROL EJECT;
- #
- **** PROC NVFARVD - XREF LIST.
- #
- XREF
- BEGIN
- PROC NVFUMQE; # MAKE QUEUE ENTRY #
- PROC SSTRTS; # SS-RELEASE TABLE SPACE #
- PROC NVFAIAM; # ISSUE A-A ACCOUNT MSG #
- PROC NVFSCAD; # COMPLETE APPL DEPARTURE #
- PROC NVFUFVO; # FREE VCB ORDINAL #
- PROC NVFACTC; # CLEANUP TERMINATING CONN #
- PROC MESSAGE; # MESSAGE TO DAYFILE #
- PROC ABORT;
- END
- #
- ****
- #
- ITEM ASENTRY I; # NUMBER AST ENTRIES #
- ITEM NENTRY I; # NUMBER VARIABLE #
- ITEM PAC I; # PAAC ENTRY INDEX #
- ITEM SAVESTATE I; # PAAC STATE #
- ITEM VCBSTATE I; # VCB STATE #
- ITEM AORD I; # APPL AST ORDINAL #
- ITEM MTYP I; # ACCOUNT MSG TYPE #
- ITEM SAVEACN I; # LOCAL ACN SAVE VARIABLE #
- ITEM SAVERC I; # REASON CODE LOCAL #
- ITEM PORD I; # PRIMARY AST ORDINAL #
- ITEM VCBREL B; # VCB RELEASE FLAG #
- CONTROL EJECT;
- #
- * NVFARVD PROCEDURE START
- #
- #
- * SET VCB RELEASE FLAG TRUE.
- * SET VCB BUFFER TEMPLATE.
- * LOCATE PAAC ENTRY USING VCB ORDINAL AS KEY.
- #
- VCBREL = TRUE;
- P<VCBBUF> = LOC(MSGBUF[0]);
- NENTRY = PACLNGTH / PAACSIZ$;
- FOR PAC = 0 STEP 1 WHILE (PA$VCB[PAC] NQ VCB$VCB[0]
- AND PAC LS NENTRY)
- DO
- BEGIN
- END
- #
- * LOCATE THE AST ENTRY OF THIS PAAC ENTRY.
- #
- ASENTRY = ASTLNGTH/ASTSIZ$;
- FOR AORD = 0 STEP 1 WHILE
- (AORD LS ASENTRY AND
- AST$PANAM[AORD] NQ PA$SWAP[PAC])
- DO
- BEGIN
- END
- #
- * CHECK FOR PRIMARY AST ENTRY IF SECONDARY AST ORDINAL.
- #
- PORD = AORD;
- IF AST$PANAM[AORD] NQ AST$SANAM[AORD]
- THEN
- BEGIN
- FOR PORD = 0 STEP 1 WHILE
- (PORD LS ASENTRY) AND
- (AST$SANAM[AORD] NQ AST$PANAM[PORD])
- DO
- BEGIN
- END
- IF PORD EQ ASENTRY
- THEN
- PORD = AORD;
- END
- #
- * SAVE THE PAAC STATE LOCALLY.
- #
- SAVESTATE = PA$STATE[PAC];
- SAVEACN = PA$NACN[PAC];
- SAVERC = PA$IAPRC[PAC];
- #
- * MOVE THE VCB INFO INTO THE PAAC ENTRY.
- #
- PA$TIMWRD[PAC] = VCB$WRD1[0];
- PA$FWORD[PAC] = VCB$WRD2[0];
- PA$UWORD[PAC] = VCB$WRD4[0];
- PA$RHWRD[PAC] = VCB$WRD3[0];
- PA$VCB[PAC] = VCB$VCB[0];
- PA$PORT[PAC] = VCB$APORT[0];
- PA$SWAPAN[PAC] = VCB$ASWAPAN[0];
- PA$SWAP[PAC] = VCB$ASWAP[0];
- PA$SL[PAC] = VCB$ASL[0];
- PA$STATE[PAC] = VCB$ASTATE[0];
- PA$IAPRC[PAC] = VCB$AIAPRC[0];
- PA$NUMOUT[PAC] = VCB$ANUMOUT[0];
- PA$SNODE[PAC] = VCB$ASNODE[0];
- PA$DNOD[PAC] = VCB$ADNOD[0];
- PA$DT[PAC] = VCB$ADT[0];
- PA$ICMCN[PAC] = VCB$ICMCN[0];
- #
- * RESTORE THE PAAC STATE.
- #
- PA$STATE[PAC] = SAVESTATE;
- #
- * ISSUE AEAA ACCOUNT MESSAGE.
- #
- MTYP = AEAA$;
- NVFAIAM(PAC,MTYP);
- #
- * DECREMENT NUMBER OF CONNECTIONS TO SEC AST ENTRY.
- * COMPLETE APPL DEPARTURE FOR SEC AST ENTRY.
- #
- AST$AACN[AORD] = AST$AACN[AORD] - 1;
- IF PA$ICMCN[PAC]
- THEN
- BEGIN
- AST$ICCN[AORD] = AST$ICCN[AORD] - 1;
- END
- NVFSCAD(AORD);
- #
- * CHECK IF SECONDARY AST ENTRY. IF SO, DECREMENT NUMBER OF
- * CONNECTIONS FOR PRIMARY AND COMPLETE APPLICATION DEPARTURE.
- #
- IF AORD NQ PORD
- THEN
- BEGIN
- AST$AACN[PORD] = AST$AACN[PORD] - 1;
- IF PA$ICMCN[PAC]
- THEN
- BEGIN
- AST$AACN[PORD] = AST$AACN[PORD] - 1;
- END
- NVFSCAD(PORD);
- END
- #
- * FOR RECONNECT STATES, A CR/TRM/R SM MUST BE ISSUED.
- #
- IF SAVESTATE EQ PAACST"PARCN"
- THEN
- BEGIN
- SPMSG0[1] = 0;
- CRACN[1] = SAVEACN;
- RC[1] = SAVERC;
- PFCSFC[1] = CRTRM;
- NVFUMQE(P<CTQ>,APSM[1],APPPR$,0,LCRTRM);
- END
- #
- * RELEASE PAC ENTRY, ACPID TABLE ENTRY AND VCB VIA NVFACTC CALL.
- #
- NVFACTC(PAC,VCBREL);
- END # NVFARVD #
- TERM
cdc/nos2.source/nam5871/nvfarvd.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator