Annotation of sys/dev/pci/autrivar.h, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: autrivar.h,v 1.3 2003/03/09 01:52:14 tedu Exp $ */
2:
3: /*
4: * Copyright (c) 2001 SOMEYA Yoshihiko and KUROSAWA Takahiro.
5: * All rights reserved.
6: *
7: * Redistribution and use in source and binary forms, with or without
8: * modification, are permitted provided that the following conditions
9: * are met:
10: * 1. Redistributions of source code must retain the above copyright
11: * notice, this list of conditions and the following disclaimer.
12: * 2. Redistributions in binary form must reproduce the above copyright
13: * notice, this list of conditions and the following disclaimer in the
14: * documentation and/or other materials provided with the distribution.
15: *
16: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17: * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19: * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20: * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21: * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25: * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26: */
27:
28: #ifndef _DEV_PCI_AUTRIVAR_H_
29: #define _DEV_PCI_AUTRIVAR_H_
30:
31: /*
32: * softc
33: */
34: struct autri_dma {
35: bus_dmamap_t map;
36: caddr_t addr; /* VA */
37: bus_dma_segment_t segs[1];
38: int nsegs;
39: size_t size;
40: struct autri_dma *next;
41: };
42:
43: struct autri_codec_softc {
44: struct device sc_dev; /* base device */
45: struct autri_softc *sc;
46: int id;
47: int status_data;
48: int status_addr;
49: struct ac97_host_if host_if;
50: struct ac97_codec_if *codec_if;
51: int flags;
52: };
53:
54: struct autri_chstatus {
55: void (*intr)(void *); /* rint/pint */
56: void *intr_arg; /* arg for intr */
57: u_int offset; /* filled up to here */
58: u_int blksize;
59: u_int factor; /* byte per sample */
60: u_int length; /* ring buffer length */
61: struct autri_dma *dma; /* DMA handle for ring buf */
62:
63: int ch;
64: int ch_intr;
65: #if 0
66: u_int csoint;
67: u_int count;
68: #endif
69: };
70:
71: struct autri_softc {
72: struct device sc_dev; /* base device */
73: pci_chipset_tag_t sc_pc;
74: pcitag_t sc_pt;
75: pcireg_t sc_devid;
76: void *sc_ih; /* interrupt vectoring */
77: bus_space_tag_t memt;
78: bus_space_handle_t memh;
79: bus_space_tag_t iot;
80: bus_space_handle_t ioh;
81: bus_dma_tag_t sc_dmatag; /* DMA tag */
82: u_int sc_flags;
83:
84: struct autri_codec_softc sc_codec;
85: struct autri_dma *sc_dmas; /* List of DMA handles */
86:
87: u_int32_t sc_class;
88: int sc_revision;
89:
90: int sc_old_power;
91:
92: /*
93: * Play/record status
94: */
95: struct autri_chstatus sc_play, sc_rec;
96:
97: #if NMIDI > 0
98: void (*sc_iintr)(void *, int); /* midi input ready handler */
99: void (*sc_ointr)(void *); /* midi output ready handler */
100: void *sc_arg;
101: #endif
102:
103: };
104:
105: #endif /* _DEV_PCI_AUTRIVAR_H_ */
106:
CVSweb