• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ****************************************************************************
11  ****************************************************************************/
12 #ifndef __ASM_MPSPEC_DEF_H
13 #define __ASM_MPSPEC_DEF_H
14 
15 #define SMP_MAGIC_IDENT (('_'<<24)|('P'<<16)|('M'<<8)|'_')
16 
17 #define MAX_MPC_ENTRY 1024
18 #define MAX_APICS 256
19 
20 struct intel_mp_floating
21 {
22  char mpf_signature[4];
23  unsigned long mpf_physptr;
24  unsigned char mpf_length;
25  unsigned char mpf_specification;
26  unsigned char mpf_checksum;
27  unsigned char mpf_feature1;
28  unsigned char mpf_feature2;
29  unsigned char mpf_feature3;
30  unsigned char mpf_feature4;
31  unsigned char mpf_feature5;
32 };
33 
34 struct mp_config_table
35 {
36  char mpc_signature[4];
37 #define MPC_SIGNATURE "PCMP"
38  unsigned short mpc_length;
39  char mpc_spec;
40  char mpc_checksum;
41  char mpc_oem[8];
42  char mpc_productid[12];
43  unsigned long mpc_oemptr;
44  unsigned short mpc_oemsize;
45  unsigned short mpc_oemcount;
46  unsigned long mpc_lapic;
47  unsigned long reserved;
48 };
49 
50 #define MP_PROCESSOR 0
51 #define MP_BUS 1
52 #define MP_IOAPIC 2
53 #define MP_INTSRC 3
54 #define MP_LINTSRC 4
55 #define MP_TRANSLATION 192
56 
57 struct mpc_config_processor
58 {
59  unsigned char mpc_type;
60  unsigned char mpc_apicid;
61  unsigned char mpc_apicver;
62  unsigned char mpc_cpuflag;
63 #define CPU_ENABLED 1
64 #define CPU_BOOTPROCESSOR 2
65  unsigned long mpc_cpufeature;
66 #define CPU_STEPPING_MASK 0x0F
67 #define CPU_MODEL_MASK 0xF0
68 #define CPU_FAMILY_MASK 0xF00
69  unsigned long mpc_featureflag;
70  unsigned long mpc_reserved[2];
71 };
72 
73 struct mpc_config_bus
74 {
75  unsigned char mpc_type;
76  unsigned char mpc_busid;
77  unsigned char mpc_bustype[6];
78 };
79 
80 #define BUSTYPE_EISA "EISA"
81 #define BUSTYPE_ISA "ISA"
82 #define BUSTYPE_INTERN "INTERN"
83 #define BUSTYPE_MCA "MCA"
84 #define BUSTYPE_VL "VL"
85 #define BUSTYPE_PCI "PCI"
86 #define BUSTYPE_PCMCIA "PCMCIA"
87 #define BUSTYPE_CBUS "CBUS"
88 #define BUSTYPE_CBUSII "CBUSII"
89 #define BUSTYPE_FUTURE "FUTURE"
90 #define BUSTYPE_MBI "MBI"
91 #define BUSTYPE_MBII "MBII"
92 #define BUSTYPE_MPI "MPI"
93 #define BUSTYPE_MPSA "MPSA"
94 #define BUSTYPE_NUBUS "NUBUS"
95 #define BUSTYPE_TC "TC"
96 #define BUSTYPE_VME "VME"
97 #define BUSTYPE_XPRESS "XPRESS"
98 
99 struct mpc_config_ioapic
100 {
101  unsigned char mpc_type;
102  unsigned char mpc_apicid;
103  unsigned char mpc_apicver;
104  unsigned char mpc_flags;
105 #define MPC_APIC_USABLE 0x01
106  unsigned long mpc_apicaddr;
107 };
108 
109 struct mpc_config_intsrc
110 {
111  unsigned char mpc_type;
112  unsigned char mpc_irqtype;
113  unsigned short mpc_irqflag;
114  unsigned char mpc_srcbus;
115  unsigned char mpc_srcbusirq;
116  unsigned char mpc_dstapic;
117  unsigned char mpc_dstirq;
118 };
119 
120 enum mp_irq_source_types {
121  mp_INT = 0,
122  mp_NMI = 1,
123  mp_SMI = 2,
124  mp_ExtINT = 3
125 };
126 
127 #define MP_IRQDIR_DEFAULT 0
128 #define MP_IRQDIR_HIGH 1
129 #define MP_IRQDIR_LOW 3
130 
131 struct mpc_config_lintsrc
132 {
133  unsigned char mpc_type;
134  unsigned char mpc_irqtype;
135  unsigned short mpc_irqflag;
136  unsigned char mpc_srcbusid;
137  unsigned char mpc_srcbusirq;
138  unsigned char mpc_destapic;
139 #define MP_APIC_ALL 0xFF
140  unsigned char mpc_destapiclint;
141 };
142 
143 struct mp_config_oemtable
144 {
145  char oem_signature[4];
146 #define MPC_OEM_SIGNATURE "_OEM"
147  unsigned short oem_length;
148  char oem_rev;
149  char oem_checksum;
150  char mpc_oem[8];
151 };
152 
153 struct mpc_config_translation
154 {
155  unsigned char mpc_type;
156  unsigned char trans_len;
157  unsigned char trans_type;
158  unsigned char trans_quad;
159  unsigned char trans_global;
160  unsigned char trans_local;
161  unsigned short trans_reserved;
162 };
163 
164 enum mp_bustype {
165  MP_BUS_ISA = 1,
166  MP_BUS_EISA,
167  MP_BUS_PCI,
168  MP_BUS_MCA,
169 };
170 #endif
171 
172