*DECK NVFIIPS USETEXT TEXTNVF USETEXT TEXTSS USETEXT TXTANVF USETEXT TXTAPSS PROC NVFIIPS; # TITLE NVFIIPS - INITIALIZE PID STATUS. # BEGIN # ** NVFIIPS - INITIALIZE PID STATUS. * * C. J. BRION 83/12/12. * P. A. MURRAY 84/03/19. * * THIS ROUTINE IS PART OF THE INITIALIZATION PROCESS FOR NVF. * ITS JOB IS TO ISSUE A MACREL SPIDA CALL IN ORDER TO INSURE * THAT ALL INTERHOST NHP PID ACCESS IS UNAVAILABLE UNTIL THE * APPROPRIATE LOGICAL LINK STATUS MESSAGES ARE RECEIVED. ADDITIONAL * SPIDA CALLS MAY BE ISSUED TO INSURE THAT ANY INTRAHOST LOGICAL * LINKS ARE AVAILABLE. * * PROC NVFIIPS * * ENTRY NONE. * * EXIT ONE OR MORE SPIDA CALLS HAVE BEEN ISSUED. * # # **** PROC NVFUPRP - XREF LIST. # XREF BEGIN PROC NVFUMQE; # MAKE QUEUE ENTRY # PROC SPIDA; # MACREL SETPIDA I/F ROUTINE # PROC MACHID; # MACREL GET MACHID ROUTINE # END ARRAY HOSTPIDB[00:00] S(1); BEGIN ITEM HOSTPRE C(00,42,01); # FIELD FOR HOST PREFIX # ITEM HOSTID U(00,48,12); # FIELD FOR MACHINE ID # ITEM HOSTPID C(00,42,03); # ACTUAL HOST PID # END # ** PIDMSG - PID NHP LOG FILE MESSAGE ARRAY. # ARRAY PIDMSG [00:00] S(5); BEGIN ITEM PUM$PFCSFC U(00,00,16) = [HOPLG]; ITEM PUM$MSG1 C(01,00,05) = ["PID: "]; ITEM PUM$PID C(01,30,03); ITEM PUM$MSG2 C(01,48,22) = [", NHP PATH - AVAILABLE"]; ITEM PUM$ZBYT U(04,00,60) = [0]; END # ** SPIDBLK - SETPIDA PARAMETER BLOCK. * * THIS PARAMETER BLOCK DEFINES THE SETPIDA FUNCTION PARAMETERS * FOR SETTING ALL NHP CONNECTED PIDS UNAVAILABLE. # ARRAY SPIDBLK [00:00] S(2); BEGIN ITEM SPI$FC U(00,00,12) = [1]; # SET NW STATUS FC # ITEM SPI$NP U(00,12,12) = [1]; # NUMBER PIDS = 1 # ITEM SPI$NW U(00,24,12) = [1]; # NHP NW ID # ITEM SPI$RES1 U(00,36,23) = [0]; # RESERVED # ITEM SPI$CBIT B(00,59,01) = [TRUE]; # COMPLETE BIT # ITEM SPI$PID C(01,00,03); # PID NAME, *** = ALL PIDS # ITEM SPI$RES2 U(01,18,38) = [0]; # RESERVED # ITEM SPI$ST U(01,56,04); # NETWORK STATUS # END ITEM BLKADDR I; # SPIDA PARM BLK ADDR CELL # ITEM LLORD I; # LLINK ORDINAL IN A PID ENTRY# ITEM NUMLL I; # NUMBER OF LLINKS FOR A PID # ITEM PORD I; # PID ORDINAL IN PATHPID TABLE# CONTROL EJECT; # * ISSUE SPIDA CALL TO SET ALL NHP PIDS TO UNAVAILABLE. # BLKADDR = LOC(SPIDBLK[0]); SPI$PID[0] = "***"; SPI$ST[0] = 0; SPIDA(BLKADDR); # * CONSTRUCT PID NAME OF HOST FROM MACHINE ID. # MACHID(HOSTPIDB); HOSTPRE="M"; # * CHECK FOR PID WITH HOST PID NAME. IF FOUND, SET 1 ACTIVE LLINK # IF LLPIDL NQ 0 THEN BEGIN FOR PORD = 0 STEP ((LLP$LLCNT[PORD] * PIDLLSIZ$) + 1) WHILE PORD LS LLPIDL DO IF HOSTPID EQ LLP$PNAME[PORD] THEN BEGIN LLP$ACLL[PORD] = LLP$ACLL[PORD] + 1; PUM$PID[0] = LLP$PNAME[PORD]; SPI$PID[0] = LLP$PNAME[PORD]; SPI$ST[0] = PIDOPST$; SPIDA(BLKADDR); NVFUMQE(P,PIDMSG[0],APPCMD,0,5); END END END # NVFIIPS # TERM