arcofivar.h revision 1.1.20.2 1 1.1.20.2 jdolecek /* $NetBSD: arcofivar.h,v 1.1.20.2 2017/12/03 11:37:03 jdolecek Exp $ */
2 1.1.20.2 jdolecek /* $OpenBSD: arcofivar.h,v 1.2 2011/12/25 00:07:27 miod Exp $ */
3 1.1.20.2 jdolecek
4 1.1.20.2 jdolecek /*
5 1.1.20.2 jdolecek * Copyright (c) 2011 Miodrag Vallat.
6 1.1.20.2 jdolecek *
7 1.1.20.2 jdolecek * Permission to use, copy, modify, and distribute this software for any
8 1.1.20.2 jdolecek * purpose with or without fee is hereby granted, provided that the above
9 1.1.20.2 jdolecek * copyright notice and this permission notice appear in all copies.
10 1.1.20.2 jdolecek *
11 1.1.20.2 jdolecek * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12 1.1.20.2 jdolecek * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13 1.1.20.2 jdolecek * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14 1.1.20.2 jdolecek * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15 1.1.20.2 jdolecek * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16 1.1.20.2 jdolecek * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17 1.1.20.2 jdolecek * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18 1.1.20.2 jdolecek */
19 1.1.20.2 jdolecek
20 1.1.20.2 jdolecek #define ARCOFI_NREGS 6
21 1.1.20.2 jdolecek
22 1.1.20.2 jdolecek struct arcofi_softc {
23 1.1.20.2 jdolecek device_t sc_dev;
24 1.1.20.2 jdolecek bus_addr_t sc_reg[ARCOFI_NREGS];
25 1.1.20.2 jdolecek bus_space_tag_t sc_iot;
26 1.1.20.2 jdolecek bus_space_handle_t sc_ioh;
27 1.1.20.2 jdolecek
28 1.1.20.2 jdolecek struct audio_device sc_audio_device;
29 1.1.20.2 jdolecek void *sc_sih;
30 1.1.20.2 jdolecek
31 1.1.20.2 jdolecek int sc_open;
32 1.1.20.2 jdolecek int sc_mode;
33 1.1.20.2 jdolecek
34 1.1.20.2 jdolecek struct {
35 1.1.20.2 jdolecek uint8_t cr3, cr4;
36 1.1.20.2 jdolecek uint gr_idx, gx_idx;
37 1.1.20.2 jdolecek int output_mute;
38 1.1.20.2 jdolecek } sc_active,
39 1.1.20.2 jdolecek sc_shadow;
40 1.1.20.2 jdolecek
41 1.1.20.2 jdolecek struct {
42 1.1.20.2 jdolecek uint8_t *buf;
43 1.1.20.2 jdolecek uint8_t *past;
44 1.1.20.2 jdolecek void (*cb)(void *);
45 1.1.20.2 jdolecek void *cbarg;
46 1.1.20.2 jdolecek } sc_recv,
47 1.1.20.2 jdolecek sc_xmit;
48 1.1.20.2 jdolecek kmutex_t sc_lock;
49 1.1.20.2 jdolecek kmutex_t sc_intr_lock;
50 1.1.20.2 jdolecek kcondvar_t sc_cv;
51 1.1.20.2 jdolecek struct audio_encoding_set *sc_encodings;
52 1.1.20.2 jdolecek };
53 1.1.20.2 jdolecek
54 1.1.20.2 jdolecek void arcofi_attach(struct arcofi_softc *, const char *);
55 1.1.20.2 jdolecek int arcofi_hwintr(void *);
56 1.1.20.2 jdolecek void arcofi_swintr(void *);
57