160727d8bSWarner Losh /*- 2f6a7723dSBenno Rice * Copyright (C) 2002 Benno Rice. 3f6a7723dSBenno Rice * All rights reserved. 4f6a7723dSBenno Rice * 5f6a7723dSBenno Rice * Redistribution and use in source and binary forms, with or without 6f6a7723dSBenno Rice * modification, are permitted provided that the following conditions 7f6a7723dSBenno Rice * are met: 8f6a7723dSBenno Rice * 1. Redistributions of source code must retain the above copyright 9f6a7723dSBenno Rice * notice, this list of conditions and the following disclaimer. 10f6a7723dSBenno Rice * 2. Redistributions in binary form must reproduce the above copyright 11f6a7723dSBenno Rice * notice, this list of conditions and the following disclaimer in the 12f6a7723dSBenno Rice * documentation and/or other materials provided with the distribution. 13f6a7723dSBenno Rice * 14f6a7723dSBenno Rice * THIS SOFTWARE IS PROVIDED BY Benno Rice ``AS IS'' AND ANY EXPRESS OR 15f6a7723dSBenno Rice * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 16f6a7723dSBenno Rice * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17f6a7723dSBenno Rice * IN NO EVENT SHALL TOOLS GMBH BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 18f6a7723dSBenno Rice * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19f6a7723dSBenno Rice * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 20f6a7723dSBenno Rice * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 21f6a7723dSBenno Rice * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 22f6a7723dSBenno Rice * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 23f6a7723dSBenno Rice * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24f6a7723dSBenno Rice * 25f6a7723dSBenno Rice * $FreeBSD$ 26f6a7723dSBenno Rice */ 27f6a7723dSBenno Rice 28f6a7723dSBenno Rice #ifndef _MACHINE_INTR_MACHDEP_H_ 29f6a7723dSBenno Rice #define _MACHINE_INTR_MACHDEP_H_ 30f6a7723dSBenno Rice 31f6a7723dSBenno Rice typedef void ih_func_t(void *); 32f6a7723dSBenno Rice 33e0f66ef8SJohn Baldwin struct intr_event; 34f6a7723dSBenno Rice 35e0f66ef8SJohn Baldwin struct ppc_intr_handler { 36f6a7723dSBenno Rice ih_func_t *ih_func; 37f6a7723dSBenno Rice void *ih_arg; 38e0f66ef8SJohn Baldwin struct intr_event *ih_event; 39f6a7723dSBenno Rice u_int ih_irq; 40cbab7e25SBenno Rice u_int ih_flags; 4149f397d0SPeter Grehan u_int ih_index; 4249f397d0SPeter Grehan u_long *ih_count; 4349f397d0SPeter Grehan u_long *ih_straycount; 44f6a7723dSBenno Rice }; 45f6a7723dSBenno Rice 464f5d8660SMarcel Moolenaar /* XXX temporary. */ 474f5d8660SMarcel Moolenaar void ext_intr_install(void (*new_extint)(void)); 484f5d8660SMarcel Moolenaar 490bfbe7b9SPeter Wemm void intr_init(void (*)(void), int, void (*)(uintptr_t), void (*)(uintptr_t)); 50cbab7e25SBenno Rice void intr_setup(u_int, ih_func_t *, void *, u_int); 51ef544f63SPaolo Pisati int inthand_add(const char *, u_int, driver_filter_t *filter, 52ef544f63SPaolo Pisati void (*)(void *), void *, int, void **); 53f6a7723dSBenno Rice int inthand_remove(u_int, void *); 54f6a7723dSBenno Rice void intr_handle(u_int); 55f6a7723dSBenno Rice 56f6a7723dSBenno Rice #endif /* _MACHINE_INTR_MACHDEP_H_ */ 57