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
- *DECK NRPWL
- USETEXT NIPDEF
- USETEXT OVERLAY
- USETEXT PARAMP
- USETEXT PCNB
- USETEXT PWL
- PRGM NRPWL; # RELEASE A PROCESSED WORKLIST #
- STARTIMS;
- #
- *1DC NRPWL
- *
- * 1. PROC NAME AUTHOR DATE
- * NRPWL J.C. LEE 80/04/01
- *
- * 2. FUNCTIONAL DESCRIPTION.
- * RELEASE A PROCESSED PRU WORKLIST
- *
- * 3. METHOD USED
- * CHECK IF THE SPECIFIED WORKLIST PRIORITY LEVEL IS VALID
- * CHECK IF CURRENT WORKLIST HAS BEEN PROCESSED BY PIP
- * RELEASE CURRENT PRU WORKLIST QUEUED TO QCB
- * CLEAR PWL-PROCESSED BIT IN QCB
- * RELEASE PRU WORKLIST IN INBOUND BUFFER
- *
- * 4. ENTRY PARAMETERS.
- * PARAMP1 PWL ADDRESS
- * PARAMP2 PRU-QCB ADDRESS
- *
- * 5. EXIT PARAMETERS.
- * PARAMP4 NONZERO IF WORKLIST RELEASE REQUEST IS BAD
- *
- * 6. COMDECKS CALLED AND SYMPL TEXTS USED.
- * NIPDEF OPSIZE PARAMP
- * PCNB PWL
- *
- * 7. ROUTINES AND OVERLAYS CALLED.
- * MRELS RELEASE BUFFER
- * XTRACE TRACE CALLS
- *
- * 8. DAYFILE MESSAGES.
- * NONE
- *
- * THIS PROGRAM IS A PRIMARY OVERLAY LOADED BY SUBROUTINE OVLCALL.
- * WHEN EXECUTION HAS COMPLETED, A JUMP IS MADE TO LOCATION RJMAIN
- * TO RETURN TO THE CALLING PROGRAM.
- *
- * W A R N I N G - THIS PROGRAM CANNOT EXCEED THE PRIMARY
- *CALL OPSIZE
- *
- * THIS OVERLAY IS CALLED BY NPPWL.
- *
- #
- STOPIMS;
- #
- EXTERNAL VARIABLES
- #
- XREF
- BEGIN
- PROC MRELS; # RELEASE BUFFER #
- PROC XTRACE; # TRACE CALLS #
- LABEL RJMAIN; # RETURN ADDRESS #
- END
- #
- LOCAL VARIABLES
- #
- ITEM PWLADDR; # PWL ADDRESS #
- ITEM WLPRI; # WORKLIST PRIORITY LEVEL #
- BASED ARRAY PWLQWORD P(1);
- BEGIN
- ITEM PWLQDONE B(0,0,1); # WORKLIST PROCESSED BIT #
- ITEM PWLQNEXT I(0,42,AL); # NEXT WORKLIST ADDRESS #
- END
- # ******************************************************************** #
- BEGIN
- CONTROL IFEQ DEBUG,1;
- XTRACE("NRPWL") ;
- CONTROL FI;
- PWLADDR = PARAMP1; # PWL ADDRESS #
- P<PWLHDR> = PWLADDR; # PWL ADDRESS IN INBOUND BUFFER #
- P<PCNB> = PARAMP2; # PCNB ADDRESS #
- WLPRI = PWLPRI[0]; # WORKLIST PRIORITY LEVEL #
- #
- CHECK IF A VALID WORKLIST PRIORITY LEVEL
- #
- IF WLPRI GR CMDQP
- THEN # ILLEGAL WORKLIST PRIORITY LEV #
- BEGIN
- PARAMP4 = DMCBPL; # BAD PRIORITY LEVEL IN REL REQ #
- END
- ELSE # VALID WORKLIST PRIORITY #
- BEGIN
- P<PWLQWORD> = LOC(PCNBIMMO[0]) + WLPRI;
- IF NOT PWLQDONE[0] OR # CURRENT PWL NOT PROCESSED #
- PWLQNEXT[0] EQ 0 # NO WORKLIST EXISTS #
- THEN # ILLEGAL REQUEST FROM PIP #
- BEGIN
- PARAMP4 = DMCBRR; # UNEXPECTED WRKLST RELEASE REQ #
- END
- ELSE # RELEASE PROCESSED WORKLIST #
- BEGIN
- P<PWLHDR> = PWLQNEXT[0]; # ADDRESS OF PWL TO RELEASE #
- PWLQNEXT[0] = PWLNEXT[0]; # UPDATE PWL QUEUE PTR IN PQCB #
- MRELS(P<PWLHDR>); # RELEASE CURRENT WORKLIST #
- IF WLPRI NQ IMMQP
- THEN # NOT RELEASING IMMQ PWL #
- PWLQDONE[0] = FALSE; # CLEAR PWL PROCESSED BIT #
- PARAMP3 = 0 ;
- END
- END
- GOTO RJMAIN;
- END
- TERM
cdc/nos2.source/nam5871/nrpwl.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator