cdc:nos2.source:nam5871:hpputq
Table of Contents
HPPUTQ
Table Of Contents
- [00011] PROC HPPUTQ(TXTLN,ENTRIES)
- [00067] PROC BRLBLK
- [00068] PROC HRELWWL
- [00069] PROC MGETS
- [00070] PROC MRELS
- [00071] PROC OMOVE
- [00072] PROC XTRACE
- [00073] PROC OTIME
Source Code
- HPPUTQ.txt
- *DECK HPPUTQ
- USETEXT NIPDEF
- USETEXT ACB
- USETEXT APPSTAT
- USETEXT DRHDR
- USETEXT FREETAB
- USETEXT MEM
- USETEXT NWLHEAD
- USETEXT NWLNTRY
- USETEXT STATTAB
- PROC HPPUTQ(TXTLN,ENTRIES) ;
- STARTIMS;
- #
- *1DC HPPUTQ
- *
- * 1. PROC NAME AUTHOR DATE
- * HPPUTQ L.T.NGUYEN 88/06/10
- *
- * 2. FUNCTIONAL DESCRIPTION.
- * THIS ROUTINE IS RESPONSIBLE FOR PROCESSING THE PUTQ WORKLIST
- * FROM APPLICATION.
- *
- * 3. METHOD USED.
- * SET UP FOR READ
- * READ BLOCK
- * PUT OTHER ENTRIES INTO THE NEW LARGER WORKLIST INCLUDING THE
- * NETPUT TEXT
- *
- * 4. ENTRY PARAMETERS.
- * ACBADDR APPLICATION"S ACB
- * TXTLN LENGTH OF THE NETPUT TEXT
- * ENTRIES NUMBER OF ENTRIES IN THIS WORKLIST
- * WLADDR WORKLIST ENTRY
- *
- * 5. EXIT PARAMETERS.
- * DONE FALSE FOR THIS MULTIPLE WORKLIST WILL BE
- * PROCESSED LATER.
- * ACBWLFWA FWA OF NEW NWL
- * ACBWLLWA LWA OF NEW NWL
- * ACBNWLE NUMBER OF ENTRIES
- * WLADDR ADDRESS OF CURRENT WORKLIST ENTRY
- *
- * 6. COMDECKS CALLED AND SYMPL TEXTS USED.
- * APPSTAT ACB DRHDR FREETAB
- * NIPDEF NWLHEAD NWLNTRY
- * STATTAB
- *
- * 7. ROUTINES CALLED.
- * BRLBLK XFER BLOCK FROM APP FL TO NIP FL
- * HRELWWL RELEASE WHOLE NWL
- * MGETS ALLOCATE EMPTY BUFFER
- * MRELS RELEASE BUFFER SPACE
- * OMOVE COPY INFORMATION
- * OTIME GET SYSTEM RTIME
- * XTRACE TRACES CALLS
- *
- * 8. DAYFILE MESSAGES. NONE
- * THIS PROCEDURE IS CALLED BY HWLP
- *
- #
- STOPIMS;
- #
- EXTERNAL VARIABLES
- #
- XREF BEGIN
- PROC BRLBLK; # READ BLOCK INTO NIP-S FL #
- PROC HRELWWL; # RELEASE WHOLE NWL #
- PROC MGETS; # ALLOCATE EMPTY BUFFER #
- PROC MRELS; # RELEASE UNUSED BUFFER SPACE #
- PROC OMOVE; # COPY INFORMATION #
- PROC XTRACE; # TRACE CALLS #
- PROC OTIME; # GET SYSTEM RTIME #
- END
- #
- FORMAL PARAMETERS
- #
- ITEM TXTLN U; # LENGTH OF NETPUT TEXT IN CM WORDS #
- ITEM ENTRIES U ; # NUMBER OF ENTRIES IN THIS PUTQ #
- #
- LOCAL VARIABLES
- #
- ITEM BUFADDR U; # FWA OF NEW NWL BUFFER #
- ITEM BUFSIZE U;
- ITEM EXTRAWORD U; # SET TO ONE IF FRAGMENTED GET/PUT #
- CONTROL IFEQ STAT,1;
- ARRAY STIME P(1); # RTIME BUFFER FOR STARTING TIME #
- BEGIN
- ITEM SMILS U(0,24,36); # STARTING TIME IN MILLESECONDS #
- END
- ARRAY ETIME P(1); # RTIME BUFFER FOR ENDING TIME #
- BEGIN
- ITEM EMILS U(0,24,36); # ENDING TIME IN MILLESECONDS #
- END
- ITEM STTEMP; # TEMPORARY STATISTICS VARIABLE #
- CONTROL FI;
- #**********************************************************************#
- BEGIN
- CONTROL IFEQ DEBUG,1;
- XTRACE("HPPUQ") ;
- CONTROL FI;
- CONTROL IFEQ STAT,1;
- OTIME(STIME); # GET SYSTEM TIME AT BEGINNING OF PROC #
- CONTROL FI;
- P<NWLENTRY> = WLADDR; # FWA OF WORKLIST ENTRY #
- P<ACB> = ACBADDR; # FWA OF ACB #
- BUFSIZE = TXTLN + NWLHSIZE + 1 ;
- MGETS(BUFSIZE,BUFADDR,TRUE); # GET BUFFER FOR NEW NWL #
- BRLBLK(BUFADDR+NWLHSIZE-ABHSIZE,TXTLN); # READ TEXT INTO NWL #
- IF DONE
- THEN # READ UCP FUNCTION COMPLETED #
- BEGIN
- P<NWLHEADER> = BUFADDR ; # MOVE THE HEADER TO NEW PLACE #
- MNEW = P<NWLHEADER> ;
- MOLD = ACBWLFWA[0] ;
- MSIZE = NWLHSIZE ;
- OMOVE ;
- NWLBS[0] = BUFSIZE ; # RESTORE BLOCK SIZE #
- NWLNE[0] = ENTRIES ;
- P<NWLENTRY> = BUFADDR + NWLHSIZE ;# FWA OF NWL ENTRY #
- NWLEID[0] = NWLEIDVALUE; # RESET NWL ENTRY ID #
- HRELWWL; # RELEASE WHOLE PUTQ NWL #
- ACBNWLE [0] = ENTRIES + 1 ; # INCLUDING THE PUTQ WL #
- ACBWLFWA[0] = BUFADDR;
- ACBWLADR[0] = BUFADDR + NWLHSIZE ; # CURRENT WORKLIST ADDRESS#
- ACBWLLWA[0] = BUFADDR + BUFSIZE - 1 ;
- NEXTWLA = BUFADDR + NWLHSIZE ; # NEXT ONE IS FIRST #
- END
- ELSE # UCP SWAPPED OUT, READ FUNCTION UNABLE TO COMPLETE #
- BEGIN
- BLKBS[0] = TXTLN + NWLHSIZE ; # RESTORE BUFFER SIZE #
- MRELS(BUFADDR); # RELEASE NEW NWL BUFFER #
- END
- CONTROL IFEQ STAT,1;
- OTIME(ETIME); # GET SYSTEM TIME AT END OF PROCEDURE #
- ST$NHR = ST$NHR + 1; # INCRMNT NUMBER OF TIMES HPPUTQ CALLD #
- STTEMP = EMILS[0] - SMILS[0]; # TIME SPENT IN THIS ROUTINE #
- ST$THR = ST$THR + STTEMP; # TOTAL TIME SPENT IN THIS ROUTINE #
- IF ST$LHR LS STTEMP
- THEN # FOUND LARGER TIME INTERVAL IN ROUTINE #
- BEGIN
- ST$LHR = STTEMP; # NEW LARGEST TIME INTERVAL #
- END
- CONTROL FI;
- RETURN;
- END
- TERM
cdc/nos2.source/nam5871/hpputq.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator