*DECK IPINITH USETEXT TEXTIPL PROC IPINITH; *CALL COPYRITE CDCNET - COPYRIGHT CONTROL DATA. 1992. # TITLE IPINITH - IP NAM INPUT TRAFFIC HANDLER. # BEGIN # IPINITH # # **** IPINITH IP NAM INPUT TRAFFIC HANDLER. * * THIS PROCEDURE HANDLES ALL INPUT THROUGH THE AIP NAM INTERFACE. * * PROC IPINITH * * ENTRY NSUP = NAM SUPERVISORY WORD * * EXIT INPBUF = ARRAY CONTAINING SUPERVISORY/DATA MESSAGE * P = PTR TO INPUT APPLICATION BLOCK HEADER. * * METHOD CALL NETGETL FOR EITHER SUPERVISORY MESSAGES OR DATA. * IF A SUPERVISORY MESSAGE IS OBTAINED THEN *IPISPSM* * IS CALLED, IF DATA IS OBTAINED THE *IPIPIDB* IS CALLED. * IF NO NAM INPUT IS AVAILABLE NETWAIT IS CALLED. * RELEASE THE DEBUG LOG FILE IF MESSAGE COUNT EXPIRED. # # **** PROC IPINITH - XREF LIST # XREF BEGIN PROC IPIPIDB; # PROCESS INPUT DATA BLOCK # PROC IPISPSM; # PROCESS SUPERVISORY MESSAGE # PROC NETGETL; # GET NEXT BLOCK ON SPECIFIED LIST # PROC NETREL; # RELEASE LOG FILE # PROC NETWAIT; # SUSPEND NETWORK APPLICATION # END # ** # ITEM GETMLIST U = DATA$; # LIST TO GET TRAFFIC FROM # SWITCH GETTRAFFIC # SWITCH TO GET TRAFFIC FROM NAM# S0D0G0, # NO DATA AVAILABLE # S0D0G1, # NO DATA AVAILABLE # S0D1G0, # GET DATA (LIST 1) # S0D1G1, # GET DATA (LIST 1) # S1D0G0, # GET SM (LIST 0) # S1D0G1, # GET SM (LIST 0) # S1D1G0, # GET DATA (LIST 1) # S1D1G1; # GET SM (LIST 0) # CONTROL EJECT; # **** START OF *IPINITH* # # **** IF NO NAM INPUT IS AVAILABLE CALL NETWAIT. * IF TRAFFIC IS AVAILABLE, ISSUE A NETGETL ON EITHER THE * SUPERVISORY MESSAGE LIST OR THE DATA LIST, ROTATING BETWEEN THE * TWO MESSAGE TYPE. CALL THE APPROPRIATE PROCESSOR. # P = LOC(IABH); GOTO GETTRAFFIC[NSUP$SU[0]*4+NSUP$DU[0]*2+GETMLIST]; S0D0G0: # NO TRAFFIC AVAILABLE # S0D0G1: IF BLOCK THEN BEGIN NETWAIT(NORMWAIT$, 0); END ELSE BEGIN NETWAIT(NOWAIT$, 0); END GOTO NTHEND; # GO TO COMMON END OF PROCEDURE # S1D0G0: # GET SUPERVISORY MESSAGE # S1D0G1: S1D1G1: GETMLIST = SM$; # SET GET MESSAGE TYPE TO SM # NETGETL (GETMLIST, IABH, INPBUF, INPSIZE$); # INPUT THE MESSAGE # IF ABHABT [0] NQ 0 # NOT A NULL BLOCK FROM NAM # AND ABHIBU [0] EQ 0 # AND A BLOCK WAS DELIVERED # THEN BEGIN IPISPSM; # PROCESS SUPERVISORY MESSAGE # END GOTO NTHEND; # GO TO COMMON END OF PROCEDURE # S0D1G0: # GET DATA MESSAGE # S0D1G1: S1D1G0: GETMLIST = DATA$; # SET GET MESSAGE TYPE TO DATA # NETGETL (GETMLIST, IABH, # GET CONNECTION TRAFFIC # INPBUF, INPSIZE$); IF ABHABT [0] NQ 0 # NOT A NULL BLOCK FROM NAM # AND ABHIBU [0] EQ 0 # AND A BLOCK WAS DELIVERED # THEN BEGIN IPIPIDB; # PROCESS DATA BLOCK # END GOTO NTHEND; # GO TO COMMON END OF PROCEDURE # NTHEND: # COMMON END # IF (IPMC NQ 0) AND (NSUP$MC GQ IPMC) THEN NETREL (NDLFILE, 0, 0); # RELEASE *ZZZZZDN* FILE # RETURN; # RETURN TO CALLER # END # IPINITH # TERM