cdc:nos2.source:nam5871:nvfaacc
Table of Contents
NVFAACC
Table Of Contents
- [00007] PROC NVFAACC
- [00008] NVFAACC - A-A PROCESS CR/ACC SMS.
- [00012] PROCESS CR/ACC SMS FOR A-A.
- [00041] PROC NVFUMQE
- [00042] PROC NVFAIAM
- [00043] PROC SSTRTS
- [00044] PROC ABORT
- [00045] PROC SSTATS
- [00046] PROC MESSAGE
- [00047] PROC MOVE
- [00048] PROC NVFACTC
- [00064] CLEARVCB - ARRAY FOR CLEARING VCB AREA .
Source Code
- NVFAACC.txt
- *DECK NVFAACC
- USETEXT TEXTSS
- USETEXT TEXTNVF
- USETEXT TXSMNVF
- USETEXT TXTAPSS
- USETEXT TXTANVF
- PROC NVFAACC;
- # TITLE NVFAACC - A-A PROCESS CR/ACC SMS. #
- BEGIN #NVFAACC#
- #
- ** NVFAACC - PROCESS CR/ACC SMS FOR A-A.
- *
- * C. BRION 82/09/25, 83/12/12.
- *
- * THE FUNCTION OF THIS PROCEDURE IS PROCESS THE CR/ACC SMS. THE
- * PROCESSING OF THE CR/ACC COMPLETES THE SWITCHING OF AN A-A
- * CONNECTION TO THE APPLICATION.
- *
- * PROC NVFAACC
- *
- * ENTRY:
- *
- * THE CR/ACC SM IS IN MSGBUF AND THE WORD COUNT AND BLOCK HEADER
- * WORDS ARE IN WCBUF AND ABHBUF RESPECTIVELY.
- *
- * EXIT:
- *
- * THE VCB FILE ENTRY IS MADE.
- * THE ABAC OR ABAA ACCOUNT MSGS ARE ISSUED.
- * THE PAAC ENTRY AND ACPID TABLE SPACE IS RELEASED VIA NVFACTC
- * CALL.
- #
- #
- **** PROC NVFAACC XREF LIST
- #
- XREF
- BEGIN
- PROC NVFUMQE; # MAKE QUEUE ENTRY #
- PROC NVFAIAM; # ISSUE A-A ACCOUNT MSG #
- PROC SSTRTS; # SS-RELEASE TABLE SPACE #
- PROC ABORT;
- PROC SSTATS; # SS-ALLOCATE TABLE SPACE #
- PROC MESSAGE; # ISSUE DAYFILE MESSAGE #
- PROC MOVE; # MACREL MOVE WORD #
- PROC NVFACTC; # CLEANUP TERM CONNECTION #
- END
- #
- ****
- #
- ITEM PAC I; # PAAC ENTRY INDEX #
- ITEM NENTRY I; # NUMBER PAAC ENTRIES #
- ITEM VCB I; # LOCAL VCB VAR #
- ITEM I I; # LOOP VAR #
- ITEM LEN I; # LENGTH OF VCB IN CHAR #
- ITEM MTYP I; # ACCOUNT MSG TYPE #
- ITEM VCBREL B; # VCB RELEASE FLAG #
- #
- ** CLEARVCB - ARRAY FOR CLEARING VCB AREA .
- #
- BASED ARRAY CLEARVCB [00:00] S(1);
- BEGIN
- ITEM CLE$WORD U(00,00,60);
- END
- $BEGIN
- #
- * NOPAC - NO PAAC ENTRY WAS FOUND.
- #
- ARRAY NOPAC [00:00] S(4);
- BEGIN
- ITEM NO$MSG C(00,00,32) =
- [" NVFAACC: PAAC ENTRY NOT FOUND."];
- ITEM NO$ZERO U(03,12,48) = [0];
- END
- $END
- #
- * **** PROC NVFAACC ENTRY START ****
- #
- #
- LOCATE THE PAAC ENTRY WITH SAME VCB ORDINAL AS IN THE CR/ACC SM.
- FIRST CALCULATE NUMBER OF PAAC ENTRIES FOR SEARCH LIMIT.
- #
- NENTRY = PACLNGTH / PAACSIZ$;
- FOR PAC = 0 STEP 1 WHILE
- ((PAC LS NENTRY) AND
- (PA$VCB[PAC] NQ CRVCB[0]))
- DO
- BEGIN
- END
- $BEGIN
- #
- * IF PAAC ENTRY NOT FOUND, SERIOUS ERROR, ABORT NVF.
- #
- IF PAC EQ NENTRY
- THEN
- BEGIN
- MESSAGE(NOPAC,0);
- ABORT;
- END
- $END
- #
- OTHERWISE CONTINUE BY SAVING VCB ORDINAL LOCALLY, AND THEN DETER-
- MINE THE SWITCH TIME.
- THE VCB WILL THEN HAVE TO BE SET UP FOR WRITING TO THE VCB FILE.
- CLEAR THE VCB BUFFER AND SET UP.
- #
- VCB = PA$VCB[PAC];
- PA$SWTIME[PAC] = CTM$PDT[0];
- P<CLEARVCB> = LOC(MSGBUF[LCRACC]);
- P<VCBBUF> = LOC(MSGBUF[LCRACC]);
- FOR I = 0 STEP 1 UNTIL (VCBSIZ$ - 1)
- DO
- BEGIN
- CLE$WORD[I] = 0;
- END
- #
- * DEPENDING ON THE STATE OF THE PAAC, SET THE ACCOUNT MESSAGE
- * TYPE AND THE VCB STATE.
- #
- IF PA$STATE[PAC] EQ PAACST"PAIAP"
- THEN
- BEGIN
- MTYP = ABAA$;
- PA$VSTATE[PAC] = PAACST"PAISWT";
- END
- ELSE
- BEGIN
- MTYP = ABAC$;
- PA$VSTATE[PAC] = PAACST"PARSWT";
- END
- #
- * SEND THE ACCOUNT MESSAGE VIA CALL TO NVFAIAM.
- #
- NVFAIAM(PAC,MTYP);
- #
- SAVE INFO IN THE VCB BUFFER.
- #
- VCB$ATN[0] = "AACON ";
- VCB$ACNAA[0] = CRAACN[0];
- VCB$APORT[0] = PA$PORT[PAC];
- VCB$AVCB[0] = PA$VCB[PAC];
- VCB$WRD1[0] = PA$TIMWRD[PAC];
- VCB$WRD2[0] = PA$FWORD[PAC];
- VCB$WRD3[0] = PA$RHWRD[PAC];
- VCB$WRD4[0] = PA$UWORD[PAC];
- VCB$ASWAPAN[0] = PA$SWAPAN[PAC];
- VCB$ASWAP[0] = PA$SWAP[PAC];
- VCB$ASL[0] = PA$SL[PAC];
- VCB$ASTATE[0] = PA$STATE[PAC];
- VCB$AIAPRC[0] = PA$IAPRC[PAC];
- VCB$ANUMOUT[0] = PA$NUMOUT[PAC];
- VCB$ASNODE[0] = PA$SNODE[PAC];
- VCB$ADNOD[0] = PA$DNOD[PAC];
- VCB$AVSTATE[0] = PA$VSTATE[PAC];
- VCB$ADT[0] = PA$DT[PAC];
- VCB$ICMCN[0] = PA$ICMCN[PAC];
- #
- ISSUE VCB WRITE REQUEST.
- #
- LEN = VCBSIZ$ * 10;
- NVFUMQE(P<VRQ>,VCBBUF[0],0,VCB,LEN);
- #
- * RELEASE ACPID ENTRY SPACE AND PAAC ENTRY VIA CALL
- * TO NVFACTC. NOTE VCB NOT RELEASED.
- #
- VCBREL = FALSE;
- NVFACTC(PAC,VCBREL);
- ENDEXIT:
- END #NVFAACC#
- TERM
cdc/nos2.source/nam5871/nvfaacc.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator