FreeBSD/Linux Kernel Cross Reference
sys/dev/tc/ioasicvar.h
1 /* $OpenBSD: ioasicvar.h,v 1.10 2009/11/07 23:01:38 miod Exp $ */
2 /* $NetBSD: ioasicvar.h,v 1.14 2000/10/17 09:45:49 nisimura Exp $ */
3
4 /*
5 * Copyright (c) 1995 Carnegie-Mellon University.
6 * All rights reserved.
7 *
8 * Author: Chris G. Demetriou
9 *
10 * Permission to use, copy, modify and distribute this software and
11 * its documentation is hereby granted, provided that both the copyright
12 * notice and this permission notice appear in all copies of the
13 * software, derivative works or modified versions, and any portions
14 * thereof, and that both notices appear in supporting documentation.
15 *
16 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
17 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
18 * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
19 *
20 * Carnegie Mellon requests users of this software to return to
21 *
22 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
23 * School of Computer Science
24 * Carnegie Mellon University
25 * Pittsburgh PA 15213-3890
26 *
27 * any improvements or extensions that they make and grant Carnegie the
28 * rights to redistribute these changes.
29 */
30
31 #ifndef _DEV_TC_IOASICVAR_H_
32 #define _DEV_TC_IOASICVAR_H_
33
34 struct ioasic_dev {
35 char *iad_modname;
36 tc_offset_t iad_offset;
37 void *iad_cookie;
38 u_int32_t iad_intrbits;
39 };
40
41 struct ioasicdev_attach_args {
42 char iada_modname[TC_ROM_LLEN + 1];
43 tc_offset_t iada_offset;
44 tc_addr_t iada_addr;
45 void *iada_cookie;
46 };
47
48 /* Device locators. */
49 #define ioasiccf_offset cf_loc[0] /* offset */
50
51 #define IOASIC_OFFSET_UNKNOWN -1
52
53 struct ioasic_softc {
54 struct device sc_dv;
55 bus_space_tag_t sc_bst;
56 bus_space_handle_t sc_bsh;
57 bus_dma_tag_t sc_dmat;
58
59 tc_addr_t sc_base; /* XXX offset XXX */
60 };
61
62 extern struct cfdriver ioasic_cd;
63
64 /*
65 * XXX Some drivers need direct access to IOASIC registers.
66 */
67 extern tc_addr_t ioasic_base;
68
69 void ioasic_intr_establish(struct device *, void *,
70 int, int (*)(void *), void *, const char *);
71 void ioasic_intr_disestablish(struct device *, void *);
72 int ioasic_submatch(void *, struct ioasicdev_attach_args *);
73 void ioasic_attach_devs(struct ioasic_softc *,
74 struct ioasic_dev *, int);
75 void ioasic_led_blink(void *);
76
77 #endif /* _DEV_TC_IOASICVAR_ */
Cache object: 118010af15cfd6605b2dd5e50638d75c
|