*DECK NFOB1 USETEXT NIPDEF USETEXT LLCB USETEXT DRHDR USETEXT NHEADER USETEXT SUPMSG USETEXT OVERLAY USETEXT PARAMP USETEXT TNT USETEXT PT PROC NFOB1(BUFADD); STARTIMS; # *1DC NFOB1 * * 1. PROC NAME AUTHOR DATE * NFOB1 C. BITTNER 82/06/18 * * 2. FUNCTIONAL DESCRIPTION * LINK MESSAGE ON A-A MESSAGE QUEUE. * * 3. METHOD USED * QUEUE MESSAGE TO THE END OF THE CHAIN. * * 4. ENTRY PARAMETERS * BUFADD - ADDRESS OF MESSAGE TO QUEUE * * 5. EXIT PARAMETERS * NONE * * 6. SYMPL TEXTS USED * NIPDEF LLCB * DRHDR * NHEADER * TNT PT * * 7. ROUTINES CALLED * MGETS - GET EMPTY BUFFER * MRELS - RELEASE BUFFER TO FREE CHAIN * XTRACE - TRACE PROCEDURE CALL * * 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION * THIS PROCEDURE IS CALLED BY NFOB. * # STOPIMS; # INPUT PARAMETERS # ITEM BUFADD; # SM BUFFER ADDRESS # # EXTERNAL VARIABLES # XREF BEGIN PROC LOCLLCB; # LOCATE LLCB # PROC MGETS; # GET EMPTY BUFFER # PROC MRELS; # RELEASE BUFFER TO FREE CHAIN # PROC OVLCALL; # LOAD AND EXECUTE OVERLAY # PROC XTRACE; # TRACE PROCEDURE CALL # END # INTERNAL VARIABLES # ITEM BUFADDR; # ADDR OF 3 WORD BUFFER FOR BACK # ITEM I; # LOOP VARIABLE # ITEM NEXTBUF; # NEXT BUFFER TO PROCESS # BEGIN CONTROL IFEQ DEBUG,1; XTRACE("NFOB1"); CONTROL FI; P = BUFADD; P = BUFADD + BLKHSIZE; # ADDR OF NETWORK HEADER WORD # IF BT[0] EQ NETBACK THEN # RECEIVING BACK ON INTRAHOST A-A CON # BEGIN # GET BUFFER FOR 3 WORD BACK SINCE THAT IS WHAT PIP CREATES # MGETS(LFCACK+BLKHSIZE+ABHSIZE,BUFADDR,TRUE); P = BUFADDR; CMWORD[BLKHSIZE] = NHWORD[0]; # COPY NETWORK HEADER TO NEW BUF# MRELS(BUFADD); END ELSE # DO NOT NEED TO ALLOCATE NEW BUFFER # BEGIN BUFADDR = BUFADD; # ADDRESS OF BUFFER TO LINK TO A-A QUEUE # END BLKID[0] = HHQIDVALUE; # SET TO NON-MOVEABLE ID # NEXTPTR[0] = 0; # CLEAR POINTER FIELD # P = TNTLLAD[0]; P = LLCBSHFP[0]; # FIND LAST BUFFER # IF P NQ 0 THEN BEGIN # SEARCH FOR END OF LIST # NEXTBUF = NEXTPTR[0]; FOR I = I WHILE NEXTBUF NQ 0 DO BEGIN P = NEXTPTR[0]; NEXTBUF = NEXTPTR[0]; END NEXTPTR[0] = BUFADDR; # LINK MSG TO END OF LIST # END ELSE BEGIN # CREATE INTRA HOST QUEUE # LLCBSHFP[0] = BUFADDR; END RETURN; END TERM