1 /* $OpenBSD: isa_machdep.h,v 1.4 2011/03/23 16:54:35 pirofti Exp $ */ 2 3 /* 4 * Copyright (c) 1998-2004 Michael Shalayeff 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 OR HIS RELATIVES BE LIABLE FOR ANY DIRECT, 20 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22 * SERVICES; LOSS OF MIND, USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 24 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 25 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 26 * THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29 #ifndef _MACHINE_ISA_MACHDEP_H_ 30 #define _MACHINE_ISA_MACHDEP_H_ 31 /* 32 * Types provided to machine-independent ISA code. 33 */ 34 typedef struct hppa_isa_chipset *isa_chipset_tag_t; 35 36 struct hppa_isa_chipset { 37 void *ic_v; 38 39 void (*ic_attach_hook)(struct device *, struct device *, 40 struct isabus_attach_args *); 41 void *(*ic_intr_establish)(void *, int, int, int, 42 int (*)(void *), void *, const char *); 43 void (*ic_intr_disestablish)(void *, void *); 44 int (*ic_intr_check)(void *, int, int); 45 }; 46 47 /* 48 * Functions provided to machine-independent ISA code. 49 */ 50 #define isa_attach_hook(p, s, a) \ 51 (*(a)->iba_ic->ic_attach_hook)((p), (s), (a)) 52 #define isa_intr_establish(c, i, t, l, f, a, nm) \ 53 (*(c)->ic_intr_establish)((c)->ic_v, (i), (t), (l), (f), (a), (nm)) 54 #define isa_intr_disestablish(c, h) \ 55 (*(c)->ic_intr_disestablish)((c)->ic_v, (h)) 56 #define isa_intr_check(c, i, t) \ 57 (*(c)->ic_intr_check)((c)->ic_v, (i), (t)) 58 59 #endif /* _MACHINE_ISA_MACHDEP_H_ */ 60