Google
 

Trailing-Edge - PDP-10 Archives - decnet-10_v4_0_sup_bb-x116c-bb - 10,7/mcb/nmxllc.m11
There are 16 other files named nmxllc.m11 in the archive. Click here to see a list.
	.TITLE	NMXLLC
	.IDENT	/X01180/
;
;
;                    COPYRIGHT (c) 1980, 1981, 1982
;                    DIGITAL EQUIPMENT CORPORATION
;                        Maynard, Massachusetts
;
;     This software is furnished under a license and may  be  used
;     and copied only in accordance with the terms of such license
;     and with the inclusion of the above copyright notice.   This
;     software  or any other copies thereof may not be provided or
;     otherwise made available to any other person.  No  title  to
;     and ownership of the software is hereby transferred.
;
;     The information  in  this  software  is  subject  to  change
;     without  notice  and should not be construed as a commitment
;     by DIGITAL EQUIPMENT CORPORATION.
;
;     DIGITAL assumes no responsibility for the use or reliability
;     of  its  software  on  equipment  which  is  not supplied by
;     DIGITAL.
;

;++
; FACILITY:	MCB Network Management
;
; ABSTRACT:	NMX Process LLC Data Base
;
;
; ENVIRONMENT:	MCB V3.0
;
; AUTHOR:	Scott G. Robinson, Date: 27-OCT-80
;
; MODIFIED BY:
;
; 01	- Include Dummy Data Entries
; 02	- Update for MCB V3.1
; 03	- Update for MCB V3.2
; 04	- Reflect new Data Base items
; 05	- Reflect new entity Ids
; 06	- Continuation of edit 05
; 07	- Add Event Items to data base
; 08	- Add Direct Line Access Items to data base
; 09	- Enable Certain Events by Default
; 10	- Add line/circuit state variables
; 11	- New event queue block
; 12	- Reconsider enabled filters
; 13	- Disable event 4.14 and enable 5.13
; 14	- Add global event filter masks and remove entity specific ones
; 15	- New format for entity data base pointers
; 17	- Use NM$FLT macro from new NETPAR for filter settings
;	  Add Access control data for NMLMCB.
; 18	- Take DSR$W out of ACCDAT.
;	  Put "XP$nid  IDNDAT" reference in for NMLMCB EXE IDENTIFICATION.
;--

;
; Macros for various blocks
;
	.macro	CKTBLK,INDEX
	LNKBLK	4,INDEX
	.even			;$align(word)
	.word	6.		;CIRCUIT_SERVICE_TIMER = 6 seconds
	.even
$$LEN	= .-$$LEN
	.endm	CKTBLK
;
	.MACRO	EVTBLK,LEN
	lst$d			; Event queue list head
	.byte	0		; Events in queue
	.byte	len		; Event queue length
	.word	0		; Events processed
	.word	0		; Events lost
	.even
	.ENDM	EVTBLK

	.MACRO	GENBLK,TYPE,INDEX
$$LEN	= .
	.byte	0		;GENERAL_NAME (length byte)
	.byte	0,0,0,0,0,0,0,0 ; rest of GENERAL_NAME
	.byte	0,0,0,0,0,0,0,0	; rest of GENERAL_NAME
	.byte	0		;GENERAL_SYSTEM_FLAGS
	.even			;$align(word)
	.byte	INDEX		;GENERAL_ID_INDEX
	.byte	TYPE		;GENERAL_ID_TYPE
	.word	0		;GENERAL_PROVIDER_ID
	.word	0		;GENERAL_OWNER_ID
	.even
	.endm	GENBLK
;
	.macro	LINBLK,INDEX
	LNKBLK	2,INDEX
	.even			;$align(word)
$$LEN	= .-$$LEN
	.endm	LINBLK
;
	.macro	LNKBLK,TYPE,INDEX
	GENBLK	TYPE,INDEX
	.word	0		;LINK_USER_ID
	.word	0		;LINK_LUN_BLOCK
	.byte	0.		;LINK_STATE = ON
	.byte	10.		;LINK_SUBSTATE = SYNCHRONIZING
	.byte	0.		;LINK_SERVICE_STATE = PASSIVE
	.byte	0.		;LINK_SERVICE_SUBSTATE = IDLE
	.even
	.endm	LNKBLK
;
	.macro	MODBLK,INDEX
	GENBLK	5,INDEX
	.even			;$align(word)
$$LEN	= .-$$LEN
	.endm	MODBLK
