cdc:nos2.source:nam5871:ns_smp
Table of Contents
NS$SMP
Table Of Contents
- [00008] PROC NS$SMP
- [00010] NS$SMP - SM PROCESSOR.
- [00014] SM PROCESSOR.
- [00050] PROC NS$DBG
- [00056] PROC NDLOVLD
- [00057] PROC NETGET
- [00058] PROC NETREL
- [00059] FUNC NS$FEC U
- [00060] PROC NS$NSM
Source Code
- NS$SMP.txt
- *DECK NS$SMP
- USETEXT COM$NS
- USETEXT ERR$NS
- USETEXT DEF$NS
- USETEXT SMB$NS
- USETEXT SMD$NS
- PROC NS$SMP; # SUPERVISORY MESSAGE PROCESSOR #
- # TITLE NS$SMP - SM PROCESSOR. #
- BEGIN # NS$SMP #
- #
- ** NS$SMP - SM PROCESSOR.
- *
- * J.C. LEE 1981
- *
- * THIS ROUTINE PROCESSES SMS.
- *
- * PROC NS$SMP
- *
- * ENTRY:
- * NONE.
- *
- * EXIT:
- * NONE.
- *
- * METHOD:
- * CHECK NSUP WORD.
- * FOR SM AVAILABLE:
- * IF SM-REISSUED-BIT SET:
- * SKIP NETGET CALL.
- * ELSE
- * NETGET SM INTO SM BUFFER
- * SWITCH TO APPROPRIATE PARAGRAPH BASED ON ABT.
- * IF ABT EQ "HOST-SM", PROCESS HOST SM.
- * IF ABT EQ "NETWORK-SM", PROCESS NETWORK SM.
- * ELSE, FLAG ERRCODE.
- * IF ERRCODE NQ 0, CALL ERROR PROCESSOR.
- * IF MC IN NS CONTROL CARD IS NONZERO, AND THE
- * NUMBER OF TRACE MESSAGES ACCUMULATED ON THE
- * DEBUG LOG FILE REACHES MC:
- * CALL NETREL TO RELEASE CURRENT TRACE FILE.
- *
- #
- $BEGIN
- XREF
- BEGIN
- PROC NS$DBG; # TRACE PROCEDURE CALL #
- END
- $END
- XREF
- BEGIN
- PROC NDLOVLD; # OVERLAY LOADER #
- PROC NETGET; # AIP NETGET PROCEDURE #
- PROC NETREL; # AIP NETREL PROCEDURE #
- FUNC NS$FEC U; # FORMAT ERROR CODE #
- PROC NS$NSM; # NETWORK SUPERVISORY MESSAGE PROCESSOR #
- END
- ITEM ABT U; # APPLICATION BLOCK TYPE #
- ITEM ERRCODE U; # ERROR CODE #
- ITEM I I; # LOOP VARIABLE #
- ITEM IDLE B; # SMP STATE #
- ARRAY HSM$OVLY [0:0] S(1);
- BEGIN # HOST INTERFACE OVERLAY NAME AND LEVEL #
- ITEM HO$NAM C(00,00,07) = ["HSMOVLY"];
- ITEM HO$LV1 U(00,42,09) = [2];
- ITEM HO$LV2 U(00,51,09) = [0];
- END
- ARRAY ERR$OVLY [0:0] S(1);
- BEGIN # ERROR PROCESSOR OVERLAY NAME AND LEVEL #
- ITEM EO$NAM C(00,00,07) = ["ERROVLY"];
- ITEM EO$LV1 U(00,42,09) = [5];
- ITEM EO$LV2 U(00,51,09) = [0];
- END
- ARRAY MKD$OVLY [0:0] S(1);
- BEGIN # K-DISPLAY MANAGER OVERLAY NAME AND LEVEL#
- ITEM MO$NAM C(00,00,07) = ["MKDOVLY"];
- ITEM MO$LV1 U(00,42,09) = [3];
- ITEM MO$LV2 U(00,51,09) = [0];
- END
- SWITCH ABTCASE # SWITCH FOR APPLICATION BLOCK TYPES #
- SMP00, # NULL BLOCK, ERROR #
- SMP00, # BLK BLOCK, ERROR #
- SMP00, # MSG BLOCK, ERROR #
- SMP01, # SM BLOCK ORIGINATED FROM NAM #
- SMP02, # SM BLOCK ORIGINATED FROM PIP/NPU #
- ;
- CONTROL EJECT;
- $BEGIN
- NS$DBG("SMP"); # TRACE CALL #
- $END
- IDLE = FALSE;
- SM$REISSUE = FALSE;
- FOR I = 0 WHILE NOT IDLE
- DO # CHECK IF THERE IS A SUPERVISORY MESSAGE TO PROCESS #
- BEGIN
- IF NOT SM$REISSUE
- THEN # NO SUPERVISORY MESSAGE GOT REISSUED #
- BEGIN
- IF NSU$S[0]
- THEN # SUPERVISORY MESSAGE IS AVAILABLE #
- NETGET(0,ABH$WORD,SMB$BUFFER,MAX$SMSIZE); # GET SM #
- ELSE # SUPERVISORY MESSAGE NOT AVAILABLE #
- BEGIN # EXIT FOR LOOP #
- IDLE = TRUE;
- TEST I;
- END
- END
- ELSE # SUPERVISORY MESSAGE IS REISSUED #
- SM$REISSUE = FALSE; # CLEAR SM REISSUE FLAG #
- ERRCODE = 0;
- ABT = ABHABT[0]; # APPLICATION BLOCK TYPE #
- GOTO ABTCASE[ABT]; # CASE ON ABT #
- SMP00: # SM BLOCK TYPE ERROR #
- ERRCODE = NS$FEC(EC"ERR$SM",SMEC"HSM$ABH");
- GOTO SMP03;
- SMP01: # SM FROM NAM #
- NDLOVLD(HSM$OVLY,ERRCODE);
- GOTO SMP03;
- SMP02: # SM FROM NETWORK #
- NS$NSM(ERRCODE);
- SMP03:
- IF ERRCODE NQ 0
- THEN # CALL ERROR PROCESSOR #
- NDLOVLD(ERR$OVLY,ERRCODE);
- IF DCW$F$SKD[0]
- THEN # K-DISPLAY DATA TO SEND #
- NDLOVLD(MKD$OVLY); # CALL K-DISPLAY MANAGER #
- $BEGIN
- #
- IF A NON-ZERO MC COUNT IS SPECIFIED AND THE NUMBER OF TRACE
- MESSAGES ACCUMULATED ON THE DEBUG LOG FILE ZZZZZDN REACHES MC,
- CALL AIP PROCEDURE -NETREL- TO RELEASE, SAVE AND PROCESS THE
- CURRENT INFORMATION IN THE DEBUG LOG FILE.
- #
- IF MC NQ 0 # PERIODIC RELEASE OF ZZZZZDN SPECIFIED #
- AND NSU$MC[0] GQ MC # SPECIFIED MESSAGE COUNT REACHED #
- THEN # RELEASE CURRENT INFORMATION ON ZZZZZDN #
- NETREL(NRF1$LFN,MAX$TMSGSZ,0);
- $END
- END # END FOR LOOP #
- RETURN;
- END # NS$SMP #
- TERM
cdc/nos2.source/nam5871/ns_smp.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator