.TITLE VXTAB -- DATA BASE FOR VX DRIVER .MCALL UCBDF$ UCBDF$ .IDENT /082885/ .NLIST ; ; ; VX: DATA BASE VERSION 1.00 ; ; MODIFICATION HISTORY : ; .MACRO GENLAB NAM,SEQ .LIST NAM'SEQ: .NLIST .ENDM GENLAB .MACRO COMMENT C1,V1,C2,V2 .LIST ; ; C1'V1'C2'V2 ; .NLIST .ENDM COMMENT .MACRO INIT UNIT = 0 U.PAR == U.CNT + 2 U.PRB == U.CNT + 6 U.PSZ == U.CNT + 10 U.QNAM == U.CNT + 12 U.QHD == U.CNT + 16 U.MSG == U.CNT + 20 U.MSGL == U.CNT + 22 .LIST $VXDAT:: ; ; DEVICE CONTROL BLOCK ; .WORD 0 ;LINK TO NEXT DCB .WORD .VX0 ;LINK TO FIRST UCB .ASCII /VX/ ;GENERIC DEVICE NAME .BYTE 0,NUNITS-1 ;LOWEST AND HIGHEST UNITS .WORD VXE-VXS ;UCB LENGTH IN BYTES .WORD 0 ;ADDRESS OF DISPATCH TABLE ; ; I/O FUNCTION CODES RECOGNIZED: ; ; BIT MASK RELATED FUNCTION I/O ; # VALUE SYMBOLIC CODE FUNCTION ; --- ----- -------- -------- -------- ; 0 1 IO.KIL 0 CANCEL I/O ; 1 2 IO.WLB 400 WRITE LOGICAL BLOCK ; 2 4 IO.RLB 1000 READ LOGICAL BLOCK ; 3 10 IO.ATT 1400 ATTACH DEVICE (NO-OP) ; 4 20 IO.DET 2000 DETACH DEVICE (NO-OP) ; 5 40 IO.CRQ 2400 CREATE QUEUE ; 6 100 IO.DLQ 3000 DELETE QUEUE ; 7 200 IO.CLN 3400 CLOSE LUN (CLEAN-UP AST'S) ; 8 400 IO.DMP 4000 DUMP DRIVER POOL SNAPSHOT ; 9 1000 IO.AST 4400 SET/CLEAR AST ; 10 2000 IO.EXM 5000 EXAMINE SELECTED MESSAGE ;V2.01 ; 11 4000 IO.DLM 5400 DELETE SELECTED MESSAGE ;V2.01 ; 12 10000 IO.CQL 6000 CHANGE ENTRY LIMIT ;EF 12/28/86 ; ; SUBFUNCTIONS RECOGNIZED ; ; OCTAL CODE SYMBOLIC FUNCTION ; ---------- -------- -------- ; 200 SF.WAI WITH IO.RLB: WAIT UNTIL MESSAGE IS RECEIVED ; 100 SF.FLU WITH IO.CRQ: IF QUEUE ALREADY EXISTS, FLUSH IT ; 1 SF.ALL WITH IO.CQL: CHANGE ALL QUEUES ;EF 12/28/86 ; .WORD 017777 ;LEGAL FUNCTION MASK BITS 0-15 ;V2.01 .WORD 15340 ;CONTROL FUNCTION MASK BITS 0-15 ;V2.01 .WORD 30 ;NO-OP'ED FUNCTION MASK BITS 0-15 .WORD 0 ;ACP FUNCTION MASK BITS 0-15 .WORD 0 ;LEGAL FUNCTION MASK BITS 16-31 .WORD 0 ;CONTROL FUNCTION MASK BITS 16-31 .WORD 0 ;NO-OP'ED FUNCTION MASK BITS 16-31 .WORD 0 ;ACP FUNCTION MASK BITS 16-31 .WORD 0 ;ADDRESS OF PCB .NLIST .ENDM INIT ; ; Macro AVX - Allocate VX unit. ; form: ; AVX pnam ; where: ; pnam = name of partition for this unit. ; .MACRO AVX PNAM COMMENT ,\UNIT,<:> .IFNDF VXS VXS: .ENDC .LIST .WORD 0 ;OWNING TERMINAL UCB ADDRESS .NLIST GENLAB .VX,\UNIT .LIST .WORD $VXDAT ;BACK POINTER TO DCB .WORD .-2 ;REDIRECT POINTER .BYTE UC.ALG!UC.PWF!UC.KIL ;CONTROL FLAGS .BYTE 0 ;UNIT STATUS .BYTE UNIT ;PHYSICAL UNIT NUMBER .BYTE US.OFL ;STATUS EXTENSION .WORD DV.REC ;CHARACTERISTICS WORD 1 .WORD 0 ;CHARACTERISTICS WORD 2 .WORD 0 ;CHARACTERISTICS WORD 3 .WORD 0 ;CHARACTERISTICS WORD 4 .WORD $VX0 ;POINTER TO SCB .WORD 0 ;TCB ADDRESS OF ATTACHED TASK .WORD 0 ;BUFFER RELOCATION BIAS .WORD 0 ; .WORD 0 ;BYTE COUNT .RAD50 /PNAM/ ; PARTITION NAME (U.PAR) .WORD 0 ; PARTITION RELOCATION BIAS (U.PRB) .WORD 0 ; PARTITION SIZE (U.PSZ) .WORD 0,0 ; CURRENT QUEUE NAME (U.QNAM) .WORD 0 ; CURRENT QUEUE HEADER (U.QHD) .WORD 0 ; CURRENT MESSAGE ENTRY ADDRESS (U.MSG) .WORD 0 ; CURRENT MESSAGE LENGTH (U.MSGL) .NLIST .IF NDF VXE VXE: .ENDC UNIT = UNIT + 1 .ENDM AVX .MACRO STOP .LIST ; ; STATUS CONTROL BLOCK ; $VX0: .WORD 0 ;SCB QUEUE IS EMPTY .WORD .-2 ; .WORD 0,0,0,0 ;FORK PACKET .WORD 0 ;KISAR5 .WORD 0 ;ADDRESS OF CURRENT I/O PACKET .BYTE 0,0 ;CURRENT AND INITIAL TIMEOUT COUNTS .BYTE 0 ;SCB STATUS .BYTE 0 ;STATUS EXTENSION .WORD 0 ;STATUS EXTENSION .WORD 0 ;KRB ADDRESS (NONE) $VXEND:: .NLIST NUNITS = UNIT .ENDM STOP .PAGE .LIST ME .NLIST CND ; ; Device table generation calls ; INIT - Create DCB and initialize symbols. ; AVX - Allocate VX units, one per partition. ; STOP - create SCB ; INIT AVX VX0PAR AVX VX1PAR AVX VX2PAR STOP .END