-#if VAX==780
-/* UBA Configuration Register, CNFGR */
-#define PARFLT 0x80000000 /* SBI Parity Fault */
-#define WSQFLT 0x40000000 /* SBI Write Sequence Fault */
-#define URDFLT 0x20000000 /* SBI Unexpected Read Fault */
-#define ISQFLT 0x10000000 /* SBI Interlock Sequence Fault */
-#define MXTFLT 0x8000000 /* SBI Multiple Transmitter Fault */
-#define XMTFLT 0x4000000 /* UBA is transmit faulter */
-#define ADPDN 0x800000 /* Adapter Power Down */
-#define ADPUP 0x400000 /* Adapter Power Up */
-#define UBINIT 0x40000 /* UNIBUS INIT is asserted */
-#define UBPDN 0x20000 /* UNIBUS Power Down */
-#define UBIC 0x10000 /* UNIBUS Initialization */
- /* UNIBUS Ready */
-#define UBACOD 0xff /* UBA Code bits */
-
-/* UBA Control Register, UBACR */
-
-#define MRD16 0x40000000 /* Map Reg Disable Bit 4 */
-#define MRD8 0x20000000 /* Map Reg Disable Bit 3 */
-#define MRD4 0x10000000 /* Map Reg Disable Bit 2 */
-#define MRD2 0x8000000 /* Map Reg Disable Bit 1 */
-#define MRD1 0x4000000 /* Map Reg Disable Bit 0 */
-#define IFS 0x40 /* Interrupt Field Switch */
-#define BRIE 0x20 /* BR Interrupt Enable */
-#define USEFIE 0x10 /* UNIBUS to SBI Error Field IE */
-#define SUEFIE 0x8 /* SBI to UNIBUS Error Field IE */
-#define CNFIE 0x4 /* Configuration IE */
-#define UPF 0x2 /* UNIBUS Power Fail */
-#define ADINIT 0x1 /* Adapter Init */
-
-/* UBA Status Register, UASR */
-#define BR7FULL 0x8000000 /* BR7 Receive Vector Rg Full */
-#define BR6FULL 0x4000000 /* BR6 Receive Vector Reg Full */
-#define BR5FULL 0x2000000 /* BR5 Receive Vector Reg Full */
-#define BR4FULL 0x1000000 /* BR4 Receive Vector Reg Full */
-#define RDTO 0x400 /* UNIBUS to SBI Read Data Timeout */
-#define RDS 0x200 /* Read Data Substitute */
-#define CRD 0x100 /* Corrected Read Data */
-#define CXTER 0x80 /* Command Transmit Error */
-#define CXTMO 0x40 /* Command Transmit Timeout */
-#define DPPE 0x20 /* Data Path Parity Error */
-#define IVMR 0x10 /* Invalid Map Register */
-#define MRPF 0x8 /* Map Register Parity Failure */
-#define LEB 0x4 /* Lost Error */
-#define UBSTO 0x2 /* UNIBUS Select Timeout */
-#define UBSSTO 0x1 /* UNIBUS Slave Sync Timeout */
-
-/* Failed Map Entry Register, FMER */
-
-#define FMRN 0x1ff /* Failed Map Reg. No. Field */
-
-/* Failed UNIBUS Address Register, FUBAR */
-#define FUA 0xffff /* Failed UNIBUS Address Field */
-
-/* BR Receive Vector register, BRRVR */
-#define AIRI 0x80000000 /* Adapter Interrupt Request */
-#define DIV 0xffff /* Device Interrupt Vector Field */
+/*
+ * Per ``device'' structure.
+ * (A controller has devices or uses and releases buffered data paths).
+ * (Everything else is a ``device''.)
+ *
+ * If a controller has many drives attached, then there will
+ * be several uba_device structures associated with a single uba_ctlr
+ * structure.
+ *
+ * This structure contains all the information necessary to run
+ * a unibus device such as a dz or a dh. It also contains information
+ * for slaves of unibus controllers as to which device on the slave
+ * this is. A flags field here can also be given in the system specification
+ * and is used to tell which dz lines are hard wired or other device
+ * specific parameters.
+ */
+struct uba_device {
+ struct uba_driver *ui_driver;
+ short ui_unit; /* unit number on the system */
+ short ui_ctlr; /* mass ctlr number; -1 if none */
+ short ui_ubanum; /* the uba it is on */
+ short ui_slave; /* slave on controller */
+ int (**ui_intr)(); /* interrupt handler(s) */
+ caddr_t ui_addr; /* address of device in i/o space */
+ short ui_dk; /* if init 1 set to number for iostat */
+ short ui_flags; /* parameter from system specification */
+ short ui_alive; /* device exists */
+ short ui_type; /* driver specific type information */
+ caddr_t ui_physaddr; /* phys addr, for standalone (dump) code */
+/* this is the forward link in a list of devices on a controller */
+ struct uba_device *ui_forw;
+/* if the device is connected to a controller, this is the controller */
+ struct uba_ctlr *ui_mi;
+ struct uba_hd *ui_hd;
+};