User Tools

Site Tools


cdc:nos2.source:nam5871:nvftpvd

NVFTPVD

Table Of Contents

  • [00004] PROC NVFTPVD1)
1)
VCB),(AN),PT)
  • [00005] NVFTPVD - PREPARE TO RECEIVE VCB DATA
  • [00009] PREPARE TO RECEIVE VCB DATA.
  • [00042] PROC ABORT
  • [00043] PROC MESSAGE
  • [00044] PROC NVFUMQE
  • [00045] PROC SSTATS
</WRAP> === Source Code ===
NVFTPVD.txt
  1. *DECK NVFTPVD
  2. USETEXT TEXTNVF
  3.  
  4. PROC NVFTPVD((VCB),(AN),PT);
  5. # TITLE NVFTPVD - PREPARE TO RECEIVE VCB DATA #
  6.  
  7. BEGIN # NVFTPVD #
  8. #
  9. ** NVFTPVD - PREPARE TO RECEIVE VCB DATA.
  10. *
  11. * E. THAVIKULWAT 81/11/09
  12. * C. BRION 83/05/10
  13. *
  14. * THIS PROCEDURE'S MAIN FUNCTION IS TO PREPARE TABLES TO RECEIVE
  15. * VCB DATA BY ALLOCATING SPACE FOR A NEW *PTAC* ENTRY AND SETTING
  16. * UP THE VCB READ REQUEST. IT IS CALLED INTO EXECUTION BY THE
  17. * FOLLOWING PROCEDURES:
  18. * *NVFTCB* *NVFTRCN*
  19. *
  20. * PROC NVFTPVD((VCB),(AN),(PT))
  21. *
  22. * ENTRY:
  23. * VCB = VCB ORDINAL
  24. * AN = APPLICATION NUMBER
  25. *
  26. * EXIT:
  27. * PT = INDEX TO NEW PTAC ENTRY.
  28. * VCB READ REQUEST ENTERED IN *VRQ* QUEUE.
  29. *
  30. * METHOD:
  31. * CALL *SSTATS* TO ALLOCATE SPACE FOR A NEW *PTAC* ENTRY.
  32. * DECREMENT T-A CONNECTION COUNT AND MAKE VCB READ REQUEST ENTRY
  33. * IN *VRQ* QUEUE.
  34. #
  35.  
  36. #
  37. **** PROC NVFTPVD - XREF LIST.
  38. #
  39.  
  40. XREF
  41. BEGIN
  42. PROC ABORT; # ABORT JOB #
  43. PROC MESSAGE; # SEND MESSAGE TO SYSTEM AND USER DAYFILE #
  44. PROC NVFUMQE; # TRANSFER TEXT TO QUEUE #
  45. PROC SSTATS; # ALLOCATE TABLE SPACE #
  46. END
  47.  
  48. #
  49. ****
  50. #
  51.  
  52. ITEM AN I; # APPLICATION NUMBER #
  53. ITEM DUMBUF I; # DUMMY TEXT AREA #
  54. ITEM I I; # LOOP VARIABLE #
  55. ITEM MATCH B; # EXIT LOOP VARIABLE #
  56. ITEM NENTRY I; # NUMBER OF ENTRIES IN TABLE #
  57. ITEM PT I; # SUBSCRIPT FOR ARRAY PTAC #
  58. ITEM VCB I; # VCB ORDINAL #
  59. #
  60. * FOLLOWING ARRAY CONTAINS MESSAGE ISSUED TO THE DAYFILE UPON NOT
  61. * FINDING AN EXPECTED AST ENTRY.
  62. #
  63. ARRAY DAYMSG[00:00] S(5);
  64. BEGIN
  65. ITEM DAY$MSG1 C(00,00,26) = ["NVFTPVD - CANNOT FIND AST "];
  66. ITEM DAY$MSG2 C(02,36,17) = ["ENTRY FOR TERMNAM"];
  67. ITEM DAY$TNAME C(03,36,07); # TERMINAL NAME #
  68. END
  69. #
  70. * THE FOLLOWING BASED ARRAY POINTER POINTS TO THE NEW PTAC ENTRY.
  71. #
  72. BASED ARRAY BPTAC[00:00] S(1);
  73. BEGIN
  74. ITEM BPT$WORD U(00,00,60); # FULL WORD REFERENCE #
  75. END
  76.  
  77. #
  78. * ALLOCATE SPACE FOR A NEW PTAC ENTRY.
  79. #
  80. PT = PTALNGTH / PTACSIZ$; # CALCULATE NEW PTAC ENTRY ORD #
  81. SSTATS(P<PTAC>,PTACSIZ$); # ALLOC SPACE FOR PTAC ENTRY #
  82. #
  83. * CLEAR NEW PTAC BUFFER.
  84. #
  85. P<BPTAC> = LOC(PTAC[PT]); # POINTS TO NEW PTAC ENTRY #
  86. FOR I = 0 STEP 1 UNTIL (PTACSIZ$ - 1)
  87. DO
  88. BEGIN
  89. BPT$WORD[I] = 0;
  90. END
  91. #
  92. * GET *AST* ENTRY THAT MATCHES ON APPLICATION NUMBER AND DECREMENT
  93. * T-A CONNECTION COUNT.
  94. #
  95. MATCH = FALSE;
  96. NENTRY = ASTLNGTH / ASTSIZ$;
  97. FOR I = 0 STEP 1 WHILE (NOT MATCH AND I LS NENTRY)
  98. DO
  99. BEGIN
  100. IF AST$AN[I] EQ AN
  101. THEN # FOUND AST ENTRY #
  102. BEGIN
  103. PTA$SWTAPP[PT] = AST$ANAM[I]; # SAVE PREVIOUS APPL NAME #
  104. MATCH = TRUE; # EXIT LOOP #
  105. END
  106. END
  107.  
  108. IF NOT MATCH
  109. THEN
  110. BEGIN
  111. DAY$TNAME[0] = PTA$TN[PT];
  112. MESSAGE(DAYMSG,0); # MSG TO SYSTEM AND USR DAYFILE #
  113. ABORT;
  114. END
  115. #
  116. * MAKE READ VCB FILE REQUEST ENTRY IN *VRQ* QUEUE.
  117. #
  118. NVFUMQE(P<VRQ>,DUMBUF,1,VCB,0); # READ VCB REQUEST TO *VRQ* #
  119.  
  120. END # END NVFTPVD #
  121.  
  122. TERM
cdc/nos2.source/nam5871/nvftpvd.txt · Last modified: 2023/08/05 17:23 by Site Administrator