Annotation of sys/arch/amd64/include/mpconfig.h, Revision 1.1.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