NETATTEN        - PROCESS ATTENTION CONDITIONS                   22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)    3300  HISTORY

   (1)    4100  DECLARATIONS

   (1)    6500  BREAK ALL LINKS TO NODE

   (1)   13700  DELIVER ATTENTION TO USER VIA MAILBOX

   (1)   21300  CLEAR OUT QUEUES

   (1)   30300  SHUTDOWN A LOGICAL LINK

   (1)   34800  CHECK FOR LINE TO GO OFF

NETATTEN        - PROCESS ATTENTION CONDITIONS                   22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page   1

X01                                                                                                                              (1)



                                     0000   100 

                                     0000   200 	.TITLE	NETATTEN - PROCESS ATTENTION CONDITIONS 

                                     0000   300 	.IDENT	/X01/

                                     0000   400 

                                     0000   500 ;

                                     0000   600 ; COPYRIGHT (C) 1977, 1978

                                     0000   700 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000   800 ;

                                     0000   900 ; THIS SOFTWARE IS FURNISHED  UNDER A LICENSE FOR USE ONLY ON A SINGLE

                                     0000  1000 ; COMPUTER  SYSTEM AND  MAY BE  COPIED ONLY WITH  THE INCLUSION OF THE

                                     0000  1100 ; ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE, OR ANY OTHER COPIES THEREOF,

                                     0000  1200 ; MAY NOT BE PROVIDED OR  OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON

                                     0000  1300 ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE

                                     0000  1400 ; TERMS.  TITLE TO AND  OWNERSHIP OF THE  SOFTWARE  SHALL AT ALL TIMES

                                     0000  1500 ; REMAIN IN DEC.

                                     0000  1600 ;

                                     0000  1700 ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE

                                     0000  1800 ; AND SHOULD  NOT BE CONSTRUED  AS A COMMITMENT  BY DIGITAL  EQUIPMENT

                                     0000  1900 ; CORPORATION.

                                     0000  2000 ;

                                     0000  2100 ; DEC ASSUMES  NO  RESPONSIBILITY  FOR  THE USE OR  RELIABILITY OF ITS

                                     0000  2200 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

                                     0000  2300 

                                     0000  2400 ;++

                                     0000  2500 ; FACILITY:	NETWORK ACP

                                     0000  2600 ;

                                     0000  2700 ; ABSTRACT:

                                     0000  2800 ;

                                     0000  2900 ; ENVIRONMENT:

                                     0000  3000 ;	MODE = KERNEL

                                     0000  3100 ;--

NETATTEN        - PROCESS ATTENTION CONDITIONS                   22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page   2

X01             HISTORY                                                                                                          (1)



                                     0000  3300 	.SBTTL	HISTORY

                                     0000  3400 ; AUTHOR:	SCOTT G. DAVIS, CREATION DATE: 23-MAY-77

                                     0000  3500 ;

                                     0000  3600 ; MODIFIED BY:

                                     0000  3700 ;

                                     0000  3800 ;	, : VERSION

                                     0000  3900 ; 01	- 

NETATTEN        - PROCESS ATTENTION CONDITIONS                   22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page   3

X01             DECLARATIONS                                                                                                     (1)



                                     0000  4100 	.SBTTL	DECLARATIONS

                                     0000  4200 ;

                                     0000  4300 ; INCLUDE FILES:

                                     0000  4400 ;

                                     0000  4500 	$CXBDEF

                                     0000  4600 	$IRPDEF

                                     0000  4700 	$MSGDEF

                                     0000  4800 	$NDBDEF

                                     0000  4900 	$SSBDEF

                                     0000  5000 	$UCBDEF

                                     0000  5100 

                                     0000  5200 ;

                                     0000  5300 ; MACROS:

                                     0000  5400 ;

                                     0000  5500 

                                     0000  5600 ;

                                     0000  5700 ; EQUATED SYMBOLS:

                                     0000  5800 ;

                                     0000  5900 

                                     0000  6000 ;

                                     0000  6100 ; OWN STORAGE:

                                     0000  6200 ;

NETATTEN        - PROCESS ATTENTION CONDITIONS                   22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page   4

