User Tools

Site Tools


cdc:nos2.source:nam5871:nfob1

Table of Contents

NFOB1

Table Of Contents

  • [00011] PROC NFOB1(BUFADD)
  • [00057] PROC LOCLLCB
  • [00058] PROC MGETS
  • [00059] PROC MRELS
  • [00060] PROC OVLCALL
  • [00061] PROC XTRACE

Source Code

NFOB1.txt
  1. *DECK NFOB1
  2. USETEXT NIPDEF
  3. USETEXT LLCB
  4. USETEXT DRHDR
  5. USETEXT NHEADER
  6. USETEXT SUPMSG
  7. USETEXT OVERLAY
  8. USETEXT PARAMP
  9. USETEXT TNT
  10. USETEXT PT
  11. PROC NFOB1(BUFADD);
  12. STARTIMS;
  13. #
  14. *1DC NFOB1
  15. *
  16. * 1. PROC NAME AUTHOR DATE
  17. * NFOB1 C. BITTNER 82/06/18
  18. *
  19. * 2. FUNCTIONAL DESCRIPTION
  20. * LINK MESSAGE ON A-A MESSAGE QUEUE.
  21. *
  22. * 3. METHOD USED
  23. * QUEUE MESSAGE TO THE END OF THE CHAIN.
  24. *
  25. * 4. ENTRY PARAMETERS
  26. * BUFADD - ADDRESS OF MESSAGE TO QUEUE
  27. *
  28. * 5. EXIT PARAMETERS
  29. * NONE
  30. *
  31. * 6. SYMPL TEXTS USED
  32. * NIPDEF LLCB
  33. * DRHDR
  34. * NHEADER
  35. * TNT PT
  36. *
  37. * 7. ROUTINES CALLED
  38. * MGETS - GET EMPTY BUFFER
  39. * MRELS - RELEASE BUFFER TO FREE CHAIN
  40. * XTRACE - TRACE PROCEDURE CALL
  41. *
  42. * 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION
  43. * THIS PROCEDURE IS CALLED BY NFOB.
  44. *
  45.  #
  46. STOPIMS;
  47. #
  48.   INPUT PARAMETERS
  49. #
  50. ITEM BUFADD; # SM BUFFER ADDRESS #
  51.  
  52. #
  53.   EXTERNAL VARIABLES
  54. #
  55. XREF
  56. BEGIN
  57. PROC LOCLLCB; # LOCATE LLCB #
  58. PROC MGETS; # GET EMPTY BUFFER #
  59. PROC MRELS; # RELEASE BUFFER TO FREE CHAIN #
  60. PROC OVLCALL; # LOAD AND EXECUTE OVERLAY #
  61. PROC XTRACE; # TRACE PROCEDURE CALL #
  62. END
  63.  
  64. #
  65.   INTERNAL VARIABLES
  66. #
  67.  
  68. ITEM BUFADDR; # ADDR OF 3 WORD BUFFER FOR BACK #
  69. ITEM I; # LOOP VARIABLE #
  70. ITEM NEXTBUF; # NEXT BUFFER TO PROCESS #
  71.  
  72.  
  73. BEGIN
  74.  
  75. CONTROL IFEQ DEBUG,1;
  76. XTRACE("NFOB1");
  77. CONTROL FI;
  78.  
  79. P<DRHDRWD> = BUFADD;
  80. P<NHEADER> = BUFADD + BLKHSIZE; # ADDR OF NETWORK HEADER WORD #
  81. IF BT[0] EQ NETBACK
  82. THEN # RECEIVING BACK ON INTRAHOST A-A CON #
  83. BEGIN
  84. #
  85.   GET BUFFER FOR 3 WORD BACK SINCE THAT IS WHAT PIP CREATES
  86. #
  87. MGETS(LFCACK+BLKHSIZE+ABHSIZE,BUFADDR,TRUE);
  88. P<DRHDRWD> = BUFADDR;
  89. CMWORD[BLKHSIZE] = NHWORD[0]; # COPY NETWORK HEADER TO NEW BUF#
  90. MRELS(BUFADD);
  91. END
  92. ELSE # DO NOT NEED TO ALLOCATE NEW BUFFER #
  93. BEGIN
  94. BUFADDR = BUFADD; # ADDRESS OF BUFFER TO LINK TO A-A QUEUE #
  95. END
  96. BLKID[0] = HHQIDVALUE; # SET TO NON-MOVEABLE ID #
  97. NEXTPTR[0] = 0; # CLEAR POINTER FIELD #
  98. P<LLCB> = TNTLLAD[0];
  99. P<DRHDRWD> = LLCBSHFP[0]; # FIND LAST BUFFER #
  100. IF P<DRHDRWD> NQ 0
  101. THEN
  102. BEGIN # SEARCH FOR END OF LIST #
  103. NEXTBUF = NEXTPTR[0];
  104. FOR I = I WHILE NEXTBUF NQ 0
  105. DO
  106. BEGIN
  107. P<DRHDRWD> = NEXTPTR[0];
  108. NEXTBUF = NEXTPTR[0];
  109. END
  110. NEXTPTR[0] = BUFADDR; # LINK MSG TO END OF LIST #
  111. END
  112. ELSE
  113. BEGIN # CREATE INTRA HOST QUEUE #
  114. LLCBSHFP[0] = BUFADDR;
  115. END
  116.  
  117. RETURN;
  118. END
  119. TERM
cdc/nos2.source/nam5871/nfob1.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator