*DECK NTOTBTS USETEXT NIPDEF USETEXT AHEADER USETEXT NHEADER USETEXT PARAMP USETEXT PT USETEXT MSGIDX USETEXT AT USETEXT DRHDR USETEXT ACB USETEXT SUPMSG PRGM NTOTBTS; # *1DC NTOTBTS * * 1. PROC NAME AUTHOR DATE * NTOTBTS C. BITTNER 82/09/01 * * 2. FUNCTIONAL DESCRIPTION * PROCESS TIMEOUT BOOTSTRAP MESSAGE * * 3. METHOD USED * SEND MESSAGE TO DAYFILE * DISCARD DUMP/LOAD MESSAGES QUEUED FOR NS. * * 4. ENTRY PARAMETERS * NONE * * 5. EXIT PARAMETERS * NONE * * 6. COMDECKS CALLED AND SYMPL TEXTS USED * NIPDEF PT MSGIDX * AT DRHDR ACB * SUPMSG * * 7. ROUTINES CALLED * OMSG - ISSUE DAYFILE MESSAGE * MRELS - RELEASE BUFFER * XTRACE - TRACE PROCEDURE CALL * * 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION * "NS NOT RESPONDING TO NPU INIT REQUEST" * THIS IS A PRIMARY OVERLAY CALLED BY NPNIPSM. * W A R N I N G - THIS PROGRAM CANNOT EXCEED THE PRIMARY *CALL OPSIZE # # EXTERNAL VARIABLES # XREF BEGIN PROC OMSG; # DAYFILE MESSAGE # PROC MRELS; # RELEASE BUFFER # PROC XTRACE; # TRACE PROCEDURE CALL # LABEL RJMAIN; # RETURN ADDRESS IN OVLCALL # END # INTERNAL VARIABLES # ITEM CURR; # TEMPORARY VARIABLE # ITEM NEXT; ITEM PREVIOUS; BEGIN CONTROL IFEQ DEBUG,1; XTRACE("TOTBT"); CONTROL FI; OMSG(DFMSG17,0); # NS NOT RESPONDING TO NPU INIT REQ # IF PROCAN[NSORD] NQ 0 THEN BEGIN P = ATACBA[PROCAN[NSORD]]; IF P NQ 0 THEN # ACB EXISTS FOR NS # BEGIN # DISCARD DATA ON ACB # P = 0; P = PARAMP1; # FWA OF NETWORK HEADER FOR TOT/BS/R # CURR = ACBDRFP[0]; # FIRST ENTRY # FOR CURR = CURR WHILE CURR NQ 0 AND CURR NQ LOC(ACBDRFP[0]) DO BEGIN NEXT = NEXTPTR[CURR]; PREVIOUS = BACKPTR[CURR]; P = CURR + BLKHSIZE; # FWA OF ABH # P = P + ABHSIZE; IF PFCSFC[0] EQ NPUIN AND DN[0] EQ ABHDN[0] THEN # DISCARD NPU/IN/R QUEUED FOR THIS HOST NODE # BEGIN # DISCARD MESSAGE # IF PREVIOUS EQ LOC(ACBDRFP[0]) THEN BEGIN # CURR IS FIRST ENTRY IN RING # IF NEXT EQ LOC(ACBDRFP[0]) THEN BEGIN # LAST AND ONLY ENTRY IN RING # ACBDRFP[0] = 0; ACBDRBP[0] = 0; END ELSE BEGIN ACBDRFP[0] = NEXT; BACKPTR[NEXT] = PREVIOUS; END END ELSE BEGIN # CURR IS NOT FIRST ENTRY IN RING # IF NEXT EQ LOC(ACBDRFP[0]) THEN BEGIN # CURR IS LAST ENTRY # ACBDRBP[0] = PREVIOUS; NEXTPTR[PREVIOUS] = NEXT; END ELSE BEGIN # CURR IS NOT LAST ENTRY # NEXTPTR[PREVIOUS] = NEXT; BACKPTR[NEXT] = PREVIOUS; END END MRELS(CURR); END CURR = NEXT; END END END GOTO RJMAIN; # RETURN TO CALLING PROGRAM # END TERM