User Tools

Site Tools


cdc:nos2.source:nam5871:ipinith

IPINITH

Table Of Contents

  • [00003] PROC IPINITH
  • [00005] IPINITH - IP NAM INPUT TRAFFIC HANDLER.
  • [00032] PROC IPIPIDB
  • [00033] PROC IPISPSM
  • [00034] PROC NETGETL
  • [00035] PROC NETREL
  • [00036] PROC NETWAIT

Source Code

IPINITH.txt
  1. *DECK IPINITH
  2. USETEXT TEXTIPL
  3. PROC IPINITH;
  4. *CALL COPYRITE CDCNET - COPYRIGHT CONTROL DATA. 1992.
  5. # TITLE IPINITH - IP NAM INPUT TRAFFIC HANDLER. #
  6.  
  7. BEGIN # IPINITH #
  8. #
  9. **** IPINITH IP NAM INPUT TRAFFIC HANDLER.
  10. *
  11. * THIS PROCEDURE HANDLES ALL INPUT THROUGH THE AIP NAM INTERFACE.
  12. *
  13. * PROC IPINITH
  14. *
  15. * ENTRY NSUP = NAM SUPERVISORY WORD
  16. *
  17. * EXIT INPBUF = ARRAY CONTAINING SUPERVISORY/DATA MESSAGE
  18. * P<ABH> = PTR TO INPUT APPLICATION BLOCK HEADER.
  19. *
  20. * METHOD CALL NETGETL FOR EITHER SUPERVISORY MESSAGES OR DATA.
  21. * IF A SUPERVISORY MESSAGE IS OBTAINED THEN *IPISPSM*
  22. * IS CALLED, IF DATA IS OBTAINED THE *IPIPIDB* IS CALLED.
  23. * IF NO NAM INPUT IS AVAILABLE NETWAIT IS CALLED.
  24. * RELEASE THE DEBUG LOG FILE IF MESSAGE COUNT EXPIRED.
  25. #
  26.  
  27. #
  28. **** PROC IPINITH - XREF LIST
  29. #
  30. XREF
  31. BEGIN
  32. PROC IPIPIDB; # PROCESS INPUT DATA BLOCK #
  33. PROC IPISPSM; # PROCESS SUPERVISORY MESSAGE #
  34. PROC NETGETL; # GET NEXT BLOCK ON SPECIFIED LIST #
  35. PROC NETREL; # RELEASE LOG FILE #
  36. PROC NETWAIT; # SUSPEND NETWORK APPLICATION #
  37. END
  38. #
  39. **
  40. #
  41.  
  42. ITEM GETMLIST U = DATA$; # LIST TO GET TRAFFIC FROM #
  43.  
  44. SWITCH GETTRAFFIC # SWITCH TO GET TRAFFIC FROM NAM#
  45. S0D0G0, # NO DATA AVAILABLE #
  46. S0D0G1, # NO DATA AVAILABLE #
  47. S0D1G0, # GET DATA (LIST 1) #
  48. S0D1G1, # GET DATA (LIST 1) #
  49. S1D0G0, # GET SM (LIST 0) #
  50. S1D0G1, # GET SM (LIST 0) #
  51. S1D1G0, # GET DATA (LIST 1) #
  52. S1D1G1; # GET SM (LIST 0) #
  53. CONTROL EJECT;
  54.  
  55. #
  56. **** START OF *IPINITH*
  57. #
  58.  
  59. #
  60. **** IF NO NAM INPUT IS AVAILABLE CALL NETWAIT.
  61. * IF TRAFFIC IS AVAILABLE, ISSUE A NETGETL ON EITHER THE
  62. * SUPERVISORY MESSAGE LIST OR THE DATA LIST, ROTATING BETWEEN THE
  63. * TWO MESSAGE TYPE. CALL THE APPROPRIATE PROCESSOR.
  64. #
  65.  
  66. P<ABH> = LOC(IABH);
  67.  
  68. GOTO GETTRAFFIC[NSUP$SU[0]*4+NSUP$DU[0]*2+GETMLIST];
  69.  
  70. S0D0G0: # NO TRAFFIC AVAILABLE #
  71. S0D0G1:
  72.  
  73. IF BLOCK
  74. THEN
  75. BEGIN
  76. NETWAIT(NORMWAIT$, 0);
  77. END
  78. ELSE
  79. BEGIN
  80. NETWAIT(NOWAIT$, 0);
  81. END
  82.  
  83. GOTO NTHEND; # GO TO COMMON END OF PROCEDURE #
  84.  
  85. S1D0G0: # GET SUPERVISORY MESSAGE #
  86. S1D0G1:
  87. S1D1G1:
  88.  
  89. GETMLIST = SM$; # SET GET MESSAGE TYPE TO SM #
  90. NETGETL (GETMLIST, IABH, INPBUF, INPSIZE$); # INPUT THE MESSAGE #
  91.  
  92. IF ABHABT [0] NQ 0 # NOT A NULL BLOCK FROM NAM #
  93. AND ABHIBU [0] EQ 0 # AND A BLOCK WAS DELIVERED #
  94. THEN
  95. BEGIN
  96. IPISPSM; # PROCESS SUPERVISORY MESSAGE #
  97. END
  98.  
  99. GOTO NTHEND; # GO TO COMMON END OF PROCEDURE #
  100.  
  101. S0D1G0: # GET DATA MESSAGE #
  102. S0D1G1:
  103. S1D1G0:
  104.  
  105. GETMLIST = DATA$; # SET GET MESSAGE TYPE TO DATA #
  106. NETGETL (GETMLIST, IABH, # GET CONNECTION TRAFFIC #
  107. INPBUF, INPSIZE$);
  108.  
  109. IF ABHABT [0] NQ 0 # NOT A NULL BLOCK FROM NAM #
  110. AND ABHIBU [0] EQ 0 # AND A BLOCK WAS DELIVERED #
  111. THEN
  112. BEGIN
  113. IPIPIDB; # PROCESS DATA BLOCK #
  114. END
  115.  
  116. GOTO NTHEND; # GO TO COMMON END OF PROCEDURE #
  117.  
  118. NTHEND: # COMMON END #
  119.  
  120. IF (IPMC NQ 0) AND
  121. (NSUP$MC GQ IPMC)
  122. THEN
  123. NETREL (NDLFILE, 0, 0); # RELEASE *ZZZZZDN* FILE #
  124.  
  125. RETURN; # RETURN TO CALLER #
  126.  
  127. END # IPINITH #
  128.  
  129. TERM
cdc/nos2.source/nam5871/ipinith.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator