cdc:nos2.source:nam5871:nvftrlc
Table of Contents
NVFTRLC
Table Of Contents
- [00008] PROC NVFTRLC(PT,SMOUT,ERKOD)
- [00009] NVFTRLC - REFUSE LOAN CONNECTION REQUEST
- [00012] REFUSE LOAN CONNECTION REQUEST.
- [00042] PROC NVFUMQE
- [00043] PROC SSTRTS
- [00044] FUNC XSFW C(7)
Source Code
- NVFTRLC.txt
- *DECK NVFTRLC
- USETEXT TEXTSS
- USETEXT TEXTNVF
- USETEXT TXTANVF
- USETEXT TXSMNVF
- USETEXT TXTAPSS
- USETEXT TXTSUSS
- PROC NVFTRLC(PT,SMOUT,ERKOD);
- # TITLE - NVFTRLC - REFUSE LOAN CONNECTION REQUEST #
- BEGIN # NVFTRLC #
- #
- ** NVFTRLC - REFUSE LOAN CONNECTION REQUEST.
- *
- * C. BRION 83/11/02.
- *
- * THIS PROCEDURE IS RESPONSIBLE FOR RESTORING THE VCB BUFFER,
- * ISSUING A VCB WRITE REQUEST, ISSUING A CR/RCN/A SM OR CR/SWH/R
- * SM, RELEASING THE PTAC ENTRY SPACE IF RCN/A ISSUED AND RELEASING
- * THE SPTAC ENTRY SPACE IF IT EXISTS.
- *
- * NVFTRLC(PT,SMOUT,ERKOD)
- *
- * ENTRY:
- * PT = ENTRY ORDINAL OF PTAC
- * SMOUT = FLAG INDICATING WHETHER A CR/RCN/A OR CR/SWH/R SM
- * SHOULD BE ISSUED.
- * ERKOD = ERROR CODE THAT IS TO BE STORED INTO THE OUTGOING SM.
- *
- *
- * EXIT:
- * A CR/RCN/A OR CR/SWH/R SM WILL BE ISSUED. THE VCB WRITE REQUEST
- * MAY BE ISSUED, THE SPTAC TABLE ENTRY SPACE WILL BE RELEASED AND
- * THE PTAC MAY BE RELEASED.
- #
- CONTROL EJECT;
- #
- **** PROC NVFTRLC XREF LIST
- #
- XREF
- BEGIN
- PROC NVFUMQE; # MAKE QUEUE ENTRY #
- PROC SSTRTS; # SS-RELEASE TABLE SPACE #
- FUNC XSFW C(7); # SPACE FILL WORD #
- END
- #
- ****
- #
- ITEM ADDR I; # ADDRESS OF VCB WR REQ Q NTRY#
- ITEM ERKOD I; # ERROR CODE FOR SM OUT #
- ITEM I I; # LOOP VARAIABLE #
- ITEM LEN I; # LEN OF VCB WR REQ Q NTRY #
- ITEM PT I; # PTAC ENTRY ORDINAL #
- ITEM SMOUT B; # TYPE OF SM OUT INDICATOR #
- # TRUE = RCN, FALSE = SWH #
- #
- * IF CR/RCN/A IS TO BE SENT, SET THE CR/RCN/A FLAG IN THE PTAC
- * TABLE.
- #
- IF SMOUT
- THEN
- BEGIN
- PTA$RCNA[PT] = TRUE;
- #
- * CLEAR VCB BUFFER.
- #
- P<VCBBUF> = LOC(MSGBUF[0]);
- FOR I = 0 STEP 1 UNTIL VCBSIZ$
- DO
- BEGIN
- MSG$WORD[I] = 0;
- END
- #
- * RESTORE VCB FROM PTAC ENTRY.
- #
- VCB$CACA[0] = PTA$CACA[PT];
- VCB$ALIFAM[0] = PTA$ALIFAM[PT];
- VCB$FAMIND[0] = PTA$FAMIND[PT];
- VCB$ALIUSR[0] = PTA$ALIUSR[PT];
- VCB$USRIND[0] = PTA$USRIND[PT];
- VCB$ALIAPP[0] = PTA$ALIAPP[PT];
- VCB$APPIND[0] = PTA$APPIND[PT];
- VCB$VDSF[0] = PTA$VDSF[PT];
- VCB$PRIAN[0] = 0;
- VCB$RCNA[0] = PTA$RCNA[PT];
- VCB$LCF[0] = PTA$LCF[PT];
- VCB$TN[0] = PTA$TN[PT];
- VCB$HW[0] = PTA$HW[PT];
- VCB$VTP[0] = PTA$VTP[PT];
- VCB$ICF[0] = PTA$ICF[PT];
- VCB$ALIF[0] = PTA$ALIF[PT];
- VCB$VCB[0] = PTA$VCB[PT];
- VCB$NET[0] = PTA$NET[PT];
- VCB$CNTIME[0] = PTA$CNTIME[PT];
- VCB$SWTIME[0] = PTA$SWTIME[PT];
- VCB$FWORD[0] = PTA$FWORD[PT];
- VCB$UWORD[0] = PTA$UWORD[PT];
- VCB$DT[0] = PTA$DT[PT];
- VCB$TC[0] = PTA$TC[PT];
- VCB$AACN[0] = CRAACN[0];
- VCB$SWAPAN[0] = PTA$PRIAN[PT];
- VCB$UBZ[0] = PTA$UBZ[PT];
- VCB$XBZ[0] = PTA$XBZ[PT];
- VCB$DBZ[0] = PTA$DBZ[PT];
- VCB$SDT[0] = PTA$SDT[PT];
- VCB$DO[0] = PTA$DO[PT];
- VCB$SL[0] = PTA$SL[PT];
- #
- * ISSUE VCB WRITE REQUEST.
- #
- ADDR = PTA$VCB[PT];
- LEN = VCBSIZ$ * 10;
- NVFUMQE(P<VRQ>,VCBBUF[0],0,ADDR,LEN);
- END
- #
- * RELEASE SPTAC TABLE SPACE IF IT EXISTS.
- #
- IF PTA$SPTAC[PT]
- THEN
- BEGIN
- FOR I = 0 STEP SPT$ESIZE[I] WHILE
- ((I LS SPTACL) AND (SPT$VCB[I] NQ PTA$VCB[PT]))
- DO
- BEGIN
- END
- IF I LS SPTACL
- THEN
- BEGIN
- SSTRTS(P<SPTAC>,I,SPT$ESIZE[I]);
- END
- END
- #
- * CLEAR THE OUTGOING SM AREA.
- #
- FOR I = 0 STEP 1 UNTIL MSBFNVL
- DO
- BEGIN
- MSG$WORD[I] = 0;
- END
- #
- * ISSUE EITHER A CR/SWH OR CR/RCN/A SM.
- #
- IF SMOUT
- THEN
- BEGIN
- #
- * CR/RCN/A TO BE SENT.
- #
- PFCSFC[1] = CRRCN;
- ADDR = 0;
- LEN = 1;
- EB[1] = TRUE;
- CRRRCN[1] = ERKOD;
- CRACN[1] = PTA$ACN[PT];
- NVFUMQE(P<CTQ>,APSM[1],APPPR$,ADDR,LEN);
- #
- * RELEASE PTAC ENTRY SPACE.
- #
- PT = PT * PTACSIZ$;
- SSTRTS(P<PTAC>,PT,PTACSIZ$);
- END
- ELSE
- BEGIN
- #
- * CR/SWH/R SM TO BE SENT.
- #
- CRSAHMT[1] = PTA$AHMT[PT];
- CRSAHDS[1] = PTA$AHDS[PT];
- CRSAAWC[1] = PTA$AAWC[PT];
- CRSATWD[1] = PTA$ATWD[PT];
- CRSWOCN[1] = PTA$OCN[PT];
- PFCSFC[1] = CRSWH;
- CRNACN[1] = PTA$ACN[PT];
- CRABL[1] = PTA$ABL[PT];
- CRSWSDT[1] = PTA$SDT[PT];
- CRDT[1] = PTA$DT[PT];
- CRSWTC[1] = PTA$TC[PT];
- CRSWIC[1] = PTA$ICF[PT];
- CRSWORD[1] = PTA$DO[PT];
- CRSTNAM[1] = XSFW(PTA$TN[PT]);
- CRSWPW[1] = PTA$PW[PT];
- CRSWPL[1] = PTA$PL[PT];
- CRSWSL[1] = PTA$SL[PT];
- CRSWDBZ[1] = PTA$DBZ[PT];
- CRSWXBZ[1] = PTA$XBZ[PT];
- CRSWUBZ[1] = PTA$UBZ[PT];
- CRSWHW[1] = PTA$HW[PT];
- CRSWVTP[1] = PTA$VTP[PT];
- CRSWAN[1] = PTA$PRIAN[PT];
- CRSWFAM[1] = XSFW(PTA$FNAM[PT]);
- CRSWFO[1] = PTA$FORD[PT];
- CRSWUN[1] = XSFW(PTA$UNUM[PT]);
- CRSWUI[1] = PTA$UIDX[PT];
- CRSWLST[1] = ERKOD;
- #
- * CLEAR ACN FIELD OF PTAC ENTRY AS ACN COULD BE REUSED AFTER A
- * CR/SWH REQUEST IS ISSUED.
- #
- PTA$ACN[PT] = 0;
- NVFUMQE(P<CTQ>,APSM[1],APPPR$,0,LCRSWH);
- END
- END # NVFTRLC #
- TERM
cdc/nos2.source/nam5871/nvftrlc.txt ยท Last modified: 2023/08/05 17:23 by Site Administrator