+#include "../h/param.h"
+#include "../machine/pte.h"
+#include "../h/buf.h"
+#include "../h/map.h"
+
+#include "../tahoevba/vbavar.h"
+
+#define C (caddr_t)
+
+extern struct vba_driver hdcdriver;
+extern Xhdintr0();
+int (*hdcint0[])() = { Xhdintr0, 0 } ;
+extern struct vba_driver hdcdriver;
+extern Xhdintr1();
+int (*hdcint1[])() = { Xhdintr1, 0 } ;
+extern struct vba_driver hdcdriver;
+extern Xhdintr2();
+int (*hdcint2[])() = { Xhdintr2, 0 } ;
+extern struct vba_driver vddriver;
+extern Xvdintr0();
+int (*vdint0[])() = { Xvdintr0, 0 } ;
+extern struct vba_driver vddriver;
+extern Xvdintr1();
+int (*vdint1[])() = { Xvdintr1, 0 } ;
+extern struct vba_driver vddriver;
+extern Xvdintr2();
+int (*vdint2[])() = { Xvdintr2, 0 } ;
+extern struct vba_driver vxdriver;
+extern Xvackint0(), Xvcmdrsp0(), Xvunsol0();
+int (*vxint0[])() = { Xvackint0, Xvcmdrsp0, Xvunsol0, 0 } ;
+extern struct vba_driver vxdriver;
+extern Xvackint1(), Xvcmdrsp1(), Xvunsol1();
+int (*vxint1[])() = { Xvackint1, Xvcmdrsp1, Xvunsol1, 0 } ;
+extern struct vba_driver exdriver;
+extern Xexintr0();
+int (*exint0[])() = { Xexintr0, 0 } ;
+
+struct vba_ctlr vbminit[] = {
+/* driver, ctlr, vbanum, alive, intr, addr */
+ { &hdcdriver, 0, '?', 0, hdcint0, C 0xc4010000 },
+ { &hdcdriver, 1, '?', 0, hdcint1, C 0xc5010000 },
+ { &hdcdriver, 2, '?', 0, hdcint2, C 0xc6010000 },
+ { &vddriver, 0, '?', 0, vdint0, C 0xffff2000 },
+ { &vddriver, 1, '?', 0, vdint1, C 0xffff2100 },
+ { &vddriver, 2, '?', 0, vdint2, C 0xffff2200 },
+ 0
+};
+
+struct vba_device vbdinit[] = {
+ /* driver, unit, ctlr, vbanum, slave, intr, addr, dk, flags*/
+ { &hdcdriver, 0, 0, '?', 0, 0, C 0x0 , 1, 0x0 },
+ { &hdcdriver, 1, 0, '?', 1, 0, C 0x0 , 1, 0x0 },
+ { &hdcdriver, 2, 0, '?', 2, 0, C 0x0 , 1, 0x0 },
+ { &hdcdriver, 3, 0, '?', 3, 0, C 0x0 , 1, 0x0 },
+ { &hdcdriver, 4, 1, '?', 0, 0, C 0x0 , 1, 0x0 },
+ { &hdcdriver, 5, 1, '?', 1, 0, C 0x0 , 1, 0x0 },
+ { &hdcdriver, 6, 1, '?', 2, 0, C 0x0 , 1, 0x0 },
+ { &hdcdriver, 7, 1, '?', 3, 0, C 0x0 , 1, 0x0 },
+ { &hdcdriver, 8, 2, '?', 0, 0, C 0x0 , 1, 0x0 },
+ { &hdcdriver, 9, 2, '?', 1, 0, C 0x0 , 1, 0x0 },
+ { &hdcdriver, 10, 2, '?', 2, 0, C 0x0 , 1, 0x0 },
+ { &hdcdriver, 11, 2, '?', 3, 0, C 0x0 , 1, 0x0 },
+ { &vddriver, 0, 0, '?', 0, 0, C 0x0 , 1, 0x0 },
+ { &vddriver, 1, 0, '?', 1, 0, C 0x0 , 1, 0x0 },
+ { &vddriver, 2, 0, '?', 2, 0, C 0x0 , 1, 0x0 },
+ { &vddriver, 3, 0, '?', 3, 0, C 0x0 , 1, 0x0 },
+ { &vddriver, 4, 1, '?', 0, 0, C 0x0 , 1, 0x0 },
+ { &vddriver, 5, 1, '?', 1, 0, C 0x0 , 1, 0x0 },
+ { &vddriver, 6, 1, '?', 2, 0, C 0x0 , 1, 0x0 },
+ { &vddriver, 7, 1, '?', 3, 0, C 0x0 , 1, 0x0 },
+ { &vddriver, 8, 2, '?', 0, 0, C 0x0 , 1, 0x0 },
+ { &vddriver, 9, 2, '?', 1, 0, C 0x0 , 1, 0x0 },
+ { &vddriver, 10, 2, '?', 2, 0, C 0x0 , 1, 0x0 },
+ { &vddriver, 11, 2, '?', 3, 0, C 0x0 , 1, 0x0 },
+ { &vxdriver, 0, -1, '?', -1, vxint0, C 0xcd020000, 0, 0x0 },
+ { &vxdriver, 1, -1, '?', -1, vxint1, C 0xce020000, 0, 0x0 },
+ { &exdriver, 0, -1, '?', -1, exint0, C 0xfff00000, 0, 0x0 },
+ 0
+};