;
	.macro	MSKBLK,lclss,hclss
	$$MSK0 = 0
	$$MSK1 = 0
	.macro	MSKCLS,clss,filtrs
	.if	b,hclss
	.iif	ne,<lclss-clss>, .mexit
	.iff
	.iif	gt,<lclss-clss>, .mexit
	.iif	gt,<clss-hclss>, .mexit
	.endc
	.irp	..fltr,<filtrs>
	MSKRNG	..fltr
	.endm
	.endm	MSKCLS
	NM$flt	MSKCLS
	.irp	..msk0,<\$$MSK0>
	.irp	..msk1,<\$$MSK1>
	.word	..msk0,..msk1
	.endm
	.endm
	.even
	.endm	MSKBLK
;
	.macro	MSKRNG,LOW,HIGH
$$BITN = 0
$$BITM = 1
	.rept	32.
	.if	ge,<$$BITN-LOW>
	.iif	lt,<$$BITN-16.>,$$MSK0 = $$MSK0!$$BITM
	.iif	ge,<$$BITN-16.>,$$MSK1 = $$MSK1!$$BITM
	.iif	le,<HIGH-0-$$BITN>,.mexit
	.endc
$$BITN = $$BITN+1
	.iif	ne,<$$BITM-100000>,$$BITM = $$BITM+$$BITM
	.iif	eq,<$$BITM-100000>,$$BITM=1
	.endr
	.endm	MSKRNG
;
	.macro	ACCDAT,USR,PAS,ACT
	.nchr	$$TEMP,<USR>
$$LEN = $$LEN+1+$$TEMP
	.irp	..len,<\$$TEMP>
	.byte	..len
	.endm
	.ascii	\USR\
	.nchr	$$TEMP,<PAS>
$$LEN = $$LEN+1+$$TEMP
	.irp	..len,<\$$TEMP>
	.byte	..len
	.endm
	.ascii	\PAS\
	.nchr	$$TEMP,<ACT>
$$LEN = $$LEN+1+$$TEMP
	.irp	..len,<\$$TEMP>
	.byte	..len
	.endm
	.ascii	\ACT\
	.endm	ACCDAT
;
	.macro	IDNDAT,TXT
	.nchr	$$TEMP,<TXT>
$$LEN = $$LEN+1+$$TEMP
	.irp	..len,<\$$TEMP>
	.byte	..len
	.endm
	.ascii	\TXT\
	.endm	IDNDAT
;
	.macro	ENAME,STR
	.nchr	$$LEN,<STR>
	.irp	..len,<\$$LEN>
	.byte	..len
	.endm
	.ascii	\STR\
	.rept	6-$$LEN
	.byte	0
	.endr
	.endm	ENAME
;
	.mcall DAT$

	DAT$ DSR
	.byte	0		;NMX_TIMER_VALUE
	.byte 	0		;NMX_TIMER_BYTE
	.word	0		;NMX_NMX_EID
	.word	0		;NMX_SC_EID
	.word	0		;NMX_NSP_EID
	.word	0		;NMX_XPT_EID
		COR$D		;NMX_LINE_POINTER
$$TEMP = 0
		.rept	NM.nln
		LINBLK	$$TEMP
$$TEMP = $$TEMP+1
		.endr
		END$
	.word	NM.nln
	.word	$$LEN
		COR$D		;NMX_CIRCUIT_POINTER
$$TEMP = 0
		.rept	NM.nck
		CKTBLK	$$TEMP
$$TEMP = $$TEMP+1
		.endr
		END$
	.word	NM.nck
	.word	$$LEN
		COR$D		;NMX_MODULE_POINTER
$$TEMP = 0
		.rept	NM.nmo
		MODBLK	$$TEMP
$$TEMP = $$TEMP+1
		.endr
		END$
	.word	NM.nmo
	.word	$$LEN
	.word	NS.slf		;NMX_EXECUTOR
	CE$nod	ENAME
	.byte	0		;NMX_NEXT_LUN_ID
	.even			;$align(word)
	lst$d			;NMX_LUN_QUEUE
	MSKBLK	0.		;Class 0 events
	MSKBLK	1.		;Class 1 events
	MSKBLK	2.		;Class 2 events
	MSKBLK	3.		;Class 3 events
	MSKBLK	4.		;Class 4 events
	MSKBLK	5.		;Class 5 events
	MSKBLK	6.		;Class 6 events
	MSKBLK	96.,127.	;System specific 96-127
	EVTBLK	6		;NMX_EVENT_QUEUE
	lst$d			;NMX_EVENT_IOPS
	.word	0		;NMX_EVENTS_SIGNALED
	.word	0		;NMX_EVENTS_LOGGED
	DSR$W			;NMLMCB initialization data
$$LEN = 0
		NM$ACC	ACCDAT	;Access control data
		XP$nid	IDNDAT	;EXECUTOR IDENTIFICATION
		END$
	.word	$$LEN
	.even
	END$
	.END