diff options
author | phk <phk@FreeBSD.org> | 2005-02-12 17:39:50 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2005-02-12 17:39:50 +0000 |
commit | f634be7a95eeb69c8ade4746fcb55a6725acd7bb (patch) | |
tree | 1be7f508259f8e3cbb94c975484d9606fdb3b25a /sys/dev/ieee488/upd7210.h | |
parent | d3f751172c945cad64cc899acaf7b0b30e490471 (diff) | |
download | FreeBSD-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.h | 33 |
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_ */ |