X01             DECLARATIONS                                                                                                     (1)



                                 00000000  6400 	.PSECT	NET_DISCONNECT,NOWRT

                                     0000  6500 	.SBTTL	BREAK ALL LINKS TO NODE

                                     0000  6600 ;++

                                     0000  6700 ; FUNCTIONAL DESCRIPTION:

                                     0000  6800 ;

                                     0000  6900 ; NET$BREAK - PHYLK HAS MARKED A LINK DOWN.

                                     0000  7000 ;		ALL LOGICAL LINKS TO THE NODE MUST BE BROKEN.

                                     0000  7100 ;

                                     0000  7200 ; NET$KILL_CON - ABORT LINK IN CIS STATE (ENTERED FROM TRN)

                                     0000  7300 ;

                                     0000  7400 ; NET$CONN_TIMOUT - CONNECT TIMED OUT

                                     0000  7500 ;

                                     0000  7600 ; NET$PATHLOST - ABORT LINK IN RUN STATE (ENTERED FROM TRN)

                                     0000  7700 ;

                                     0000  7800 ; CALLING SEQUENCE:

                                     0000  7900 ;

                                     0000  8000 ;	BSB/JSB	NET$BREAK

                                     0000  8100 ;

                                     0000  8200 ; INPUT PARAMETERS:

                                     0000  8300 ;

                                     0000  8400 ;	W^NET$GW_CHANNEL - CHANNEL NO. OF PHYLK LINE

                                     0000  8500 ;

                                     0000  8600 ; IMPLICIT INPUTS:

                                     0000  8700 ;

                                     0000  8800 ;	UCBVCT - GIVES LIST OF EXISTING LOGICAL LINKS

                                     0000  8900 ;

                                     0000  9000 ; COMPLETION CODES:

                                     0000  9100 ;

                                     0000  9200 ;	SS$_ABORT

                                     0000  9300 ;	SS$_TIMEOUT

                                     0000  9400 ;

                                     0000  9500 ; SIDE EFFECTS:

                                     0000  9600 ;

                                     0000  9700 ;	R8 - DESTROYED

                                     0000  9800 ;	ANY LOGICAL LINK USING PHYSICAL LINK IS DESTROYED.

                                     0000  9900 ;

                                     0000 10000 ;--

                                     0000 10100 

                                     0000 10200 NET$BREAK::

            50         00'8F     9A  0000 10300 	MOVZBL	#NET$C_MAXLNK,R0	; SET UP FOR LOOP

                                     0004 10400 10$:

            55       FFFC'CF40   D0  0004 10500 	MOVL	W^NET$AL_UCBVCT-4[R0],R5 ; GET THE NEXT UCB ADDRESS

                          14     13  000A 10600 	BEQL	100$			; IF EQL TABLE SLOT EMPTY

         7C A5       0000'CF     B1  000C 10700 	CMPW	W^NET$GW_CHANNEL,UCB$W_NT_CHAN(R5) ; RIGHT CHANNEL?

                          0C     12  0012 10800 	BNEQ	100$			; IF NEQ NO

            53            00'    9A  0014 10900 	MOVZBL	S^#NET$C_EV_DDCDN,R3	; EVENT IS "PHYLK DOWN"

            57         52 A5     9E  0017 11000 	MOVAB	UCB$B_STATE(R5),R7	; POINT TO STATE BYTE

       0000'CF            00     FB  001B 11100 	CALLS	#0,W^NET$TRN		; DO A TRANSITION

                                     0020 11200 100$:

            E1            50     F5  0020 11300 	SOBGTR	R0,10$			; LOOP

                                 05  0023 11400 	RSB				; DONE

                                     0024 11500 

                                     0024 11600 

                                     0024 11700 NET$KILL_CON::

            57            36     B0  0024 11800 	MOVW	#MSG$_PATHLOST,R7	; ATTENTION CODE

       0000'CF            00'    D0  0027 11900 	MOVL	S^#SS$_ABORT,W^NET$GQ_USR_STAT ; ABORT THE CONNECT

                          0A     11  002C 12000 	BRB	COMMON1			; GO TO COMMON CODE

NETATTEN        - PROCESS ATTENTION CONDITIONS                   22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page   5

X01             BREAK ALL LINKS TO NODE                                                                                          (1)



                                     002E 12100 

                                     002E 12200 NET$CONN_TIMOUT::

            57            3A     B0  002E 12300 	MOVW	#MSG$_TIMEOUT,R7	; ATTENTION CODE

       0000'CF       0000'8F     3C  0031 12400 	MOVZWL	#SS$_TIMEOUT,W^NET$GQ_USR_STAT ; I/O STATUS CODE

                                     0038 12500 COMMON1:

                          FFC5'  30  0038 12600 	BSBW	NET$BAD_ACCESS		; TERMINATE THE ACCESS

                          05     11  003B 12700 	BRB	COMMON2			; GO TO COMMON CODE

                                     003D 12800 

                                     003D 12900 NET$PATHLOST::

                          5C     10  003D 13000 	BSBB	NET$ABORT_IO		; ABORT PENDING I/O

            57            36     9A  003F 13100 	MOVZBL	#MSG$_PATHLOST,R7	; ATTENTION REASON

                                     0042 13200 COMMON2:

                          58     D4  0042 13300 	CLRL	R8			; NO DATA FOR USER

                          01     10  0044 13400 	BSBB	NET$ATTENTION		; INFORM THE USER OF BYE-BYE

                                 04  0046 13500 	RET				; THAT IS ALL

NETATTEN        - PROCESS ATTENTION CONDITIONS                   22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page   6

