cdc:nos2.source:nam5871:nvfolne
Table of Contents
NVFOLNE
Table Of Contents
- [00006] PROC NVFOLNE
- [00007] NVFOLNE - LOG NETWORK EVENTS.
- [00011] LOG NETWORK EVENTS.
- [00043] PROC MOVE
- [00044] PROC SSTAQE
- [00045] PROC SSTATS
- [00046] PROC SSTRQE
- [00047] PROC SSTRTS
Source Code
- NVFOLNE.txt
- *DECK NVFOLNE
- USETEXT TEXTNVF
- USETEXT TEXTSS
- USETEXT TXCMDNV
- USETEXT TXTAPSS
- PROC NVFOLNE;
- # TITLE NVFOLNE - LOG NETWORK EVENTS. #
- BEGIN # NVFOLNE #
- #
- ** NVFOLNE - LOG NETWORK EVENTS.
- *
- * A. LIM. 82/03/18.
- *
- * THIS PROCEDURE LOGS NETWORK EVENTS TO THE NETWORK-LOG FILE(OR NIP
- * DAYFILE), HISTORY BUFFER, AND K-DISPLAY.
- * IT IS CALLED INTO EXECUTION WHENEVER THERE IS DATA IN UNSOLICITED-
- * STATUS-QUEUE *USQ*.
- *
- * PROC NVFOLNE
- *
- * ENTRY NETWORK EVENTS IN UNSOLICITED-STATUS-QUEUE *USQ*.
- *
- * EXIT NETWORK EVENTS LOGGED TO NETWORK-LOG FILE, HISTORY BUFFER
- * AND K-DISPLAY.
- *
- * METHOD THIS PROCEDURE CONSISTS PRIMARY A LARGE LOOP, EACH TIME
- * THROUGH THE LOOP, *SSTRQE* IS CALLED TO REMOVE AN ENTRY
- * FROM THE *USQ*. THEN A HOP/LG SM IS BUILT AND SENT TO
- * OUTGOING-TRAFFIC-QUEUE *OTQ* DESTINED FOR NETWORK-LOG
- * FILE. THEN IT IS LOGGED TO HISTORY BUFFER, AND
- * IS SENT TO THE CONNECTION-TRAFFIC-QUEUE *CTQ* REGARDLESS
- * OF K-DISPLAY ASSIGNED/UNASSIGNED.
- * IT TERMINATES WHEN *USQ* IS EXHAUSTED.
- #
- #
- **** PROC NVFOLNE XREF LIST
- #
- XREF
- BEGIN
- PROC MOVE; # MACREL- MOVE CM WORDS #
- PROC SSTAQE; # SS- ACCEPT A QUEUE ENTRY #
- PROC SSTATS; # SS- ALLOCATE TABLE SPACE #
- PROC SSTRQE; # SS- REMOVE QUEUE ENTRY TO FIXED BUFFER #
- PROC SSTRTS; # SS- REMOVE TABLE SPACE #
- END
- #
- ****
- #
- ITEM DONE B; # LOOP EXIT VARIABLE #
- ITEM I I; # LOOP INDUCTION VARIABLE #
- ITEM L U; # INDEX TO HISTORY BUFFER #
- ITEM WC I; # WORD-COUNT WORDS TO ALLOCATE TABLE SPACE#
- #
- * PROCESS ALL ENTRIES IN *USQ*
- #
- FOR I = 0 WHILE USQLNGTH NQ 0
- DO
- BEGIN
- SSTRQE(P<USQ>,WCBUF[0],ABHBUF[0],MSGBUF[3]); # MOVE TO FIX BUF#
- #
- * BUILD A HOP/LG SM AND SEND IT TO *OTQ*
- #
- MSG$WORD[0] = 0;
- MSG$PSFC[0] = HOPLG; # PFC/SFC FOR HOP/LG #
- IF ABHABT[0] EQ 5
- THEN
- MSG$WORD[1] = HOCMDID$; # ID = *NV/HOSTNVF* #
- ELSE
- MSG$WORD[1] = USMSGID$; # ID = *NV/ * #
- MSG$WORD[2] = CTM$CLOCK[0]; # TIME STAMP THE MESSAGE #
- WCB$WORD[1] = 0; # CLEAR WC WORD 1 #
- ABHWORD[1] = 0; # CLEAR ABH WORD 1 #
- WCB$WC[1] = WCB$WC[0]+3; # WC=PSFC+TIME+ID+ORIGINAL MSG #
- ABHABT[1] = APPCMD;
- ABHACT[1] = CT60TRANS;
- ABHTLC[1] = WCB$WC[1] - 2;
- SSTAQE(P<OTQ>,WCBUF[1],ABHBUF[1],MSGBUF[0]); # SEND HOP/LG #
- #
- * LOG THE MESSAGE TO HISTORY BUFFER.
- #
- IF HSBCNT EQ MXHSBCNT$
- THEN
- BEGIN # HISTORY BUF FULL, DELETE FIRST ENTRY #
- DONE = FALSE;
- FOR I = 0 STEP 1 WHILE (NOT DONE)
- AND (I LS HSBL)
- DO
- BEGIN # SEARCH ZERO BYTE FOR END OF ENTRY #
- IF HSB$ZERO[I] EQ 0
- THEN
- DONE = TRUE; # FOUND IT#
- END
- SSTRTS(P<HSBUF>,0,I); # DELETE THIS FIRST ENTRY #
- HSBCNT = HSBCNT - 1;
- END
- WC = WCB$WC[0] - 1;
- L = HSBL; # SAVE INDEX TO END OF HISTORY BUF #
- SSTATS(P<HSBUF>, WC);# ALLOC SPACE FOR THIS NEW MSG LINE #
- MOVE(WC,MSGBUF[2],HSBUF[L]); # MOVE LINE TO HISTROY BUF #
- HSBCNT = HSBCNT + 1; # INCREMENT HISTORY LINES COUNT #
- #
- * SEND THE MESSAGE AS TERMINAL TEXT TO *CTQ* IF THIS IS NOT A
- * COMMAND TEXT.
- #
- IF ABHABT[0] NQ 5
- THEN
- BEGIN
- WCB$WORD[1] = 0;
- ABHWORD[1] = 0;
- WCB$WC[1] = WCB$WC[0] + 1;
- WCB$IAF[1] = FALSE;
- WCB$HAF[1] = WCB$HAF[0];
- ABHABT[1] = HOPTX$;
- SSTAQE(P<CTQ>,WCBUF[1],ABHBUF[1],MSGBUF[2]);
- END
- END # FOR I LOOP #
- END
- TERM
cdc/nos2.source/nam5871/nvfolne.txt ยท Last modified: 2023/08/05 17:23 by Site Administrator