1*c03b1b92Smk /* $OpenBSD: elroyvar.h,v 1.4 2009/08/22 02:54:50 mk Exp $ */ 2b95ee612Skettenis 3b95ee612Skettenis /* 4b95ee612Skettenis * Copyright (c) 2005 Michael Shalayeff 5b95ee612Skettenis * All rights reserved. 6b95ee612Skettenis * 7b95ee612Skettenis * Permission to use, copy, modify, and distribute this software for any 8b95ee612Skettenis * purpose with or without fee is hereby granted, provided that the above 9b95ee612Skettenis * copyright notice and this permission notice appear in all copies. 10b95ee612Skettenis * 11b95ee612Skettenis * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 12b95ee612Skettenis * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 13b95ee612Skettenis * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 14b95ee612Skettenis * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 15b95ee612Skettenis * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER IN 16b95ee612Skettenis * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT 17b95ee612Skettenis * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 18b95ee612Skettenis */ 19b95ee612Skettenis 2089a56fa7Skettenis #include <machine/pdc.h> 2189a56fa7Skettenis 22b95ee612Skettenis struct elroy_softc { 23b95ee612Skettenis struct device sc_dv; 24b95ee612Skettenis 25b95ee612Skettenis int sc_ver; 2689a56fa7Skettenis hppa_hpa_t sc_hpa; 27b95ee612Skettenis bus_space_tag_t sc_bt; 28b95ee612Skettenis bus_space_handle_t sc_bh; 29b95ee612Skettenis bus_dma_tag_t sc_dmat; 30b95ee612Skettenis volatile struct elroy_regs *sc_regs; 31b95ee612Skettenis bus_addr_t sc_iobase; 32b95ee612Skettenis 33b95ee612Skettenis u_int32_t sc_imr; 34b95ee612Skettenis int sc_nints; 3515fe2033Skettenis int *sc_irq; 36b95ee612Skettenis 3789a56fa7Skettenis struct pdc_pat_pci_rt *sc_int_tbl; 3889a56fa7Skettenis int sc_int_tbl_sz; 3989a56fa7Skettenis 40b95ee612Skettenis struct hppa_pci_chipset_tag sc_pc; 41b95ee612Skettenis struct hppa_bus_space_tag sc_iot; 42b95ee612Skettenis struct hppa_bus_space_tag sc_memt; 43b95ee612Skettenis char sc_memexname[20]; 44b95ee612Skettenis struct extent *sc_memex; 45b95ee612Skettenis struct hppa_bus_dma_tag sc_dmatag; 46b95ee612Skettenis }; 47b95ee612Skettenis 48b95ee612Skettenis void apic_attach(struct elroy_softc *sc); 49b95ee612Skettenis int apic_intr(void *v); 50b95ee612Skettenis int apic_intr_map(struct pci_attach_args *pa, pci_intr_handle_t *ihp); 51b95ee612Skettenis const char *apic_intr_string(void *v, pci_intr_handle_t ih); 52b95ee612Skettenis void *apic_intr_establish(void *v, pci_intr_handle_t ih, int pri, 53*c03b1b92Smk int (*handler)(void *), void *arg, const char *name); 54b95ee612Skettenis void apic_intr_disestablish(void *v, void *cookie); 55b95ee612Skettenis 56b95ee612Skettenis void elroy_write32(volatile u_int32_t *p, u_int32_t v); 57b95ee612Skettenis u_int32_t elroy_read32(volatile u_int32_t *p); 58