User Tools

Site Tools


cdc:nos2.source:nam5871:nrpwl

Table of Contents

NRPWL

Table Of Contents

  • [00007] PRGM NRPWL
  • [00059] PROC MRELS
  • [00060] PROC XTRACE

Source Code

NRPWL.txt
  1. *DECK NRPWL
  2. USETEXT NIPDEF
  3. USETEXT OVERLAY
  4. USETEXT PARAMP
  5. USETEXT PCNB
  6. USETEXT PWL
  7. PRGM NRPWL; # RELEASE A PROCESSED WORKLIST #
  8. STARTIMS;
  9. #
  10. *1DC NRPWL
  11. *
  12. * 1. PROC NAME AUTHOR DATE
  13. * NRPWL J.C. LEE 80/04/01
  14. *
  15. * 2. FUNCTIONAL DESCRIPTION.
  16. * RELEASE A PROCESSED PRU WORKLIST
  17. *
  18. * 3. METHOD USED
  19. * CHECK IF THE SPECIFIED WORKLIST PRIORITY LEVEL IS VALID
  20. * CHECK IF CURRENT WORKLIST HAS BEEN PROCESSED BY PIP
  21. * RELEASE CURRENT PRU WORKLIST QUEUED TO QCB
  22. * CLEAR PWL-PROCESSED BIT IN QCB
  23. * RELEASE PRU WORKLIST IN INBOUND BUFFER
  24. *
  25. * 4. ENTRY PARAMETERS.
  26. * PARAMP1 PWL ADDRESS
  27. * PARAMP2 PRU-QCB ADDRESS
  28. *
  29. * 5. EXIT PARAMETERS.
  30. * PARAMP4 NONZERO IF WORKLIST RELEASE REQUEST IS BAD
  31. *
  32. * 6. COMDECKS CALLED AND SYMPL TEXTS USED.
  33. * NIPDEF OPSIZE PARAMP
  34. * PCNB PWL
  35. *
  36. * 7. ROUTINES AND OVERLAYS CALLED.
  37. * MRELS RELEASE BUFFER
  38. * XTRACE TRACE CALLS
  39. *
  40. * 8. DAYFILE MESSAGES.
  41. * NONE
  42. *
  43. * THIS PROGRAM IS A PRIMARY OVERLAY LOADED BY SUBROUTINE OVLCALL.
  44. * WHEN EXECUTION HAS COMPLETED, A JUMP IS MADE TO LOCATION RJMAIN
  45. * TO RETURN TO THE CALLING PROGRAM.
  46. *
  47. * W A R N I N G - THIS PROGRAM CANNOT EXCEED THE PRIMARY
  48. *CALL OPSIZE
  49. *
  50. * THIS OVERLAY IS CALLED BY NPPWL.
  51. *
  52.  #
  53. STOPIMS;
  54. #
  55.   EXTERNAL VARIABLES
  56. #
  57. XREF
  58. BEGIN
  59. PROC MRELS; # RELEASE BUFFER #
  60. PROC XTRACE; # TRACE CALLS #
  61. LABEL RJMAIN; # RETURN ADDRESS #
  62. END
  63. #
  64.   LOCAL VARIABLES
  65. #
  66. ITEM PWLADDR; # PWL ADDRESS #
  67. ITEM WLPRI; # WORKLIST PRIORITY LEVEL #
  68. BASED ARRAY PWLQWORD P(1);
  69. BEGIN
  70. ITEM PWLQDONE B(0,0,1); # WORKLIST PROCESSED BIT #
  71. ITEM PWLQNEXT I(0,42,AL); # NEXT WORKLIST ADDRESS #
  72. END
  73.  
  74. # ******************************************************************** #
  75. BEGIN
  76.  
  77. CONTROL IFEQ DEBUG,1;
  78. XTRACE("NRPWL") ;
  79. CONTROL FI;
  80.  
  81. PWLADDR = PARAMP1; # PWL ADDRESS #
  82. P<PWLHDR> = PWLADDR; # PWL ADDRESS IN INBOUND BUFFER #
  83. P<PCNB> = PARAMP2; # PCNB ADDRESS #
  84. WLPRI = PWLPRI[0]; # WORKLIST PRIORITY LEVEL #
  85. #
  86.   CHECK IF A VALID WORKLIST PRIORITY LEVEL
  87. #
  88. IF WLPRI GR CMDQP
  89. THEN # ILLEGAL WORKLIST PRIORITY LEV #
  90. BEGIN
  91. PARAMP4 = DMCBPL; # BAD PRIORITY LEVEL IN REL REQ #
  92. END
  93.  
  94. ELSE # VALID WORKLIST PRIORITY #
  95. BEGIN
  96. P<PWLQWORD> = LOC(PCNBIMMO[0]) + WLPRI;
  97.  
  98. IF NOT PWLQDONE[0] OR # CURRENT PWL NOT PROCESSED #
  99. PWLQNEXT[0] EQ 0 # NO WORKLIST EXISTS #
  100. THEN # ILLEGAL REQUEST FROM PIP #
  101. BEGIN
  102. PARAMP4 = DMCBRR; # UNEXPECTED WRKLST RELEASE REQ #
  103. END
  104.  
  105. ELSE # RELEASE PROCESSED WORKLIST #
  106. BEGIN
  107. P<PWLHDR> = PWLQNEXT[0]; # ADDRESS OF PWL TO RELEASE #
  108. PWLQNEXT[0] = PWLNEXT[0]; # UPDATE PWL QUEUE PTR IN PQCB #
  109.  
  110. MRELS(P<PWLHDR>); # RELEASE CURRENT WORKLIST #
  111.  
  112. IF WLPRI NQ IMMQP
  113. THEN # NOT RELEASING IMMQ PWL #
  114. PWLQDONE[0] = FALSE; # CLEAR PWL PROCESSED BIT #
  115.  
  116.  
  117. PARAMP3 = 0 ;
  118. END
  119. END
  120.  
  121. GOTO RJMAIN;
  122. END
  123. TERM
cdc/nos2.source/nam5871/nrpwl.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator