]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/dev/mcd/mcdvar.h
Merge OpenSSL 1.0.2h.
[FreeBSD/FreeBSD.git] / sys / dev / mcd / mcdvar.h
1 /*
2  * $FreeBSD$
3  */
4
5 struct mcd_mbx {
6         short           retry;
7         short           nblk;
8         int             sz;
9         u_long          skip;
10         struct bio *    bp;
11         short           count;
12         short           mode;
13 };
14
15 struct mcd_data {
16         short                   type;
17         char *                  name;
18         short                   config;
19         short                   flags;
20         u_char                  read_command;
21         short                   status;
22         int                     blksize;
23         u_long                  disksize;
24         int                     partflags;
25         int                     openflags;
26         struct mcd_volinfo      volinfo;   
27         struct mcd_qchninfo     toc[MCD_MAXTOCS]; 
28         short                   audio_status;
29         short                   curr_mode;
30         struct mcd_read2        lastpb;
31         short                   debug;
32         struct bio_queue_head   head;        /* head of bio queue */
33         struct mcd_mbx          mbx;
34 };
35
36 struct mcd_softc {
37         device_t                dev;
38         struct cdev *mcd_dev_t;
39         int                     debug;
40
41         struct resource *       port;
42         int                     port_rid;
43         int                     port_type;
44
45         struct resource *       irq;
46         int                     irq_rid;
47         int                     irq_type;
48         void *                  irq_ih;
49
50         struct resource *       drq;
51         int                     drq_rid;
52         int                     drq_type;
53
54         struct mtx              mtx;
55
56         struct callout          timer;
57         int                     ch_state;
58         struct mcd_mbx *        ch_mbxsave;
59
60         struct mcd_data         data;
61 };
62
63 #define MCD_LOCK(_sc)           mtx_lock(&_sc->mtx)
64 #define MCD_UNLOCK(_sc)         mtx_unlock(&_sc->mtx)
65 #define MCD_ASSERT_LOCKED(_sc)  mtx_assert(&_sc->mtx, MA_OWNED)
66
67 #define MCD_READ(_sc, _reg)             bus_read_1(_sc->port, _reg)
68 #define MCD_WRITE(_sc, _reg, _val)      bus_write_1(_sc->port, _reg, _val)
69
70 int     mcd_probe       (struct mcd_softc *);
71 int     mcd_attach      (struct mcd_softc *);