.TITLE EDTAB .IDENT /V02/ ; ;**************************************************************** ; ; [06-MAR-78] D.DANIELS [V3.1] ; ; EXECUTIVE DRIVER ; ; **LOADABLE DRIVER SUPPORT AND MULTIUSER PROTECTION** ; ; LOADABLE DRIVER TABLES REQUIRE, AS FAR AS CAN BE DETERMINED, AN ; INTERUPT VECTOR. THE VECTOR SUPPLIED IS UNUSED BY THE DRIVER. ; THE ERROR LOGGING TRAPS THROUGH THIS VECTOR ARE LOST TO THE ; SYSTEM. ; ;**************************************************************** ; MACRO LIBRARY CALLS ;**************************************************************** ; .MCALL DEVDF$,HWDDF$ ; DEVDF$ ; DEVICE OFFSETS HWDDF$ ; HARDWARE REGISTERS ; ;**************************************************************** ; HARDWARE DEFINITIONS ;**************************************************************** ; VECTOR= 440 ; INTERRUPT VECTOR EDPR= PR5 ; DEVICE PRIORITY ; ; LOADABLE DRIVER SUPPORT ; LD$ED= 0 ; LD$'DEV' FOR ACCESS TO INTSV$ ; ;**************************************************************** ; DEVICE CONTROL BLOCK ;**************************************************************** ; $EDDAT:: ; START OF DRIVER TABLES EDDCB: .WORD 0 ; POINTER TO NEXT DCB ; D.LNK .WORD .ED0 ; POINTER TO FIRST UCB ; D.UCB .ASCII /ED/ ; GENERIC DEVICE NAME ; D.NAM .BYTE 0 ; LOW UNIT # FOR DCB ; D.UNIT .BYTE 0 ; HIGH UNIT # .WORD EDND-EDST ; LENGTH OF UCB IN BYTES ; D.UCBL .WORD 0 ; ADDRESS DRIVER DISPATCH TABLE ; D.DSP ; 0 FOR LOADABLE DRIVER ; $EDTBL NON-LOADABLE .WORD 37 ; LEGAL FUNCTION MASKS 0-15 ; D.MSK .WORD 30 ; CONTROL FUNCTION MASKS 0-15 .WORD 0 ; NO-OP'ED FUNCTION MASKS 0-15 .WORD 0 ; ACP FUNCTIONS MASKS 0-15 .WORD 0 ; LEGAL FUNCTION MASKS 16-31 .WORD 0 ; CONTROL FUNCTIONS MASKS 16-31 .WORD 0 ; NO-OP'ED 16-31 .WORD 0 ; ACP FUNC'S 16-31 .WORD 0 ; ADDR. PARTITION CONTROL BLOCK ; D.PCB ; ;**************************************************************** ; UNIT CONTROL BLOCK ;**************************************************************** ; EDST=. .WORD 0 ; OWNING TERMINAL UCB ADDR. ; U.OWN .ED0:: .WORD EDDCB ; BACK POINTER TO DCB ; U.DCB .WORD .-2 ; REDIRECT UCB POINTER ; U.RED .BYTE 0 ; CONTROL FLAGS ; U.CTL .BYTE 0 ; UNIT STATUS ; U.STS .BYTE 0 ; PHYSICAL UNIT # ; U.UNIT .BYTE US.RED!US.PUB ; STATUS EXTENTION ; U.ST2 ; NOT REDIRECTABLE ; PUBLIC .WORD 0 ; CHARACTERISTICS WORD #1 ; U.CW1 .WORD 0 ; CHARACTERISTICS WORD #2 ; U.CW2 .WORD 0 ; CHARACTERISTICS WORD #3 ; U.CW3 .WORD 0 ; CAHRACTERISTICS WORD #4 ; U.CW4 .WORD 0 ; POINTER TO SCB ; U.SCB .WORD 0 ; TCB ADDRESS OF ATTACHED TASK ; U.ATT .BLKW 1 ; BUFFER RELOCATIO BIAS ; U.BUF .BLKW 1 ; BUFFER ADDRESS .BLKW 1 ; BUFFER BYTE COUNT ; U.CNT EDND=. ; END OF UCB ; ;**************************************************************** ; STATUS CONTROL BLOCK ;**************************************************************** ; $ED0:: EDSCB: .WORD 0 ; LISTHEAD, 1ST I/O PACKET ; S.LHD .WORD .-2 ; LAST I/O PACKET .BYTE EDPR ; PRIORITY ; S.PRI .BYTE VECTOR/4 ; VECTOR ADDRESS/ 4 ; S.VCT .BYTE 0 ; CURRENT TIMEOUT COUNT ; S.CTM .BYTE 0 ; INITIAL TIMEOUT COUNT ; S.ITM .BYTE 0 ; CONTROLLER INDEX (#*2) ; S.CON .BYTE 0 ; CONTROLLER STATUS ; S.STS .WORD 0 ; ADDRESS OF STATUS REGISTER ; S.CSR .BLKW 1 ; ADDRESS OF CURRENT I/O PACK ; S.PKT .BLKW 5 ; FORK BLOCK ; S.FRK $EDEND:: ; END OF DATA STRUCTURE .END