1 /* $NetBSD: eisa_machdep.h,v 1.3 2009/05/07 15:34:49 skrll Exp $ */
3 /* $OpenBSD: eisa_machdep.h,v 1.2 2000/04/18 20:55:02 mickey Exp $ */
6 * Copyright (c) 1998-2004 Michael Shalayeff
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions
12 * 1. Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 * 2. Redistributions in binary form must reproduce the above copyright
15 * notice, this list of conditions and the following disclaimer in the
16 * documentation and/or other materials provided with the distribution.
18 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
19 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21 * IN NO EVENT SHALL THE AUTHOR OR HIS RELATIVES BE LIABLE FOR ANY DIRECT,
22 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24 * SERVICES; LOSS OF MIND, USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
27 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
28 * THE POSSIBILITY OF SUCH DAMAGE.
32 * Types provided to machine-independent EISA code.
34 typedef struct hppa_eisa_chipset
*eisa_chipset_tag_t
;
35 typedef int eisa_intr_handle_t
;
37 struct hppa_eisa_chipset
{
40 void (*ec_attach_hook
)(device_t
, device_t
,
41 struct eisabus_attach_args
*);
42 int (*ec_intr_map
)(void *, u_int
, int *);
43 const char *(*ec_intr_string
)(void *, int);
44 void *(*ec_intr_establish
)(void *, int, int, int,
45 int (*)(void *), void *);
46 void (*ec_intr_disestablish
)(void *, void *);
50 #define EISA_SLOTOFF_PRIMING EISA_SLOTOFF_VID
51 #define EISA_PRIMING_VID(i) ({ (void)(i), 0xff; })
52 #define EISA_PRIMING_PID(i) ({ (void)(i), 0x00; })
56 * Functions provided to machine-independent EISA code.
58 #define eisa_attach_hook(p, s, a) \
59 (*(a)->eba_ec->ec_attach_hook)((p), (s), (a))
60 #define eisa_maxslots(c) 8
61 #define eisa_intr_map(c, i, hp) \
62 (*(c)->ec_intr_map)((c)->ec_v, (i), (hp))
63 #define eisa_intr_string(c, h) \
64 (*(c)->ec_intr_string)((c)->ec_v, (h))
65 #define eisa_intr_establish(c, h, t, l, f, a) \
66 (*(c)->ec_intr_establish)((c)->ec_v, (h), (t), (l), (f), (a))
67 #define eisa_intr_disestablish(c, h) \
68 (*(c)->ec_intr_disestablish)((c)->ec_v, (h))