User Tools

Site Tools


cdc:nos2.source:nam5871:nvfaacc

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
  1. *DECK NVFAACC
  2. USETEXT TEXTSS
  3. USETEXT TEXTNVF
  4. USETEXT TXSMNVF
  5. USETEXT TXTAPSS
  6. USETEXT TXTANVF
  7. PROC NVFAACC;
  8. # TITLE NVFAACC - A-A PROCESS CR/ACC SMS. #
  9. BEGIN #NVFAACC#
  10.  
  11. #
  12. ** NVFAACC - PROCESS CR/ACC SMS FOR A-A.
  13. *
  14. * C. BRION 82/09/25, 83/12/12.
  15. *
  16. * THE FUNCTION OF THIS PROCEDURE IS PROCESS THE CR/ACC SMS. THE
  17. * PROCESSING OF THE CR/ACC COMPLETES THE SWITCHING OF AN A-A
  18. * CONNECTION TO THE APPLICATION.
  19. *
  20. * PROC NVFAACC
  21. *
  22. * ENTRY:
  23. *
  24. * THE CR/ACC SM IS IN MSGBUF AND THE WORD COUNT AND BLOCK HEADER
  25. * WORDS ARE IN WCBUF AND ABHBUF RESPECTIVELY.
  26. *
  27. * EXIT:
  28. *
  29. * THE VCB FILE ENTRY IS MADE.
  30. * THE ABAC OR ABAA ACCOUNT MSGS ARE ISSUED.
  31. * THE PAAC ENTRY AND ACPID TABLE SPACE IS RELEASED VIA NVFACTC
  32. * CALL.
  33. #
  34.  
  35. #
  36. **** PROC NVFAACC XREF LIST
  37. #
  38.  
  39. XREF
  40. BEGIN
  41. PROC NVFUMQE; # MAKE QUEUE ENTRY #
  42. PROC NVFAIAM; # ISSUE A-A ACCOUNT MSG #
  43. PROC SSTRTS; # SS-RELEASE TABLE SPACE #
  44. PROC ABORT;
  45. PROC SSTATS; # SS-ALLOCATE TABLE SPACE #
  46. PROC MESSAGE; # ISSUE DAYFILE MESSAGE #
  47. PROC MOVE; # MACREL MOVE WORD #
  48. PROC NVFACTC; # CLEANUP TERM CONNECTION #
  49. END
  50.  
  51. #
  52. ****
  53. #
  54.  
  55. ITEM PAC I; # PAAC ENTRY INDEX #
  56. ITEM NENTRY I; # NUMBER PAAC ENTRIES #
  57. ITEM VCB I; # LOCAL VCB VAR #
  58. ITEM I I; # LOOP VAR #
  59. ITEM LEN I; # LENGTH OF VCB IN CHAR #
  60. ITEM MTYP I; # ACCOUNT MSG TYPE #
  61. ITEM VCBREL B; # VCB RELEASE FLAG #
  62.  
  63. #
  64. ** CLEARVCB - ARRAY FOR CLEARING VCB AREA .
  65. #
  66.  
  67. BASED ARRAY CLEARVCB [00:00] S(1);
  68. BEGIN
  69. ITEM CLE$WORD U(00,00,60);
  70. END
  71.  
  72. $BEGIN
  73. #
  74. * NOPAC - NO PAAC ENTRY WAS FOUND.
  75. #
  76. ARRAY NOPAC [00:00] S(4);
  77. BEGIN
  78. ITEM NO$MSG C(00,00,32) =
  79. [" NVFAACC: PAAC ENTRY NOT FOUND."];
  80. ITEM NO$ZERO U(03,12,48) = [0];
  81. END
  82.  
  83. $END
  84.  
  85.  
  86. #
  87. * **** PROC NVFAACC ENTRY START ****
  88. #
  89.  
  90. #
  91.   LOCATE THE PAAC ENTRY WITH SAME VCB ORDINAL AS IN THE CR/ACC SM.
  92.   FIRST CALCULATE NUMBER OF PAAC ENTRIES FOR SEARCH LIMIT.
  93. #
  94.  
  95. NENTRY = PACLNGTH / PAACSIZ$;
  96. FOR PAC = 0 STEP 1 WHILE
  97. ((PAC LS NENTRY) AND
  98. (PA$VCB[PAC] NQ CRVCB[0]))
  99. DO
  100. BEGIN
  101. END
  102.  
  103. $BEGIN
  104.  
  105. #
  106. * IF PAAC ENTRY NOT FOUND, SERIOUS ERROR, ABORT NVF.
  107. #
  108.  
  109. IF PAC EQ NENTRY
  110. THEN
  111. BEGIN
  112. MESSAGE(NOPAC,0);
  113. ABORT;
  114. END
  115. $END
  116. #
  117.   OTHERWISE CONTINUE BY SAVING VCB ORDINAL LOCALLY, AND THEN DETER-
  118.   MINE THE SWITCH TIME.
  119.  
  120.   THE VCB WILL THEN HAVE TO BE SET UP FOR WRITING TO THE VCB FILE.
  121.   CLEAR THE VCB BUFFER AND SET UP.
  122. #
  123.  
  124. VCB = PA$VCB[PAC];
  125. PA$SWTIME[PAC] = CTM$PDT[0];
  126. P<CLEARVCB> = LOC(MSGBUF[LCRACC]);
  127. P<VCBBUF> = LOC(MSGBUF[LCRACC]);
  128.  
  129. FOR I = 0 STEP 1 UNTIL (VCBSIZ$ - 1)
  130. DO
  131. BEGIN
  132. CLE$WORD[I] = 0;
  133. END
  134.  
  135. #
  136. * DEPENDING ON THE STATE OF THE PAAC, SET THE ACCOUNT MESSAGE
  137. * TYPE AND THE VCB STATE.
  138. #
  139.  
  140. IF PA$STATE[PAC] EQ PAACST"PAIAP"
  141. THEN
  142. BEGIN
  143. MTYP = ABAA$;
  144. PA$VSTATE[PAC] = PAACST"PAISWT";
  145. END
  146. ELSE
  147. BEGIN
  148. MTYP = ABAC$;
  149. PA$VSTATE[PAC] = PAACST"PARSWT";
  150. END
  151.  
  152. #
  153. * SEND THE ACCOUNT MESSAGE VIA CALL TO NVFAIAM.
  154. #
  155.  
  156. NVFAIAM(PAC,MTYP);
  157.  
  158.  
  159. #
  160.   SAVE INFO IN THE VCB BUFFER.
  161. #
  162. VCB$ATN[0] = "AACON ";
  163. VCB$ACNAA[0] = CRAACN[0];
  164. VCB$APORT[0] = PA$PORT[PAC];
  165. VCB$AVCB[0] = PA$VCB[PAC];
  166. VCB$WRD1[0] = PA$TIMWRD[PAC];
  167. VCB$WRD2[0] = PA$FWORD[PAC];
  168. VCB$WRD3[0] = PA$RHWRD[PAC];
  169. VCB$WRD4[0] = PA$UWORD[PAC];
  170. VCB$ASWAPAN[0] = PA$SWAPAN[PAC];
  171. VCB$ASWAP[0] = PA$SWAP[PAC];
  172. VCB$ASL[0] = PA$SL[PAC];
  173. VCB$ASTATE[0] = PA$STATE[PAC];
  174. VCB$AIAPRC[0] = PA$IAPRC[PAC];
  175. VCB$ANUMOUT[0] = PA$NUMOUT[PAC];
  176. VCB$ASNODE[0] = PA$SNODE[PAC];
  177. VCB$ADNOD[0] = PA$DNOD[PAC];
  178. VCB$AVSTATE[0] = PA$VSTATE[PAC];
  179. VCB$ADT[0] = PA$DT[PAC];
  180. VCB$ICMCN[0] = PA$ICMCN[PAC];
  181.  
  182.  
  183. #
  184.   ISSUE VCB WRITE REQUEST.
  185. #
  186.  
  187. LEN = VCBSIZ$ * 10;
  188. NVFUMQE(P<VRQ>,VCBBUF[0],0,VCB,LEN);
  189.  
  190. #
  191. * RELEASE ACPID ENTRY SPACE AND PAAC ENTRY VIA CALL
  192. * TO NVFACTC. NOTE VCB NOT RELEASED.
  193. #
  194. VCBREL = FALSE;
  195. NVFACTC(PAC,VCBREL);
  196.  
  197. ENDEXIT:
  198.  
  199. END #NVFAACC#
  200. TERM
  201.  
  202.  
cdc/nos2.source/nam5871/nvfaacc.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator