summaryrefslogtreecommitdiffstats
path: root/sys/dev/ieee488/upd7210.h
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2005-02-12 17:39:50 +0000
committerphk <phk@FreeBSD.org>2005-02-12 17:39:50 +0000
commitf634be7a95eeb69c8ade4746fcb55a6725acd7bb (patch)
tree1be7f508259f8e3cbb94c975484d9606fdb3b25a /sys/dev/ieee488/upd7210.h
parentd3f751172c945cad64cc899acaf7b0b30e490471 (diff)
downloadFreeBSD-src-f634be7a95eeb69c8ade4746fcb55a6725acd7bb.zip
FreeBSD-src-f634be7a95eeb69c8ade4746fcb55a6725acd7bb.tar.gz
Split the ibfoo API into its own file.
Implement ibdma() (only affects ibrd() mode) Implement ibeot()
Diffstat (limited to 'sys/dev/ieee488/upd7210.h')
-rw-r--r--sys/dev/ieee488/upd7210.h33
1 files changed, 27 insertions, 6 deletions
diff --git a/sys/dev/ieee488/upd7210.h b/sys/dev/ieee488/upd7210.h
index 623fb11..f592bbd 100644
--- a/sys/dev/ieee488/upd7210.h
+++ b/sys/dev/ieee488/upd7210.h
@@ -35,16 +35,16 @@
* in an old manual for a VME board which used the chip.
*/
-/* upd7210 interface definitions */
+#ifndef _DEV_IEEE488_UPD7210_H_
+#define _DEV_IEEE488_UPD7210_H_
+#ifdef _KERNEL
struct upd7210;
-
struct ibfoo;
-void upd7210intr(void *);
-void upd7210attach(struct upd7210 *);
+/* upd7210 interface definitions for HW drivers */
-typedef int upd7210_irq_t(struct upd7210 *);
+typedef int upd7210_irq_t(struct upd7210 *, int);
struct upd7210 {
bus_space_handle_t reg_handle[8];
@@ -53,7 +53,6 @@ struct upd7210 {
u_int dmachan;
/* private stuff */
- struct timeval deadline;
struct mtx mutex;
uint8_t rreg[8];
uint8_t wreg[8 + 8];
@@ -70,6 +69,13 @@ struct upd7210 {
struct ibfoo *ibfoo;
};
+#ifdef UPD7210_HW_DRIVER
+void upd7210intr(void *);
+void upd7210attach(struct upd7210 *);
+#endif
+
+#ifdef UPD7210_SW_DRIVER
+
/* upd7210 hardware definitions. */
/* Write registers */
@@ -211,3 +217,18 @@ enum upd7210_rreg {
#define ADR1_DT1 (1 << 6) /* Disable Talker 1 */
#define ADR1_EOI (1 << 7) /* End or Identify */
+/* Stuff from software drivers */
+extern struct cdevsw gpib_l_cdevsw;
+extern struct cdevsw gpib_ib_cdevsw;
+
+/* Stuff from upd7210.c */
+void upd7210_print_isr(u_int isr1, u_int isr2);
+u_int upd7210_rd(struct upd7210 *u, enum upd7210_rreg reg);
+void upd7210_wr(struct upd7210 *u, enum upd7210_wreg reg, u_int val);
+int upd7210_take_ctrl_async(struct upd7210 *u);
+int upd7210_goto_standby(struct upd7210 *u);
+
+#endif /* UPD7210_SW_DRIVER */
+
+#endif /* _KERNEL */
+#endif /* _DEV_IEEE488_UPD7210_H_ */
OpenPOWER on IntegriCloud