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