X01             DELIVER ATTENTION TO USER VIA MAILBOX                                                                            (1)



                                     0047 13700 	.SBTTL	DELIVER ATTENTION TO USER VIA MAILBOX

                                     0047 13800 ;++

                                     0047 13900 ; FUNCTIONAL DESCRIPTION:

                                     0047 14000 ;

                                     0047 14100 ; NET$ATTENTION - DELIVER ATTENTION TO USER VIA MAILBOX.

                                     0047 14200 ;		IF THERE IS NO MAILBOX, THE ATTENTION IS IGNORED.

                                     0047 14300 ;		ATTENTIONS ARE DUE TO:

                                     0047 14400 ;			INTERRUPT MSGS

                                     0047 14500 ;			PARTNER DISCONNECT (SYNCHRONOUS OR ABORT)

                                     0047 14600 ;			PARTNER EXIT

                                     0047 14700 ;			PATH LOST TO PARTNER 

                                     0047 14800 ;			CONNECT INITIATE

                                     0047 14900 ;			CONNECT CONFIRM

                                     0047 15000 ;			CONNECT REJECT

                                     0047 15100 ;

                                     0047 15200 ; NOTE:		IF A MESSAGE CANNOT BE PLACED IN THE MAILBOX (E.G.,

                                     0047 15300 ;		(BECAUSE IT'S FULL), THEN IF THE MESSAGE WAS A LOGICAL

                                     0047 15400 ;		LINK DISCONNECT NOTIFICATION, THE MESSAGE IS DROPPED IN

                                     0047 15500 ;		THE BIT BUCKET; OTHERWISE, THE LOGICAL LINK IS DISCONNECTED

                                     0047 15600 ;		WITH A REASON CODE OF "RESOURCES UNAVAILABLE".

                                     0047 15700 ;

                                     0047 15800 ; CALLING SEQUENCE:

                                     0047 15900 ;

                                     0047 16000 ;	BSB	NET$ATTENTION

                                     0047 16100 ;

                                     0047 16200 ; INPUT PARAMETERS:

                                     0047 16300 ;

                                     0047 16400 ;	R5 - UCB ADDRESS (OR 0)

                                     0047 16500 ;	R7 - ATTENTION CODE (WORD)

                                     0047 16600 ;	R8 - NO. OF DATA BYTES

                                     0047 16700 ;	R10 - PTR TO DATA

                                     0047 16800 ;

                                     0047 16900 ; IMPLICIT INPUTS:

                                     0047 17000 ;

                                     0047 17100 ;	NONE

                                     0047 17200 ;

                                     0047 17300 ; OUTPUT PARAMETERS:

                                     0047 17400 ;

                                     0047 17500 ;	R5 PRESERVED

                                     0047 17600 ;

                                     0047 17700 ;--

                                     0047 17800 NET$ATTENTION::

            54         54 A5     D0  0047 17900 	MOVL	UCB$L_AMB(R5),R4	; SET THE MAILBOX'S UCB ADDRESS

                          44     13  004B 18000 	BEQL	DONE			; IF NONE DO NOTHING

                                     004D 18100 ;

                                     004D 18200 ; SET UP A MAILBOX BUFFER

                                     004D 18300 ;

            53       0000'CF     9E  004D 18400 	MOVAB	W^NET$AB_ATTENBUF,R3	; SET THE BLOCK ADDRESS

                          55     DD  0052 18500 	PUSHL	R5			; SAVE THE LOGLNK UCB ADDRESS

                          18     BB  0054 18600 	PUSHR	#^M<R3,R4>		; SAVE STARTING ADDRESS

            83            57     B0  0056 18700 	MOVW	R7,(R3)+		; STORE THE ATTENTION CODE

                          63     B4  0059 18800 	CLRW	(R3)			; ASSUME NO UNIT NO.

                          55     D5  005B 18900 	TSTL	R5			; IS THERE A UCB?

                          04     13  005D 19000 	BEQL	10$			; IF EQL NO

            63         48 A5     B0  005F 19100 	MOVW	UCB$W_UNIT(R5),(R3)	; STORE THE UNIT NO.

                          83     B5  0063 19200 10$:	TSTW	(R3)+			; PASS THE UNIT NO.

            83   00000000'EF     D0  0065 19300 	MOVL	L^NET$NAME,(R3)+	; DEVICE NAME - COUNTED ASCII STRING

NETATTEN        - PROCESS ATTENTION CONDITIONS                   22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page   7

X01             DELIVER ATTENTION TO USER VIA MAILBOX                                                                            (1)



            83            58     90  006C 19400 	MOVB	R8,(R3)+		; STORE THE COUNT

            6A            58     28  006F 19500 	MOVC3	R8,(R10),(R3)		; MOVE DATA INTO MAILBOX BUFFER

                          63         0072       

                          30     BA  0073 19600 	POPR	#^M<R4,R5>		; GET MSG ADDRESS AND UCB ADDRESS

            53            54     C2  0075 19700 	SUBL	R4,R3			; GET THE LENGTH

                 00000000'EF     16  0078 19800 	JSB	EXE$WRTMAILBOX		; WRITE

                          20     BA  007E 19900 	POPR	#^M<R5>			; RESTORE THE LOGLNK UCB ADDRESS

            0E            50     E8  0080 20000 	BLBS	R0,DONE			; IF BS MSG WAS POSTED TO MBX

                                     0083 20100 ;

                                     0083 20200 ; MESSAGE DIDN'T GET INTO MAILBOX - MAY HAVE TO BREAK LINK

                                     0083 20300 ;

                                     0083 20400 	CASE	R7,LIMIT=#MSG$_CONFIRM,<- ;

                                     0083 20500 		NET$MBX_FULL,-		; CONFIRM

                                     0083 20600 		NET$MBX_FULL,-		; CONNECT

                                     0083 20700 		DONE,-			; SYNCH DISC

                                     0083 20800 		DONE,-			; EXIT

                                     0083 20900 		NET$MBX_FULL,-		; INTERRUPT MSG

                                     0083 21000 >					; IGNORE, FOR REST OF MSG TYPES

                                 05  0091 21100 DONE:	RSB				; THAT IS ALL

NETATTEN        - PROCESS ATTENTION CONDITIONS                   22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page   8

X01             CLEAR OUT QUEUES                                                                                                 (1)



                                     0092 21300 	.SBTTL	CLEAR OUT QUEUES

                                     0092 21400 ;++

                                     0092 21500 ; FUNCTIONAL DESCRIPTION:

                                     0092 21600 ;

                                     0092 21700 ; NET$CANCEL_IO - TERMINATE ALL I/O IN PROGRESS WITH SS$_CANCEL

                                     0092 21800 ; NET$ABORT_IO - TERMINATE ALL I/O WITH SS$_ABORT

                                     0092 21900 ;

                                     0092 22000 ; CLEAR - CLEAR OUT AN I/O QUEUE FOR A LOGICAL LINK

                                     0092 22100 ;

                                     0092 22200 ; CALLING SEQUENCE:

                                     0092 22300 ;

                                     0092 22400 ;	BSB	CLEAR

                                     0092 22500 ;

                                     0092 22600 ; INPUT PARAMETERS:

                                     0092 22700 ;

                                     0092 22800 ;	R5 - UCB ADDRESS

                                     0092 22900 ;	R7 - ADDRESS OF QUEUE HEAD (CLEAR)

                                     0092 23000 ;

                                     0092 23100 ; COMPLETION CODES:

                                     0092 23200 ;

                                     0092 23300 ;	SS$_ABORT

                                     0092 23400 ;	SS$_CANCEL

                                     0092 23500 ;

                                     0092 23600 ;--

                                     0092 23700 

                                     0092 23800 

                                     0092 23900 NET$CANCEL_IO::

       0000'CF       0000'8F     3C  0092 24000 	MOVZWL	#SS$_CANCEL,W^NET$GQ_USR_STAT ; CANCEL THE I/O

                          05     11  0099 24100 	BRB	CANCEL_COMMON		; GO TO COMMON CODE

                                     009B 24200 

                                     009B 24300 NET$ABORT_IO::

       0000'CF            00'    D0  009B 24400 	MOVL	S^#SS$_ABORT,W^NET$GQ_USR_STAT ; ABORT THE I/O

                                     00A0 24500 

                                     00A0 24600 CANCEL_COMMON:

         5A A5            20     A8  00A0 24700 	BISW	#UCB$M_NT_BREAK,UCB$W_DEVSTS(R5) ; MARK LINK TO BE BROKEN

            50         14 A5     D0  00A4 24800 	MOVL	UCB$L_FIRST(R5),R0	; GET ADDRESS OF FIRST RCV BFR, IF ANY

                          14     13  00A8 24900 	BEQL	30$			; IF EQL NONE

                                     00AA 25000 10$:

            56         10 A0     D0  00AA 25100 	MOVL	CXB$L_LINK(R0),R6	; GET THE LINK TO NEXT CXB

                          08     13  00AE 25200 	BEQL	20$			; IF EQL NONE

                          FF4D'  30  00B0 25300 	BSBW	NET$DEANONPAGED		; DEALLOCATE IT

            50            56     D0  00B3 25400 	MOVL	R6,R0			; SET TO LOOK AT NEXT

                          F2     11  00B6 25500 	BRB	10$			; LOOP

                                     00B8 25600 20$:

                          FF45'  30  00B8 25700 	BSBW	NET$DEANONPAGED		; DEALLOCATE THE FIRST BUFFER

                       14 A5     D4  00BB 25800 	CLRL	UCB$L_FIRST(R5)		; NO MORE MESSAGE

                                     00BE 25900 30$:

            56         74 A5     D0  00BE 26000 	MOVL	UCB$L_NT_DATSSB(R5),R6	; POINT TO DATA SUBCHANNEL

                       23 A6     94  00C2 26100 	CLRB	SSB$B_PNDCNT(R6)	; NO RECEIVES PENDING

            56         78 A5     D0  00C5 26200 	MOVL	UCB$L_NT_INTSSB(R5),R6	; POINT TO I/LS SUBCHANNEL

                       23 A6     94  00C9 26300 	CLRB	SSB$B_PNDCNT(R6)	; NO RECEIVES PENDING

                                     00CC 26400 40$:

            53         00 B5     0F  00CC 26500 	REMQUE	@UCB$L_RQFL(R5),R3	; REMOVE A QUEUE ENTRY

                          09     1D  00D0 26600 	BVS	50$			; IF VS QUEUE IS EMPTY

                                     00D2 26700 ;

                                     00D2 26800 ; ABORT THE PENDING I/O

                                     00D2 26900 ;

NETATTEN        - PROCESS ATTENTION CONDITIONS                   22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page   9

X01             CLEAR OUT QUEUES                                                                                                 (1)



         2A A3            02     AA  00D2 27000 	BICW	#IRP$M_FUNC,IRP$W_STS(R3) ; MAKE IT INTO A WRITE

                          FF27'  30  00D6 27100 	BSBW	NET$IODONE		; POST IT TO THE USER

                          F1     11  00D9 27200 	BRB	40$			; LOOP

                                     00DB 27300 50$:

                                     00DB 27400 ;

                                     00DB 27500 ; CLEAN UP THE INT/LS SUBCHANNEL

                                     00DB 27600 ;

            52         78 A5     D0  00DB 27700 	MOVL	UCB$L_NT_INTSSB(R5),R2	; GET THE SSB ADDRESS

                          20     10  00DF 27800 	BSBB	CLEAN_WACKQ		; CLEAN OUT THE WACKQ

                                     00E1 27900 ;

                                     00E1 28000 ; CLEAN UP THE DATA SUBCHANNEL

                                     00E1 28100 ;

                                     00E1 28200 60$:

            52         74 A5     D0  00E1 28300 	MOVL	UCB$L_NT_DATSSB(R5),R2	; GET THE SSB ADDRESS

            56         00 B2     0F  00E5 28400 	REMQUE	@SSB$L_XQFL(R2),R6	; REQUEUE XMTQ TO WACKQ

                          16     1D  00E9 28500 	BVS	CLEAN_WACKQ		; IF VS XMTQ IS EMPTY

         0B A6            01     90  00EB 28600 	MOVB	#CXB$C_DDCCON,CXB$B_CODE(R6) ; GUARANTEE BUFFER DEALLOCATION

         10 B2            66     0E  00EF 28700 	INSQUE	(R6),@SSB$L_WACKQBL(R2)	; PUT ITEM ON WACK QUEUE

                       7C A5     B5  00F3 28800 	TSTW	UCB$W_NT_CHAN(R5)	; LOCAL CHANNEL?

                          E9     12  00F6 28900 	BNEQ	60$			; IF NEQ NO

            50         00 B2     0F  00F8 29000 	REMQUE	@SSB$L_XQFL(R2),R0	; GET THE RECEIVE BUFFER

                          FF01'  30  00FC 29100 	BSBW	NET$DEANONPAGED		; AND GIVE IT BACK

                          E0     11  00FF 29200 	BRB	60$			; LOOP

                                     0101 29300 

                                     0101 29400 CLEAN_WACKQ:

            56         10 B2     0F  0101 29500 	REMQUE	@SSB$L_WACKQBL(R2),R6	; GET ITEM AT END OF QUEUE, IF ANY

                          0E     1D  0105 29600 	BVS	20$			; IF VS NONE

            50         1F A6     3C  0107 29700 	MOVZWL	CXB$C_NSPSTART+5(R6),R0	; GET SEGNUM

                       14 A6     D4  010B 29800 	CLRL	CXB$L_SSB(R6)		; MAKE SURE TIPC WON'T BE DIDDLED

         10 B2            66     0E  010E 29900 	INSQUE	(R6),@SSB$L_WACKQBL(R2)	; PUT BACK THE SEGMENT

                          FEEB'  30  0112 30000 	BSBW	NET$FAKE_ACK		; "ACK" ALL OF THE SEGMENTS

                                 05  0115 30100 20$:	RSB				; DONE

NETATTEN        - PROCESS ATTENTION CONDITIONS                   22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page  10

X01             SHUTDOWN A LOGICAL LINK                                                                                          (1)



                                     0116 30300 	.SBTTL	SHUTDOWN A LOGICAL LINK

                                     0116 30400 ;++

                                     0116 30500 ; FUNCTIONAL DESCRIPTION:

                                     0116 30600 ;

                                     0116 30700 ; NET$SHUTDOWN - THIS ROUTINE TERMINATES ACTIVITY ON A LOGICAL LINK

                                     0116 30800 ;

                                     0116 30900 ; CALLING SEQUENCE:

                                     0116 31000 ;

                                     0116 31100 ;	BSB	NET$SHUTDOWN

                                     0116 31200 ;

                                     0116 31300 ; INPUT PARAMETERS:

                                     0116 31400 ;

                                     0116 31500 ;	R5 - UCB ADDRESS

                                     0116 31600 ;

                                     0116 31700 ; COMPLETION CODES:

                                     0116 31800 ;

                                     0116 31900 ;	SS$_ABORT - RETURNED FOR ALL OUTSTANDING I/O ON LOGICAL LINK

                                     0116 32000 ;

                                     0116 32100 ; SIDE EFFECTS:

                                     0116 32200 ;

                                     0116 32300 ; LINE MAY BE SET "OFF" - ACP MAY EXIT IF "OFF" AND NO MORE LINKS

                                     0116 32400 ;

                                     0116 32500 ;--

                                     0116 32600 

                                     0116 32700 NET$SHUTDOWN::

                                     0116 32800 ;

                                     0116 32900 ; ABORT ALL PENDING I/O

                                     0116 33000 ;

                          83     10  0116 33100 	BSBB	NET$ABORT_IO		; TERMINATE THE I/O

                                     0118 33200 ;

                                     0118 33300 ; DEALLOCATE THE SUBCHANNEL STATUS BLOCKS

                                     0118 33400 ;

            50         74 A5     D0  0118 33500 	MOVL	UCB$L_NT_DATSSB(R5),R0	; DATA SSB

                       0A A0     94  011C 33600 	CLRB	SSB$B_TYPE(R0)		; MAKE SURE IT IS UNRECOGNIZABLE

                          FEDE'  30  011F 33700 	BSBW	NET$DEANONPAGED		; DO IT

            50         78 A5     D0  0122 33800 	MOVL	UCB$L_NT_INTSSB(R5),R0	; INTERRUPT/LINKSERVICES SSB

                       0A A0     94  0126 33900 	CLRB	SSB$B_TYPE(R0)		; MAKE SURE IT IS UNRECOGNIZABLE

                          FED4'  30  0129 34000 	BSBW	NET$DEANONPAGED		; DO IT

            51         1A A5     9A  012C 34100 	MOVZBL	UCB$W_SRCADDR(R5),R1	; GET INDEX PART OF CONNECT NO.

                     FFFC'CF41   D4  0130 34200 	CLRL	W^NET$AL_UCBVCT-4[R1]	; CLEAR OUT THE VECTOR SLOT

                     0000'CF     B7  0135 34300 	DECW	W^NET$GW_ACTLNKS	; NO MORE LINK

       0000'CF         7C A5     B0  0139 34400 	MOVW	UCB$W_NT_CHAN(R5),W^NET$GW_CHANNEL ; IS IT A REAL LINE?

                          33     13  013F 34500 	BEQL	CHECK_END		; IF EQL NO

                                     0141 34600 					; FALL THROUGH TO SEE IF MUST TURN OFF LINE

NETATTEN        - PROCESS ATTENTION CONDITIONS                   22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page  11

X01             CHECK FOR LINE TO GO OFF                                                                                         (1)



                                     0141 34800 	.SBTTL	CHECK FOR LINE TO GO OFF

                                     0141 34900 ;++

                                     0141 35000 ; FUNCTIONAL DESCRIPTION:

                                     0141 35100 ;

                                     0141 35200 ; NET$CHECK_LINE - SEE IF ANY CONNECTS REMAIN OVER THIS LINE

                                     0141 35300 ;	SHUT DOWN LINE IF NOT.

                                     0141 35400 ; NET$CHECK_LINEA - SAME, BUT R9 ALREADY CONTAINS NDB ADDRESS

                                     0141 35500 ;

                                     0141 35600 ;--

                                     0141 35700 

                                     0141 35800 NET$CHECK_LINE::

                          FEBC'  30  0141 35900 	BSBW	NET$FND_NDB_CHN		; PICK UP THE NDB, GIVEN THE CHANNEL

                          2E     13  0144 36000 	BEQL	CHECK_END		; IF EQL THE LINE WENT AWAY

         17 A9            01     E1  0146 36100 	BBC	#NDB$V_OFF,NDB$B_STATUS(R9),CHECK_END ; IF BC NOT OFF

                          29         014A       

                                     014B 36200 

                                     014B 36300 NET$CHECK_LINEA::

            50         00'8F     9A  014B 36400 	MOVZBL	#NET$C_MAXLNK,R0	; SET FOR LOOP

            57         16 A9     9E  014F 36500 	MOVAB	NDB$B_STATE(R9),R7	; SET FOR POSSIBLE NSP TRANSITION

            53            00'    9A  0153 36600 	MOVZBL	S^#NET$C_EV_NSPOFF,R3	; EVENT IS "OFF"

                                     0156 36700 10$:

            51       FFFC'CF40   D0  0156 36800 	MOVL	W^NET$AL_UCBVCT-4[R0],R1 ; GET UCB ADDRESS OF LOGICAL LINK

                          08     13  015C 36900 	BEQL	20$			; IF EQL NONE

         7C A1       0000'CF     B1  015E 37000 	CMPW	W^NET$GW_CHANNEL,UCB$W_NT_CHAN(R1) ; SAME CHANNEL?

                          0E     13  0164 37100 	BEQL	CHECK_END		; IF EQL NO

            ED            50     F5  0166 37200 20$:	SOBGTR	R0,10$			; LOOP

            56            06     D0  0169 37300 	MOVL	#NDB$C_MSG_SHUT,R6	; LINE IS SHUTTING DOWN

                          FE91'  30  016C 37400 	BSBW	NET$OPCOM		; TELL THE OPERATOR

       0000'CF            00     FB  016F 37500 	CALLS	#0,W^NET$TRN		; DO A TRANSITION

                                 05  0174 37600 CHECK_END:	RSB			; DONE

                                     0175 37700  

                                     0175 37800 	.END

NETATTEN        - PROCESS ATTENTION CONDITIONS                   22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page  12

SYMBOL TABLE                                                                                                                     (1)



BIT...         = 00000000            IRP$M_PAGIO    = 00000004            MSG$_SNDACC    = 0000000A            

CANCEL_COMMON    000000A0 R     03   IRP$M_PHYSIO   = 00000100            MSG$_SNDSMB    = 00000004            

CHECK_END        00000174 R     03   IRP$M_PRIVIO   = 00000200            MSG$_SUSOPR    = 00000012            

CLEAN_WACKQ      00000101 R     03   IRP$M_SWAPIO   = 00000040            MSG$_THIRDPARTY= 00000039            

COMMON1          00000038 R     03   IRP$M_VIRTUAL  = 00000010            MSG$_TIMEOUT   = 0000003A            

COMMON2          00000042 R     03   IRP$Q_NT_PRVMSK  0000003C            MSG$_TRMHANGUP = 00000006            

CXB$B_CODE       0000000B            IRP$S_FCODE    = 00000006            MSG$_TRMUNSOLIC= 00000001            

CXB$B_TYPE       0000000A            IRP$S_FMOD     = 0000000A            MSG$_XM_ATTN   = 0000000D            

CXB$C_DDCCON   = 00000001            IRP$S_MODE     = 00000002            MSG$_XM_DATAVL = 0000000B            

CXB$C_DDCDAT   = 00000002            IRP$V_BUFIO    = 00000000            MSG$_XM_SHUTDN = 0000000C            

CXB$C_DDCERR   = 00000004            IRP$V_CHAINED  = 00000005            NDB$B_COMMVER    0000002B            

CXB$C_DDCRCV   = 00000003            IRP$V_COMPLX   = 00000003            NDB$B_CONNTMO    0000004F            

CXB$C_LENGTH     00000018            IRP$V_DIAGBUF  = 00000007            NDB$B_FUNC       00000021            

CXB$C_NSPSTART   0000001A            IRP$V_FCODE    = 00000000            NDB$B_NONPRVACC  00000050            

CXB$K_LENGTH     00000018            IRP$V_FMOD     = 00000006            NDB$B_NUMBUF     0000000B            

CXB$K_NSPSTART   0000001A            IRP$V_FUNC     = 00000001            NDB$B_PRVACC     0000007C            

CXB$L_BL         00000004            IRP$V_MBXIO    = 0000000A            NDB$B_RTEVER     00000028            

CXB$L_FL         00000000            IRP$V_MODE     = 00000000            NDB$B_STATE      00000016            

CXB$L_IRP        00000010            IRP$V_PAGIO    = 00000002            NDB$B_STATUS     00000017            

CXB$L_LINK       00000010            IRP$V_PHYSIO   = 00000008            NDB$B_TYPE       0000000A            

CXB$L_SSB        00000014            IRP$V_PRIVIO   = 00000009            NDB$C_CTL_LOOP = 00000005            

CXB$W_CHANNEL    00000010            IRP$V_SWAPIO   = 00000006            NDB$C_LENGTH     000000BC            

CXB$W_LENGTH     0000000C            IRP$V_VIRTUAL  = 00000004            NDB$C_LOOP     = 00000003            

CXB$W_OFFSET     0000000E            IRP$W_ABCNT      0000003C            NDB$C_MAINT    = 00000004            

CXB$W_SIZE       00000008            IRP$W_BCNT       00000032            NDB$C_MSG_DCHK = 00000009            

DONE             00000091 R     03   IRP$W_BOFF       00000030            NDB$C_MSG_DOWN = 00000003            

EXE$WRTMAILBOX   ********   X   03   IRP$W_CHAN       00000028            NDB$C_MSG_DSRCH= 00000007            

GBL...         = 00000000            IRP$W_FUNC       00000020            NDB$C_MSG_LOOPB= 00000008            

IRP$B_CARCON     00000038            IRP$W_OBCNT      0000003E            NDB$C_MSG_MAINT= 00000002            

IRP$B_EFN        00000022            IRP$W_SIZE       00000008            NDB$C_MSG_NGINI= 00000004            

IRP$B_PRI        00000023            IRP$W_STS        0000002A            NDB$C_MSG_OKINI= 00000005            

IRP$B_RMOD       0000000B            IRP$W_TT_PRMPT   0000003C            NDB$C_MSG_SHUT = 00000006            

IRP$B_TYPE       0000000A            MSG$_ABOOPR    = 00000011            NDB$C_MSG_START= 00000001            

IRP$C_LENGTH     0000004C            MSG$_ABORT     = 00000030            NDB$C_OFF      = 00000001            

IRP$K_LENGTH     0000004C            MSG$_ACCRSP    = 00000021            NDB$C_ON       = 00000000            

IRP$L_AST        00000010            MSG$_CONFIRM   = 00000031            NDB$C_SHUT     = 00000002            

IRP$L_ASTPRM     00000014            MSG$_CONNECT   = 00000032            NDB$K_LENGTH     000000BC            

IRP$L_DIAGBUF    00000044            MSG$_CRUNSOLIC = 00000002            NDB$L_LINE_NAME  00000004            

IRP$L_IOQBL      00000004            MSG$_DELPROC   = 00000003            NDB$L_NEXT       00000000            

IRP$L_IOQFL      00000000            MSG$_DELSMB    = 00000014            NDB$M_CTL_LOOP = 00000008            

IRP$L_IOSB       00000024            MSG$_DEVOFFLIN = 00000005            NDB$M_LOOPBACK = 00000001            

IRP$L_IOST1      00000034            MSG$_DEVONLIN  = 00000007            NDB$M_OFF      = 00000002            

IRP$L_IOST2      00000038            MSG$_DISCON    = 00000033            NDB$M_SHUT     = 00000004            

IRP$L_MEDIA      00000034            MSG$_EXIT      = 00000034            NDB$Q_AST        0000000C            

IRP$L_PID        0000000C            MSG$_INIOPR    = 00000010            NDB$Q_ZEROTIME   000000AC            

IRP$L_SEGVBN     00000040            MSG$_INTMSG    = 00000035            NDB$T_NAME       0000001A            

IRP$L_SEQNUM     00000048            MSG$_OPREPLY   = 00000009            NDB$T_SYSVER     0000002E            

IRP$L_SVAPTE     0000002C            MSG$_OPRQST    = 00000008            NDB$V_CTL_LOOP = 00000003            

IRP$L_TT_TERM    00000038            MSG$_PATHLOST  = 00000036            NDB$V_LOOPBACK = 00000000            

IRP$L_UCB        0000001C            MSG$_PROTOCOL  = 00000037            NDB$V_OFF      = 00000001            

IRP$L_WIND       00000018            MSG$_REJECT    = 00000038            NDB$V_SHUT     = 00000002            

IRP$M_BUFIO    = 00000001            MSG$_RESOPR    = 00000013            NDB$W_BLKSIZE    00000022            

IRP$M_CHAINED  = 00000020            MSG$_SCANBAD   = 00000028            NDB$W_BUFSIZE    000000A8            

IRP$M_COMPLX   = 00000008            MSG$_SCANRSP   = 00000029            NDB$W_CHANNEL    00000014            

IRP$M_DIAGBUF  = 00000080            MSG$_SMBDON    = 00000009            NDB$W_CHAR       000000AA            

IRP$M_FUNC     = 00000002            MSG$_SMBINI    = 00000008            NDB$W_HISBLKSIZ  000000B8            

IRP$M_MBXIO    = 00000400            MSG$_SMBRSP    = 00000020            NDB$W_HISNSPSIZ  000000BA            

NETATTEN        - PROCESS ATTENTION CONDITIONS                   22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page  13

SYMBOL TABLE                                                                                                                     (1)



NDB$W_MAXLNK     00000026            SSB$W_XMTSEGNUM  0000001C            UCB$L_OPCNT      00000060            

NDB$W_NODEADDR   00000018            UCB$B_AMOD       00000053            UCB$L_OWNUIC     0000001C            

NDB$W_NSPSIZE    00000024            UCB$B_CEX        00000077            UCB$L_PID        00000028            

NDB$W_RCVBLKS    000000B4            UCB$B_CM1        0000004A            UCB$L_RQBL       00000004            

NDB$W_SIZE       00000008            UCB$B_CM2        0000004B            UCB$L_RQFL       00000000            

NDB$W_XMTBLKS    000000B6            UCB$B_DEVCLASS   00000038            UCB$L_SVAPTE     00000068            

NET$ABORT_IO     0000009B RG    03   UCB$B_DEVTYPE    00000039            UCB$L_SVPN       00000064            

NET$AB_ATTENBUF  ********   X   03   UCB$B_DIPL       00000052            UCB$L_TTCHAR     0000003C            

NET$AL_UCBVCT    ********   X   03   UCB$B_DX_SCTCNT  000000A6            UCB$L_VCB        00000030            

NET$ATTENTION    00000047 RG    03   UCB$B_ERTCNT     00000070            UCB$M_BACKP    = 00000020            

NET$BAD_ACCESS   ********   X   03   UCB$B_ERTMAX     00000071            UCB$M_BSY      = 00000100            

NET$BREAK        00000000 RG    03   UCB$B_ESCAPE     0000004B            UCB$M_CANCEL   = 00000008            

NET$CANCEL_IO    00000092 RG    03   UCB$B_FEX        00000076            UCB$M_DEADMO   = 00000400            

NET$CHECK_LINE   00000141 RG    03   UCB$B_FIPL       0000000B            UCB$M_DELMBX   = 00000002            

NET$CHECK_LINEA  0000014B RG    03   UCB$B_LOCSRV     0000003C            UCB$M_DIAGBUF  = 00000002            

NET$CONN_TIMOUT  0000002E RG    03   UCB$B_OFFNDX     00000094            UCB$M_DX_WRITE = 00000008            

NET$C_EV_DDCDN   ********   X   03   UCB$B_OFFRTC     00000095            UCB$M_ECC      = 00000001            

NET$C_EV_NSPOFF  ********   X   03   UCB$B_REMSRV     0000003D            UCB$M_ERLOGIP  = 00000004            

NET$C_MAXLNK     ********   X   03   UCB$B_SECTORS    0000003C            UCB$M_INT      = 00000002            

NET$DEANONPAGED  ********   X   03   UCB$B_SLAVE      00000074            UCB$M_INTTYPE  = 00000080            

NET$FAKE_ACK     ********   X   03   UCB$B_SPR        00000075            UCB$M_JOB      = 00000001            

NET$FND_NDB_CHN  ********   X   03   UCB$B_STATE      00000052            UCB$M_MOUNTING = 00000200            

NET$GQ_USR_STAT  ********   X   03   UCB$B_TRACKS     0000003D            UCB$M_NOCNVRT  = 00000004            

NET$GW_ACTLNKS   ********   X   03   UCB$B_TYPE       0000000A            UCB$M_NT_BFROVF= 00000004            

NET$GW_CHANNEL   ********   X   03   UCB$B_VERTSZ     0000003F            UCB$M_NT_BREAK = 00000020            

NET$IODONE       ********   X   03   UCB$C_LENGTH     00000074            UCB$M_NT_NAME  = 00000010            

NET$KILL_CON     00000024 RG    03   UCB$C_LOGLNK   = 00000001            UCB$M_ONLINE   = 00000010            

NET$MBX_FULL     ********   X   03   UCB$K_LENGTH     00000074            UCB$M_POWER    = 00000020            

NET$NAME         ********   X   03   UCB$L_AMB        00000054            UCB$M_PRMMBX   = 00000001            

NET$OPCOM        ********   X   03   UCB$L_ASTQBL     00000010            UCB$M_TIM      = 00000001            

NET$PATHLOST     0000003D RG    03   UCB$L_ASTQFL     0000000C            UCB$M_TIMOUT   = 00000040            

NET$SHUTDOWN     00000116 RG    03   UCB$L_CPID       0000005C            UCB$M_TT_NOTIF = 00000004            

NET$TRN          ********   X   03   UCB$L_CRB        00000020            UCB$M_TT_TIMO  = 00000002            

SS$_ABORT        ********   X   03   UCB$L_DDB        00000024            UCB$M_UNLOAD   = 00001000            

SS$_CANCEL       ********   X   03   UCB$L_DEVCHAR    00000034            UCB$M_VALID    = 00000800            

SS$_TIMEOUT      ********   X   03   UCB$L_DEVDEPEND  0000003C            UCB$S_LNKPRI   = 00000002            

SSB$B_FCVAL      00000021            UCB$L_DPC        00000080            UCB$S_LTYPE    = 00000002            

SSB$B_PNDCNT     00000023            UCB$L_DUETIM     0000005C            UCB$T_PARTNER    0000000C            

SSB$B_REQCNT     00000022            UCB$L_DX_BFPNT   0000009C            UCB$V_BACKP    = 00000005            

SSB$B_TIPC       00000020            UCB$L_DX_BUF     00000098            UCB$V_BSY      = 00000008            

SSB$B_TYPE       0000000A            UCB$L_DX_RXDB    000000A0            UCB$V_CANCEL   = 00000003            

SSB$C_LENGTH     00000024            UCB$L_EMB        00000078            UCB$V_DEADMO   = 0000000A            

SSB$K_LENGTH     00000024            UCB$L_FIRST      00000014            UCB$V_DELMBX   = 00000001            

SSB$L_UCB        00000014            UCB$L_FPC        0000000C            UCB$V_DIAGBUF  = 00000001            

SSB$L_WACKQBL    00000010            UCB$L_FQBL       00000004            UCB$V_DX_WRITE = 00000003            

SSB$L_WACKQFL    0000000C            UCB$L_FQFL       00000000            UCB$V_ECC      = 00000000            

SSB$L_XQBL       00000004            UCB$L_FR3        00000010            UCB$V_ERLOGIP  = 00000002            

SSB$L_XQFL       00000000            UCB$L_FR4        00000014            UCB$V_INT      = 00000001            

SSB$M_ACKP     = 00008000            UCB$L_IOQBL      00000044            UCB$V_INTTYPE  = 00000007            

SSB$M_NAKP     = 00007000            UCB$L_IOQFL      00000040            UCB$V_JOB      = 00000000            

SSB$S_NAKP     = 00000003            UCB$L_IRP        0000004C            UCB$V_LNKPRI   = 00000006            

SSB$V_ACKP     = 0000000F            UCB$L_LINK       0000002C            UCB$V_LTYPE    = 00000000            

SSB$V_NAKP     = 0000000C            UCB$L_LOGADR     00000064            UCB$V_MOUNTING = 00000009            

SSB$W_RCVSEGACK  0000001A            UCB$L_MAXBLOCK   00000084            UCB$V_MSGACK   = 00000004            

SSB$W_RCVSEGNUM  00000018            UCB$L_MEDIA      0000008C            UCB$V_MSGFLO   = 00000003            

SSB$W_SIZE       00000008            UCB$L_NT_DATSSB  00000074            UCB$V_NOCNVRT  = 00000002            

SSB$W_XMTSEGACK  0000001E            UCB$L_NT_INTSSB  00000078            UCB$V_NT_BFROVF= 00000002            

NETATTEN        - PROCESS ATTENTION CONDITIONS                   22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page  14

SYMBOL TABLE                                                                                                                     (1)



UCB$V_NT_BREAK = 00000005            

UCB$V_NT_NAME  = 00000004            

UCB$V_ONLINE   = 00000004            

UCB$V_POWER    = 00000005            

UCB$V_PRMMBX   = 00000000            

UCB$V_SEGFLO   = 00000002            

UCB$V_TIM      = 00000000            

UCB$V_TIMOUT   = 00000006            

UCB$V_TT_NOTIF = 00000002            

UCB$V_TT_TIMO  = 00000001            

UCB$V_UNLOAD   = 0000000C            

UCB$V_VALID    = 0000000B            

UCB$W_BCNT       0000006E            

UCB$W_BCR        00000096            

UCB$W_BOFF       0000006C            

UCB$W_BUFQUO     00000018            

UCB$W_BYTESTOGO  0000003E            

UCB$W_CHARGE     0000004A            

UCB$W_CYLINDERS  0000003E            

UCB$W_DA         0000008C            

UCB$W_DC         0000008E            

UCB$W_DEVBUFSIZ  0000003A            

UCB$W_DEVSTS     0000005A            

UCB$W_DIRSEQ     00000088            

UCB$W_DSTADDR    00000018            

UCB$W_DX_BCR     000000A4            

UCB$W_EC1        00000090            

UCB$W_EC2        00000092            

UCB$W_ERRCNT     00000072            

UCB$W_FUNC       0000007E            

UCB$W_MB_SEED    FFFFFFFC            

UCB$W_MSGCNT     00000016            

UCB$W_MSGMAX     00000014            

UCB$W_NT_CHAN    0000007C            

UCB$W_OFFSET     0000008A            

UCB$W_REFC       00000050            

UCB$W_SIZE       00000008            

UCB$W_SRCADDR    0000001A            

UCB$W_STS        00000058            

UCB$W_UNIT       00000048            

UCB$W_VPROT      0000001A            





PROGRAM SECTION SYNOPSIS



.  ABS  .        00000000      00     NOPIC   USR   CON   ABS   LCL NOSHR NOEXE NORD  NOWRT BYTE  

. BLANK .        00000000      01     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  

$ABS$            FFFFFFFE      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

NET_DISCONNECT   00000175      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

14946. BYTES LEFT IN FREE MEMORY POOL.

2812. BYTES OF RECLAIMED MEMORY.

OBJ$:NETATTEN,LIS$:NETATTEN/-SP=EXECML$/ML,M1/ML,M2/ML,SRC$:NETATTEN

51 MLB DIR RDS - 626 GETS TO DEFINE 16 MACROS. 40 INTER. FILE WRITES. 

