mcdvar.h revision 104445
1104445Smdodd/* 2104445Smdodd * $FreeBSD: head/sys/dev/mcd/mcdvar.h 104445 2002-10-04 07:14:19Z mdodd $ 3104445Smdodd */ 4104445Smdodd 5104445Smdoddstruct mcd_mbx { 6104445Smdodd short unit; 7104445Smdodd short port; 8104445Smdodd short retry; 9104445Smdodd short nblk; 10104445Smdodd int sz; 11104445Smdodd u_long skip; 12104445Smdodd struct bio * bp; 13104445Smdodd int p_offset; 14104445Smdodd short count; 15104445Smdodd short mode; 16104445Smdodd}; 17104445Smdodd 18104445Smdoddstruct mcd_data { 19104445Smdodd short type; 20104445Smdodd char * name; 21104445Smdodd short config; 22104445Smdodd short flags; 23104445Smdodd u_char read_command; 24104445Smdodd short status; 25104445Smdodd int blksize; 26104445Smdodd u_long disksize; 27104445Smdodd int iobase; 28104445Smdodd struct disklabel dlabel; 29104445Smdodd int partflags[MAXPARTITIONS]; 30104445Smdodd int openflags; 31104445Smdodd struct mcd_volinfo volinfo; 32104445Smdodd struct mcd_qchninfo toc[MCD_MAXTOCS]; 33104445Smdodd short audio_status; 34104445Smdodd short curr_mode; 35104445Smdodd struct mcd_read2 lastpb; 36104445Smdodd short debug; 37104445Smdodd struct bio_queue_head head; /* head of bio queue */ 38104445Smdodd struct mcd_mbx mbx; 39104445Smdodd}; 40104445Smdodd 41104445Smdoddstruct mcd_softc { 42104445Smdodd device_t dev; 43104445Smdodd dev_t mcd_dev_t[3]; 44104445Smdodd int debug; 45104445Smdodd 46104445Smdodd struct resource * port; 47104445Smdodd int port_rid; 48104445Smdodd int port_type; 49104445Smdodd bus_space_tag_t port_bst; 50104445Smdodd bus_space_handle_t port_bsh; 51104445Smdodd 52104445Smdodd struct resource * irq; 53104445Smdodd int irq_rid; 54104445Smdodd int irq_type; 55104445Smdodd void * irq_ih; 56104445Smdodd 57104445Smdodd struct resource * drq; 58104445Smdodd int drq_rid; 59104445Smdodd int drq_type; 60104445Smdodd 61104445Smdodd struct mtx mtx; 62104445Smdodd 63104445Smdodd struct callout_handle ch; 64104445Smdodd int ch_state; 65104445Smdodd struct mcd_mbx * ch_mbxsave; 66104445Smdodd 67104445Smdodd struct mcd_data data; 68104445Smdodd}; 69104445Smdodd 70104445Smdodd#define MCD_LOCK(_sc) splx(&(_sc)->mtx 71104445Smdodd#define MCD_UNLOCK(_sc) splx(&(_sc)->mtx 72104445Smdodd 73104445Smdodd#define MCD_READ(_sc, _reg) \ 74104445Smdodd bus_space_read_1(_sc->port_bst, _sc->port_bsh, _reg) 75104445Smdodd#define MCD_WRITE(_sc, _reg, _val) \ 76104445Smdodd bus_space_write_1(_sc->port_bst, _sc->port_bsh, _reg, _val) 77104445Smdodd 78104445Smdoddint mcd_probe (struct mcd_softc *); 79104445Smdoddint mcd_attach (struct mcd_softc *); 80