summary |
tags |
clone url |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
220075a)
SCCS-vsn: sys/vax/uba/ubareg.h 4.7
SCCS-vsn: sys/vax/uba/ubavar.h 4.7
*/
#if VAX750
#define UBA750 ((struct uba_regs *)0xf30000)
*/
#if VAX750
#define UBA750 ((struct uba_regs *)0xf30000)
* Each UNIBUS mass storage controller has uba_minfo structure,
* and a uba_dinfo structure (as below) for each attached drive.
*/
* Each UNIBUS mass storage controller has uba_minfo structure,
* and a uba_dinfo structure (as below) for each attached drive.
*/
struct uba_driver *um_driver;
short um_ctlr; /* controller index in driver */
short um_ubanum; /* the uba it is on */
short um_alive; /* controller exists */
int (**um_intr)(); /* interrupt handler(s) */
caddr_t um_addr; /* address of device in i/o space */
struct uba_driver *um_driver;
short um_ctlr; /* controller index in driver */
short um_ubanum; /* the uba it is on */
short um_alive; /* controller exists */
int (**um_intr)(); /* interrupt handler(s) */
caddr_t um_addr; /* address of device in i/o space */
- struct uba_info *um_forw;
+ int um_cmd; /* communication to dgo() */
+ int um_ubinfo; /* save unibus registers, etc */
struct buf um_tab; /* queue for this controller */
};
/*
struct buf um_tab; /* queue for this controller */
};
/*
* be several uba_dinfo structures associated with a single uba_minfo
* structure.
*/
* be several uba_dinfo structures associated with a single uba_minfo
* structure.
*/
struct uba_driver *ui_driver;
short ui_unit; /* unit number on the system */
short ui_ctlr; /* mass ctlr number; -1 if none */
struct uba_driver *ui_driver;
short ui_unit; /* unit number on the system */
short ui_ctlr; /* mass ctlr number; -1 if none */
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_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; /* param to device init. */
short ui_alive; /* device exists */
short ui_type; /* driver specific type information */
short ui_alive; /* device exists */
short ui_type; /* driver specific type information */
- short ui_dk; /* device number for iostat */
caddr_t ui_physaddr; /* phys addr, for standalone (dump) code */
caddr_t ui_physaddr; /* phys addr, for standalone (dump) code */
+ struct uba_dinfo *ui_forw;
/* if the driver isn't also a controller, this is the controller it is on */
struct uba_minfo *ui_mi;
struct uba_hd *ui_hd;
/* if the driver isn't also a controller, this is the controller it is on */
struct uba_minfo *ui_mi;
struct uba_hd *ui_hd;
struct uba_regs *uh_uba; /* virt addr of uba */
struct uba_regs *uh_physuba; /* phys addr of uba */
int (**uh_vec)(); /* interrupt vector */
struct uba_regs *uh_uba; /* virt addr of uba */
struct uba_regs *uh_physuba; /* phys addr of uba */
int (**uh_vec)(); /* interrupt vector */
- struct uba_minfo *uh_actf; /* head of queue to transfer */
- struct uba_minfo *uh_actl; /* tail of queue to transfer */
+ struct uba_dinfo *uh_actf; /* head of queue to transfer */
+ struct uba_dinfo *uh_actl; /* tail of queue to transfer */
short uh_mrwant; /* someone is waiting for map reg */
short uh_bdpwant; /* someone awaits bdp's */
int uh_bdpfree; /* free bdp's */
short uh_mrwant; /* someone is waiting for map reg */
short uh_bdpwant; /* someone awaits bdp's */
int uh_bdpfree; /* free bdp's */
#define UAMSIZ 50
struct map *uh_map;
} uba_hd[MAXNUBA];
#define UAMSIZ 50
struct map *uh_map;
} uba_hd[MAXNUBA];
-#ifdef KERNEL
-extern struct uba_minfo ubminit[];
-extern struct uba_dinfo ubdinit[];
-int numuba;
-#endif
/*
* Each UNIBUS driver defines entries for a set of routines
* as well as an array of types which are acceptable to it.
/*
* Each UNIBUS driver defines entries for a set of routines
* as well as an array of types which are acceptable to it.
/* dgo is called back by the unibus (usu ubaalloc), when the bus is ready */
short ud_needexcl; /* need exclusive use of uba (rk07) */
u_short *ud_addr; /* device csr addresses */
/* dgo is called back by the unibus (usu ubaalloc), when the bus is ready */
short ud_needexcl; /* need exclusive use of uba (rk07) */
u_short *ud_addr; /* device csr addresses */
+ char *ud_dname; /* name of a device */
struct uba_dinfo **ud_dinfo; /* backpointers to ubdinit structs */
struct uba_dinfo **ud_dinfo; /* backpointers to ubdinit structs */
+ char *ud_mname; /* name of a controller */
struct uba_minfo **ud_minfo; /* backpointers to ubminit structs */
};
struct uba_minfo **ud_minfo; /* backpointers to ubminit structs */
};
#define UBA_NEEDBDP 1 /* transfer needs a bdp */
#define UBA_CANTWAIT 2 /* don't block me */
#define UBA_NEED16 3 /* need 16 bit addresses only */
#define UBA_NEEDBDP 1 /* transfer needs a bdp */
#define UBA_CANTWAIT 2 /* don't block me */
#define UBA_NEED16 3 /* need 16 bit addresses only */
+
+/*
+ * UNIBUS related kernel variables
+ */
+#ifdef KERNEL
+extern struct uba_minfo ubminit[];
+extern struct uba_dinfo ubdinit[];
+int numuba;
+extern struct pte UMEMmap[MAXNUBA][16];
+extern char umem[MAXNUBA][16*NBPG];
+extern int (*UNIvec[])();
+#if VAX780
+extern Xua0int(), Xua1int(), Xua2int(), Xua3int();
+#endif
+#endif
*/
#if VAX750
#define UBA750 ((struct uba_regs *)0xf30000)
*/
#if VAX750
#define UBA750 ((struct uba_regs *)0xf30000)
* Each UNIBUS mass storage controller has uba_minfo structure,
* and a uba_dinfo structure (as below) for each attached drive.
*/
* Each UNIBUS mass storage controller has uba_minfo structure,
* and a uba_dinfo structure (as below) for each attached drive.
*/
struct uba_driver *um_driver;
short um_ctlr; /* controller index in driver */
short um_ubanum; /* the uba it is on */
short um_alive; /* controller exists */
int (**um_intr)(); /* interrupt handler(s) */
caddr_t um_addr; /* address of device in i/o space */
struct uba_driver *um_driver;
short um_ctlr; /* controller index in driver */
short um_ubanum; /* the uba it is on */
short um_alive; /* controller exists */
int (**um_intr)(); /* interrupt handler(s) */
caddr_t um_addr; /* address of device in i/o space */
- struct uba_info *um_forw;
+ int um_cmd; /* communication to dgo() */
+ int um_ubinfo; /* save unibus registers, etc */
struct buf um_tab; /* queue for this controller */
};
/*
struct buf um_tab; /* queue for this controller */
};
/*
* be several uba_dinfo structures associated with a single uba_minfo
* structure.
*/
* be several uba_dinfo structures associated with a single uba_minfo
* structure.
*/
struct uba_driver *ui_driver;
short ui_unit; /* unit number on the system */
short ui_ctlr; /* mass ctlr number; -1 if none */
struct uba_driver *ui_driver;
short ui_unit; /* unit number on the system */
short ui_ctlr; /* mass ctlr number; -1 if none */
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_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; /* param to device init. */
short ui_alive; /* device exists */
short ui_type; /* driver specific type information */
short ui_alive; /* device exists */
short ui_type; /* driver specific type information */
- short ui_dk; /* device number for iostat */
caddr_t ui_physaddr; /* phys addr, for standalone (dump) code */
caddr_t ui_physaddr; /* phys addr, for standalone (dump) code */
+ struct uba_dinfo *ui_forw;
/* if the driver isn't also a controller, this is the controller it is on */
struct uba_minfo *ui_mi;
struct uba_hd *ui_hd;
/* if the driver isn't also a controller, this is the controller it is on */
struct uba_minfo *ui_mi;
struct uba_hd *ui_hd;
struct uba_regs *uh_uba; /* virt addr of uba */
struct uba_regs *uh_physuba; /* phys addr of uba */
int (**uh_vec)(); /* interrupt vector */
struct uba_regs *uh_uba; /* virt addr of uba */
struct uba_regs *uh_physuba; /* phys addr of uba */
int (**uh_vec)(); /* interrupt vector */
- struct uba_minfo *uh_actf; /* head of queue to transfer */
- struct uba_minfo *uh_actl; /* tail of queue to transfer */
+ struct uba_dinfo *uh_actf; /* head of queue to transfer */
+ struct uba_dinfo *uh_actl; /* tail of queue to transfer */
short uh_mrwant; /* someone is waiting for map reg */
short uh_bdpwant; /* someone awaits bdp's */
int uh_bdpfree; /* free bdp's */
short uh_mrwant; /* someone is waiting for map reg */
short uh_bdpwant; /* someone awaits bdp's */
int uh_bdpfree; /* free bdp's */
#define UAMSIZ 50
struct map *uh_map;
} uba_hd[MAXNUBA];
#define UAMSIZ 50
struct map *uh_map;
} uba_hd[MAXNUBA];
-#ifdef KERNEL
-extern struct uba_minfo ubminit[];
-extern struct uba_dinfo ubdinit[];
-int numuba;
-#endif
/*
* Each UNIBUS driver defines entries for a set of routines
* as well as an array of types which are acceptable to it.
/*
* Each UNIBUS driver defines entries for a set of routines
* as well as an array of types which are acceptable to it.
/* dgo is called back by the unibus (usu ubaalloc), when the bus is ready */
short ud_needexcl; /* need exclusive use of uba (rk07) */
u_short *ud_addr; /* device csr addresses */
/* dgo is called back by the unibus (usu ubaalloc), when the bus is ready */
short ud_needexcl; /* need exclusive use of uba (rk07) */
u_short *ud_addr; /* device csr addresses */
+ char *ud_dname; /* name of a device */
struct uba_dinfo **ud_dinfo; /* backpointers to ubdinit structs */
struct uba_dinfo **ud_dinfo; /* backpointers to ubdinit structs */
+ char *ud_mname; /* name of a controller */
struct uba_minfo **ud_minfo; /* backpointers to ubminit structs */
};
struct uba_minfo **ud_minfo; /* backpointers to ubminit structs */
};
#define UBA_NEEDBDP 1 /* transfer needs a bdp */
#define UBA_CANTWAIT 2 /* don't block me */
#define UBA_NEED16 3 /* need 16 bit addresses only */
#define UBA_NEEDBDP 1 /* transfer needs a bdp */
#define UBA_CANTWAIT 2 /* don't block me */
#define UBA_NEED16 3 /* need 16 bit addresses only */
+
+/*
+ * UNIBUS related kernel variables
+ */
+#ifdef KERNEL
+extern struct uba_minfo ubminit[];
+extern struct uba_dinfo ubdinit[];
+int numuba;
+extern struct pte UMEMmap[MAXNUBA][16];
+extern char umem[MAXNUBA][16*NBPG];
+extern int (*UNIvec[])();
+#if VAX780
+extern Xua0int(), Xua1int(), Xua2int(), Xua3int();
+#endif
+#endif