1 /* $OpenBSD: mpconfig.h,v 1.8 2011/10/21 20:48:11 kettenis Exp $ */ 2 /* $NetBSD: mpconfig.h,v 1.2 2003/05/11 00:05:52 fvdl Exp $ */ 3 4 /* 5 * Definitions originally from the mpbios code, but now used for ACPI 6 * MP config as well. 7 */ 8 9 #ifndef _AMD64_MPCONFIG_H 10 #define _AMD64_MPCONFIG_H 11 12 #ifndef _LOCORE 13 14 struct mpbios_int; 15 16 struct mp_bus { 17 char *mb_name; /* XXX bus name */ 18 int mb_idx; /* XXX bus index */ 19 void (*mb_intr_print)(int); 20 void (*mb_intr_cfg)(const struct mpbios_int *, u_int32_t *); 21 struct mp_intr_map *mb_intrs; 22 u_int32_t mb_data; /* random bus-specific datum. */ 23 }; 24 25 struct mp_intr_map { 26 struct mp_intr_map *next; 27 struct mp_bus *bus; 28 int bus_pin; 29 struct ioapic_softc *ioapic; 30 int ioapic_pin; 31 int ioapic_ih; /* int handle, for apic_intr_est */ 32 int type; /* from mp spec intr record */ 33 int flags; /* from mp spec intr record */ 34 u_int32_t redir; 35 int cpu_id; 36 }; 37 38 #if defined(_KERNEL) 39 extern int mp_verbose; 40 extern struct mp_bus *mp_busses; 41 extern int mp_nbusses; 42 extern struct mp_intr_map *mp_intrs; 43 extern int mp_nintrs; 44 extern struct mp_bus *mp_isa_bus; 45 extern struct mp_bus *mp_eisa_bus; 46 #endif 47 #endif 48 49 #endif /* _AMD64_MPCONFIG_H */ 50