Annotation of sys/arch/amd64/include/mpconfig.h, Revision 1.1
1.1 ! nbrk 1: /* $OpenBSD: mpconfig.h,v 1.4 2006/11/25 16:59:31 niklas 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 _X86_MPCONFIG_H
! 10: #define _X86_MPCONFIG_H
! 11:
! 12: /*
! 13: * Interrupt typess
! 14: */
! 15: #define MPS_INTTYPE_INT 0
! 16: #define MPS_INTTYPE_NMI 1
! 17: #define MPS_INTTYPE_SMI 2
! 18: #define MPS_INTTYPE_ExtINT 3
! 19:
! 20: #define MPS_INTPO_DEF 0
! 21: #define MPS_INTPO_ACTHI 1
! 22: #define MPS_INTPO_ACTLO 3
! 23:
! 24: #define MPS_INTTR_DEF 0
! 25: #define MPS_INTTR_EDGE 1
! 26: #define MPS_INTTR_LEVEL 3
! 27:
! 28: #ifndef _LOCORE
! 29:
! 30: struct mpbios_int;
! 31:
! 32: struct mp_bus
! 33: {
! 34: char *mb_name; /* XXX bus name */
! 35: int mb_idx; /* XXX bus index */
! 36: void (*mb_intr_print)(int);
! 37: void (*mb_intr_cfg)(const struct mpbios_int *, u_int32_t *);
! 38: struct mp_intr_map *mb_intrs;
! 39: u_int32_t mb_data; /* random bus-specific datum. */
! 40: };
! 41:
! 42: struct mp_intr_map
! 43: {
! 44: struct mp_intr_map *next;
! 45: struct mp_bus *bus;
! 46: int bus_pin;
! 47: struct ioapic_softc *ioapic;
! 48: int ioapic_pin;
! 49: int ioapic_ih; /* int handle, for apic_intr_est */
! 50: int type; /* from mp spec intr record */
! 51: int flags; /* from mp spec intr record */
! 52: u_int32_t redir;
! 53: int cpu_id;
! 54: int global_int; /* ACPI global interrupt number */
! 55: };
! 56:
! 57: #if defined(_KERNEL)
! 58: extern int mp_verbose;
! 59: extern struct mp_bus *mp_busses;
! 60: extern struct mp_intr_map *mp_intrs;
! 61: extern int mp_nintr;
! 62: extern struct mp_bus *mp_isa_bus;
! 63: extern struct mp_bus *mp_eisa_bus;
! 64: extern int mp_nbus;
! 65: #endif
! 66: #endif
! 67:
! 68: #endif /* _X86_MPCONFIG_H */
CVSweb