*DECK XTERMST
USETEXT NIPDEF
USETEXT NBT
USETEXT PT
USETEXT STATTAB
USETEXT STATTB2
USETEXT KDIS
PROC XTERMST; # DAYFILE GLOBAL STATISTICS AT TERMINATION#
*CALL OVLSTAT
STARTIMS;
#
*1DC XTERMST
* 1. PROC NAME AUTHOR DATE
* XTERMST P.C.TAM 77/08/02
*
* 2. FUNCTIONAL DESCRIPTION.
* THIS ROUTINE IS A SECONDARY OVERLAY CALLED WHENEVER NAM
* SHUT DOWN TO DAYFILE GLOBAL STATISTICS.
*
* 3. METHOD USED.
* A. THE FREQUENCY OF CALL OF ALL OVERLAYS ARE CONVERTED TO
* OCTAL NUMBERS IN DISPLAY CODE AND WRITTEN TO THE DAYFILE.
* B. THE VALUES OF ALL STATISTICS VARIABLE UNDER THE COMMON
* STATTAB ARE CONVERTED TO OCTAL DISPLAY CODES AND DAYFILED.
* C. REPEAT STEP B FOR MEMORY MANAGER STATISTICS.
*
* 4. ENTRY PARAMETERS.
* NONE.
*
* 5. EXIT PARAMETERS.
* NONE
*
* 6. COMDECKS CALLED AND SYMPL TEXTS USED.
* NIPDEF OPSIZE OVLSTAT STATTAB
* NBT NETWORK BUFFER TABLE
* PT GLOBAL COMDECK
* STATTB2
*
* 7. ROUTINES CALLED.
* MCLRIL CLEAR NIP/PIP INTERLOCK
* MSETIL SET NIP/PIP INTERLOCK
* OCTCON CONVERT A BINARY NUMBER INTO OCTAL DISPLAY
* CODE NUMBER
* OCTDIS CHECK A NUMBER FOR 00B"S AND CONVERT THEM
* INTO 55B"S.
* OMSG DAYFILE MESSAGE
* XCDD CONVERT INTEGER TO DECIMAL DISPLAY
* XTRACE RECORD PROCEDURE CALLS
*
* 8. DAYFILE MESSAGES.
* A. *OVLNAMEXXX= XXXXXXXXXX*
* B. *ST$XXXXX= XXXXXXXXXXXXXXXXXXXX*
*
* W A R N I N G - THIS ROUTINE IS LOADED WITH XCLOST, XENDNAM,
* AND OSCEXIT, OR ENDRPV. THE SUM OF THE SIZES
* OF XENDNAM, OSCEXIT, XCLOST AND XTERMST, OR
* THAT OF XENDRPV, XCLOST AND XTERMST CANNOT
* EXCEED THE SIZE OF THE PRIMARY
*CALL OPSIZE
*
* THIS ROUTINE IS CALLED BY XENDNAM, OR XENDRPV.
*
#
STOPIMS;
# EXTERNAL VARIABLES #
XREF
BEGIN
PROC MCLRIL; # CLEAR NIP/PIP INTERLOCK #
PROC MSETIL; # SET NIP/PIP INTERLOCK #
PROC OCTDIS;
PROC OCTCON;
PROC OMSG;
FUNC XCDD C(10); # CONVERT INTEGER TO DECIMAL DISPLAY #
PROC XTRACE; # RECORD PROCEDURE CALLS #
END
# INTERNAL VARIABLES #
BASED ARRAY OVLTMP;
BEGIN
ITEM OVLPGM C(0,0,7); # OVERLAY PGM NAME IN 7 CHAR #
ITEM OVLCNT I(0,42,18); # NO OF TIMES THE OVERLAY CALLED#
ITEM OVLWD0 U(0,0,WL);
END
BASED ARRAY ST$TAB S(1);
ITEM ST$CNT U(0,0,WL);
ARRAY [0:STAB1NO] S(1);
BEGIN
ITEM ST$NMX1 C(0,0,5) =
["IDLN", "CNBC", "NOAP", "ACB",
"ACBX", "AQ", "AQX", "NIB",
"INB", "INC", "IDB",
"IDC", "ONB", "ONC", "ODB",
"ODC", "LNB", "LNC", "LDB",
"LDC", "ENB", "ESB", "RCL",
"LOOP", "NOL", "NOC", "NMS",
"NSC", "NSI", "NDA", "NWR",
"NBR", "NAW", "NGE", "NGS",
"NPU", "NWA", "NHR", "NXS",
"NXP", "TOL", "TMS", "TSC",
"TSI", "TDA", "TWR", "TBR",
"TAW", "TGE", "TGS", "TPU",
"TWA", "THR", "TFL", "TMG",
"TXS", "TXP", "TNI", "THI",
"TT2", "TT3", "LOL", "LMS",
"LSC", "LSI", "LDA", "LWR",
"LBR", "LAW", "LGE", "LGS",
"LPU", "LWA", "LHR", "LFL",
"LMG", "LXS", "LXP", "LNI",
"LHI", "LT2", "LT3", "MXS",
"MNI", "MHI", "MT2", "MT3",
"MXIB"];
END
ARRAY ST$REJ [0:3] S(4);
BEGIN
ITEM ST$TYP C(0,00,10) = ["NET IVT RE", "NET PRU RE",
"PIP IVT RE", "PIP PRU RE"];
ITEM ST$FIL1 C(1,00,10) = [4("JECTS = ")];
ITEM ST$NUMREJ C(2,00,04);
ITEM ST$FIL2 C(2,24,02) = [4(", ")];
ITEM ST$ET C(2,36,02);
ITEM ST$FIL3 C(2,48,02) = [4(", ")];
ITEM ST$FIL4 C(3,00,05) = [4("NN = ")];
ITEM ST$NODE C(3,30,03);
ITEM ST$REJEND U(3,48,12) = [4(0)];
END
ARRAY [0:STAB2NO] S(1);
BEGIN
ITEM ST$NMX2 C(0,0,5) =
["GET", "GNB", "REL", "RNB",
"FL", "FLW", "FLX",
"FLWX", "FLT", "FWT",
"FBT", "GBWM", "GBGC"];
END
ARRAY DYFL1 S(3);
BEGIN
ITEM OVLPRGM C(0,0,WC);
ITEM OVLEQU C(0,48,1);
ITEM OVLFREQ C(1,0,WC);
ITEM FILL2A U(2,0,WL)=[0];
END
ARRAY DYFL2 S(4);
BEGIN
ITEM FILL1B C(0,0,WC)=["ST$ - "];
ITEM STNAME C(0,18,5);
ITEM STVALU1 C(1,0,WC);
ITEM STVALU2 C(2,0,WC);
ITEM FILL2B U(3,0,WL)=[0];
END
ARRAY TWOWD S(2);
BEGIN
ITEM WORD1 C(0,0,WC);
ITEM WORD2 C(1,0,WC);
END
DEF NUMOVL #OVLNUM-1#; # NUMBER OF OVERLAYS - 1 #
ITEM I,J;
#**********************************************************************#
BEGIN
CONTROL IFEQ STAT,1;
CONTROL IFEQ DEBUG,1;
XTRACE("XTERM") ;
CONTROL FI;
#
LOG NO OF TIMES EACH OVERLAY GET CALLED
#
P<OVLTMP> = LOC(HAPFAILS); # 1ST OVERLAY IN OVLSTAT TABLE #
FOR I = 0 STEP 1 UNTIL NUMOVL # LOOP TO DAYFILE OVLSTAT TABLE #
DO # STATISTICS #
BEGIN
OCTDIS(OVLWD0[I], DYFL1);
OVLEQU[0] = "=";
OCTCON(OVLCNT[I],TWOWD);
OVLFREQ = WORD2;
OMSG(DYFL1,0);
IF KNAMRS[0]
THEN
OVLCNT[I] = 0;
END
#
LOG STATISTICS FROM NIP INTERNAL PROCS
#
P<ST$TAB> = LOC(STTBM)+ 1 ;
FOR I = 0 STEP 1 UNTIL STAB1NO
DO
BEGIN # LOOP TO DAYFILE ALL STATISTICS #
STNAME = ST$NMX1[I]; # COLLECTED IN STATTAB #
OCTCON(ST$CNT[I],TWOWD);
STVALU1 = WORD1;
STVALU2 = WORD2;
OMSG(DYFL2,0);
IF KNAMRS[0]
THEN
ST$CNT[I] = 0;
END
#
LOG STATISTICS FROM MEMORY MANAGER
#
P<ST$TAB> = LOC(ST$GET);
FOR I = 0 STEP 1 UNTIL STAB2NO
DO
BEGIN # LOOP TO LOG ALL STATISTICS FROM MEMORY M#
STNAME = ST$NMX2[I];
OCTCON(ST$CNT[I], TWOWD);
STVALU1 = WORD1;
STVALU2 = WORD2;
OMSG(DYFL2,0);
IF KNAMRS[0]
THEN
ST$CNT[I] = 0;
END
#
GET STATISTICS FOR NUMBER OF NPU AND PIP REJECTS
#
FOR I = 0 STEP NBTFETNO UNTIL NBTMAXID
DO
BEGIN
IF NBTIUF[I]
THEN # NBT ENTRY IS IN USE #
BEGIN
ST$ET[0] = NBTET[I]; # EQUIPMENT MNEUMONIC #
J = XCDD(NBTHN[I]);# CONVERT HOST NODE NUMBER TO DISPLAY DEC #
ST$NODE[0] = C<7,3>J; # HOST NODE NUMBER IN DISPLAY DECIMAL #
ST$TYP[0] = "NET IVT RE";
J = XCDD(NBTNIREJ[I+4]); # CONVERT NO OF REJECTS TO DIS DEC #
ST$NUMREJ[0] = C<6,4>J; # NUMBER OF NPU REJECTS OF IVT DATA #
OMSG(ST$REJ,0); # ISSUE DAYFILE MESSAGE #
ST$TYP[0] = "NET PRU RE";
J = XCDD(NBTNPREJ[I+4]); # CONVERT NO OF REJECTS TO DIS DEC #
ST$NUMREJ[0] = C<6,4>J; # NUMBER OF NPU REJECTS OF PRU DATA #
OMSG(ST$REJ,0); # ISSUE DAYFILE MESSAGE #
ST$TYP[0] = "PIP IVT RE";
J = XCDD(NBTPIREJ[I+5]); # CONVERT NO OF REJECTS TO DIS DEC #
ST$NUMREJ[0] = C<6,4>J; # NUMBER OF PIP REJECTS OF IVT DATA #
OMSG(ST$REJ,0); # ISSUE DAYFILE MESSAGE #
ST$TYP[0] = "PIP PRU RE";
J = XCDD(NBTPPREJ[I+5]); # CONVERT NO OF REJECTS TO DIS DEC #
ST$NUMREJ[0] = C<6,4>J; # NUMBER OF PIP REJECTS OF PRU DATA #
OMSG(ST$REJ,0); # ISSUE DAYFILE MESSAGE #
IF (NBTNIREJ[I+4] + NBTNPREJ[I+4] NQ 0) AND
(NOT NAMFAIL )
THEN # NEED TO ZERO NO OF NPU REJECTS #
BEGIN
MSETIL(0); # SET NIP/PIP INTERLOCK #
NBTNIREJ[I+4] = 0; # CLEAR NUMBER OF NPU IVT REJECTS #
NBTNPREJ[I+4] = 0; # CLEAR NUMBER OF NPU PRU REJECTS #
MCLRIL; # CLEAR NIP/PIP INTERLOCK #
END
NBTPIREJ[I+5] = 0; # CLEAR NUMBER OF PIP IVT REJECTS #
NBTPPREJ[I+5] = 0; # CLEAR NUMBER OF PIP PRU REJECTS #
END
END
CONTROL FI;
END # XTERMST #
TERM