]>
Commit | Line | Data |
---|---|---|
f427ee49 A |
1 | /****************************************************************************** |
2 | * | |
3 | * Name: actbl.h - Basic ACPI Table Definitions | |
4 | * $Revision: 1.7 $ | |
5 | * | |
6 | *****************************************************************************/ | |
7 | ||
8 | /****************************************************************************** | |
9 | * | |
10 | * 1. Copyright Notice | |
11 | * | |
12 | * Some or all of this work - Copyright (c) 1999 - 2006, Intel Corp. | |
13 | * All rights reserved. | |
14 | * | |
15 | * 2. License | |
16 | * | |
17 | * 2.1. This is your license from Intel Corp. under its intellectual property | |
18 | * rights. You may have additional license terms from the party that provided | |
19 | * you this software, covering your right to use that party's intellectual | |
20 | * property rights. | |
21 | * | |
22 | * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a | |
23 | * copy of the source code appearing in this file ("Covered Code") an | |
24 | * irrevocable, perpetual, worldwide license under Intel's copyrights in the | |
25 | * base code distributed originally by Intel ("Original Intel Code") to copy, | |
26 | * make derivatives, distribute, use and display any portion of the Covered | |
27 | * Code in any form, with the right to sublicense such rights; and | |
28 | * | |
29 | * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent | |
30 | * license (with the right to sublicense), under only those claims of Intel | |
31 | * patents that are infringed by the Original Intel Code, to make, use, sell, | |
32 | * offer to sell, and import the Covered Code and derivative works thereof | |
33 | * solely to the minimum extent necessary to exercise the above copyright | |
34 | * license, and in no event shall the patent license extend to any additions | |
35 | * to or modifications of the Original Intel Code. No other license or right | |
36 | * is granted directly or by implication, estoppel or otherwise; | |
37 | * | |
38 | * The above copyright and patent license is granted only if the following | |
39 | * conditions are met: | |
40 | * | |
41 | * 3. Conditions | |
42 | * | |
43 | * 3.1. Redistribution of Source with Rights to Further Distribute Source. | |
44 | * Redistribution of source code of any substantial portion of the Covered | |
45 | * Code or modification with rights to further distribute source must include | |
46 | * the above Copyright Notice, the above License, this list of Conditions, | |
47 | * and the following Disclaimer and Export Compliance provision. In addition, | |
48 | * Licensee must cause all Covered Code to which Licensee contributes to | |
49 | * contain a file documenting the changes Licensee made to create that Covered | |
50 | * Code and the date of any change. Licensee must include in that file the | |
51 | * documentation of any changes made by any predecessor Licensee. Licensee | |
52 | * must include a prominent statement that the modification is derived, | |
53 | * directly or indirectly, from Original Intel Code. | |
54 | * | |
55 | * 3.2. Redistribution of Source with no Rights to Further Distribute Source. | |
56 | * Redistribution of source code of any substantial portion of the Covered | |
57 | * Code or modification without rights to further distribute source must | |
58 | * include the following Disclaimer and Export Compliance provision in the | |
59 | * documentation and/or other materials provided with distribution. In | |
60 | * addition, Licensee may not authorize further sublicense of source of any | |
61 | * portion of the Covered Code, and must include terms to the effect that the | |
62 | * license from Licensee to its licensee is limited to the intellectual | |
63 | * property embodied in the software Licensee provides to its licensee, and | |
64 | * not to intellectual property embodied in modifications its licensee may | |
65 | * make. | |
66 | * | |
67 | * 3.3. Redistribution of Executable. Redistribution in executable form of any | |
68 | * substantial portion of the Covered Code or modification must reproduce the | |
69 | * above Copyright Notice, and the following Disclaimer and Export Compliance | |
70 | * provision in the documentation and/or other materials provided with the | |
71 | * distribution. | |
72 | * | |
73 | * 3.4. Intel retains all right, title, and interest in and to the Original | |
74 | * Intel Code. | |
75 | * | |
76 | * 3.5. Neither the name Intel nor any other trademark owned or controlled by | |
77 | * Intel shall be used in advertising or otherwise to promote the sale, use or | |
78 | * other dealings in products derived from or relating to the Covered Code | |
79 | * without prior written authorization from Intel. | |
80 | * | |
81 | * 4. Disclaimer and Export Compliance | |
82 | * | |
83 | * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED | |
84 | * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE | |
85 | * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, | |
86 | * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY | |
87 | * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY | |
88 | * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A | |
89 | * PARTICULAR PURPOSE. | |
90 | * | |
91 | * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES | |
92 | * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR | |
93 | * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, | |
94 | * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY | |
95 | * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL | |
96 | * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS | |
97 | * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY | |
98 | * LIMITED REMEDY. | |
99 | * | |
100 | * 4.3. Licensee shall not export, either directly or indirectly, any of this | |
101 | * software or system incorporating such software without first obtaining any | |
102 | * required license or other approval from the U. S. Department of Commerce or | |
103 | * any other agency or department of the United States Government. In the | |
104 | * event Licensee exports any such software from the United States or | |
105 | * re-exports any such software from a foreign destination, Licensee shall | |
106 | * ensure that the distribution and export/re-export of the software is in | |
107 | * compliance with all laws, regulations, orders, or other restrictions of the | |
108 | * U.S. Export Administration Regulations. Licensee agrees that neither it nor | |
109 | * any of its subsidiaries will export/re-export any technical data, process, | |
110 | * software, or service, directly or indirectly, to any country for which the | |
111 | * United States government or any agency thereof requires an export license, | |
112 | * other governmental approval, or letter of assurance, without first obtaining | |
113 | * such license, approval or letter. | |
114 | * | |
115 | *****************************************************************************/ | |
116 | ||
117 | #ifndef __ACTBL_H__ | |
118 | #define __ACTBL_H__ | |
119 | ||
120 | /* | |
121 | * Values for description table header signatures. Useful because they make | |
122 | * it more difficult to inadvertently type in the wrong signature. | |
123 | */ | |
124 | #define DSDT_SIG "DSDT" /* Differentiated System Description Table */ | |
125 | #define FADT_SIG "FACP" /* Fixed ACPI Description Table */ | |
126 | #define FACS_SIG "FACS" /* Firmware ACPI Control Structure */ | |
127 | #define PSDT_SIG "PSDT" /* Persistent System Description Table */ | |
128 | #define RSDP_SIG "RSD PTR " /* Root System Description Pointer */ | |
129 | #define RSDT_SIG "RSDT" /* Root System Description Table */ | |
130 | #define XSDT_SIG "XSDT" /* Extended System Description Table */ | |
131 | #define SSDT_SIG "SSDT" /* Secondary System Description Table */ | |
132 | #define RSDP_NAME "RSDP" | |
133 | ||
134 | ||
135 | /* | |
136 | * All tables and structures must be byte-packed to match the ACPI | |
137 | * specification, since the tables are provided by the system BIOS | |
138 | */ | |
139 | #pragma pack(1) | |
140 | ||
141 | ||
142 | /* | |
143 | * These are the ACPI tables that are directly consumed by the subsystem. | |
144 | * | |
145 | * The RSDP and FACS do not use the common ACPI table header. All other ACPI | |
146 | * tables use the header. | |
147 | * | |
148 | * Note about bitfields: The UINT8 type is used for bitfields in ACPI tables. | |
149 | * This is the only type that is even remotely portable. Anything else is not | |
150 | * portable, so do not use any other bitfield types. | |
151 | */ | |
152 | ||
153 | /******************************************************************************* | |
154 | * | |
155 | * ACPI Table Header. This common header is used by all tables except the | |
156 | * RSDP and FACS. The define is used for direct inclusion of header into | |
157 | * other ACPI tables | |
158 | * | |
159 | ******************************************************************************/ | |
160 | ||
161 | #define ACPI_TABLE_HEADER_DEF \ | |
162 | char Signature[4]; /* ASCII table signature */ \ | |
163 | UINT32 Length; /* Length of table in bytes, including this header */ \ | |
164 | UINT8 Revision; /* ACPI Specification minor version # */ \ | |
165 | UINT8 Checksum; /* To make sum of entire table == 0 */ \ | |
166 | char OemId[6]; /* ASCII OEM identification */ \ | |
167 | char OemTableId[8]; /* ASCII OEM table identification */ \ | |
168 | UINT32 OemRevision; /* OEM revision number */ \ | |
169 | char AslCompilerId[4]; /* ASCII ASL compiler vendor ID */ \ | |
170 | UINT32 AslCompilerRevision; /* ASL compiler version */ | |
171 | ||
172 | typedef struct acpi_table_header { | |
173 | ACPI_TABLE_HEADER_DEF | |
174 | } ACPI_TABLE_HEADER; | |
175 | ||
176 | ||
177 | /* | |
178 | * GAS - Generic Address Structure (ACPI 2.0+) | |
179 | */ | |
180 | typedef struct acpi_generic_address { | |
181 | UINT8 AddressSpaceId; /* Address space where struct or register exists */ | |
182 | UINT8 RegisterBitWidth; /* Size in bits of given register */ | |
183 | UINT8 RegisterBitOffset; /* Bit offset within the register */ | |
184 | UINT8 AccessWidth; /* Minimum Access size (ACPI 3.0) */ | |
185 | UINT64 Address; /* 64-bit address of struct or register */ | |
186 | } ACPI_GENERIC_ADDRESS; | |
187 | ||
188 | ||
189 | /******************************************************************************* | |
190 | * | |
191 | * RSDP - Root System Description Pointer (Signature is "RSD PTR ") | |
192 | * | |
193 | ******************************************************************************/ | |
194 | ||
195 | typedef struct rsdp_descriptor { | |
196 | char Signature[8]; /* ACPI signature, contains "RSD PTR " */ | |
197 | UINT8 Checksum; /* ACPI 1.0 checksum */ | |
198 | char OemId[6]; /* OEM identification */ | |
199 | UINT8 Revision; /* Must be (0) for ACPI 1.0 or (2) for ACPI 2.0+ */ | |
200 | UINT32 RsdtPhysicalAddress;/* 32-bit physical address of the RSDT */ | |
201 | UINT32 Length; /* Table length in bytes, including header (ACPI 2.0+) */ | |
202 | UINT64 XsdtPhysicalAddress;/* 64-bit physical address of the XSDT (ACPI 2.0+) */ | |
203 | UINT8 ExtendedChecksum; /* Checksum of entire table (ACPI 2.0+) */ | |
204 | UINT8 Reserved[3]; /* Reserved, must be zero */ | |
205 | } RSDP_DESCRIPTOR; | |
206 | ||
207 | #define ACPI_RSDP_REV0_SIZE 20 /* Size of original ACPI 1.0 RSDP */ | |
208 | ||
209 | ||
210 | /******************************************************************************* | |
211 | * | |
212 | * RSDT/XSDT - Root System Description Tables | |
213 | * | |
214 | ******************************************************************************/ | |
215 | ||
216 | typedef struct rsdt_descriptor { | |
217 | ACPI_TABLE_HEADER_DEF | |
218 | UINT32 TableOffsetEntry[1];/* Array of pointers to ACPI tables */ | |
219 | } RSDT_DESCRIPTOR; | |
220 | ||
221 | typedef struct xsdt_descriptor { | |
222 | ACPI_TABLE_HEADER_DEF | |
223 | UINT64 TableOffsetEntry[1];/* Array of pointers to ACPI tables */ | |
224 | } XSDT_DESCRIPTOR; | |
225 | ||
226 | ||
227 | /******************************************************************************* | |
228 | * | |
229 | * FACS - Firmware ACPI Control Structure (FACS) | |
230 | * | |
231 | ******************************************************************************/ | |
232 | ||
233 | typedef struct facs_descriptor { | |
234 | char Signature[4]; /* ASCII table signature */ | |
235 | UINT32 Length; /* Length of structure, in bytes */ | |
236 | UINT32 HardwareSignature; /* Hardware configuration signature */ | |
237 | UINT32 FirmwareWakingVector;/* 32-bit physical address of the Firmware Waking Vector */ | |
238 | UINT32 GlobalLock; /* Global Lock for shared hardware resources */ | |
239 | ||
240 | /* Flags (32 bits) */ | |
241 | ||
242 | UINT8 S4Bios_f : 1;/* 00: S4BIOS support is present */ | |
243 | UINT8 : 7;/* 01-07: Reserved, must be zero */ | |
244 | UINT8 Reserved1[3]; /* 08-31: Reserved, must be zero */ | |
245 | ||
246 | UINT64 XFirmwareWakingVector;/* 64-bit version of the Firmware Waking Vector (ACPI 2.0+) */ | |
247 | UINT8 Version; /* Version of this table (ACPI 2.0+) */ | |
248 | UINT8 Reserved[31]; /* Reserved, must be zero */ | |
249 | } FACS_DESCRIPTOR; | |
250 | ||
251 | #define ACPI_GLOCK_PENDING 0x01 /* 00: Pending global lock ownership */ | |
252 | #define ACPI_GLOCK_OWNED 0x02 /* 01: Global lock is owned */ | |
253 | ||
254 | ||
255 | /* | |
256 | * Common FACS - This is a version-independent FACS structure used for internal use only | |
257 | */ | |
258 | typedef struct acpi_common_facs { | |
259 | UINT32 *GlobalLock; | |
260 | UINT64 *FirmwareWakingVector; | |
261 | UINT8 VectorWidth; | |
262 | } ACPI_COMMON_FACS; | |
263 | ||
264 | ||
265 | /******************************************************************************* | |
266 | * | |
267 | * FADT - Fixed ACPI Description Table (Signature "FACP") | |
268 | * | |
269 | ******************************************************************************/ | |
270 | ||
271 | /* Fields common to all versions of the FADT */ | |
272 | ||
273 | #define ACPI_FADT_COMMON \ | |
274 | ACPI_TABLE_HEADER_DEF \ | |
275 | UINT32 V1_FirmwareCtrl; /* 32-bit physical address of FACS */ \ | |
276 | UINT32 V1_Dsdt; /* 32-bit physical address of DSDT */ \ | |
277 | UINT8 Reserved1; /* System Interrupt Model isn't used in ACPI 2.0*/ \ | |
278 | UINT8 Prefer_PM_Profile; /* Conveys preferred power management profile to OSPM. */ \ | |
279 | UINT16 SciInt; /* System vector of SCI interrupt */ \ | |
280 | UINT32 SmiCmd; /* Port address of SMI command port */ \ | |
281 | UINT8 AcpiEnable; /* Value to write to smi_cmd to enable ACPI */ \ | |
282 | UINT8 AcpiDisable; /* Value to write to smi_cmd to disable ACPI */ \ | |
283 | UINT8 S4BiosReq; /* Value to write to SMI CMD to enter S4BIOS state */ \ | |
284 | UINT8 PstateCnt; /* Processor performance state control*/ \ | |
285 | UINT32 V1_Pm1aEvtBlk; /* Port address of Power Mgt 1a Event Reg Blk */ \ | |
286 | UINT32 V1_Pm1bEvtBlk; /* Port address of Power Mgt 1b Event Reg Blk */ \ | |
287 | UINT32 V1_Pm1aCntBlk; /* Port address of Power Mgt 1a Control Reg Blk */ \ | |
288 | UINT32 V1_Pm1bCntBlk; /* Port address of Power Mgt 1b Control Reg Blk */ \ | |
289 | UINT32 V1_Pm2CntBlk; /* Port address of Power Mgt 2 Control Reg Blk */ \ | |
290 | UINT32 V1_PmTmrBlk; /* Port address of Power Mgt Timer Ctrl Reg Blk */ \ | |
291 | UINT32 V1_Gpe0Blk; /* Port addr of General Purpose AcpiEvent 0 Reg Blk */ \ | |
292 | UINT32 V1_Gpe1Blk; /* Port addr of General Purpose AcpiEvent 1 Reg Blk */ \ | |
293 | UINT8 Pm1EvtLen; /* Byte Length of ports at pm1X_evt_blk */ \ | |
294 | UINT8 Pm1CntLen; /* Byte Length of ports at pm1X_cnt_blk */ \ | |
295 | UINT8 Pm2CntLen; /* Byte Length of ports at pm2_cnt_blk */ \ | |
296 | UINT8 PmTmLen; /* Byte Length of ports at pm_tm_blk */ \ | |
297 | UINT8 Gpe0BlkLen; /* Byte Length of ports at gpe0_blk */ \ | |
298 | UINT8 Gpe1BlkLen; /* Byte Length of ports at gpe1_blk */ \ | |
299 | UINT8 Gpe1Base; /* Offset in gpe model where gpe1 events start */ \ | |
300 | UINT8 CstCnt; /* Support for the _CST object and C States change notification.*/ \ | |
301 | UINT16 Plvl2Lat; /* Worst case HW latency to enter/exit C2 state */ \ | |
302 | UINT16 Plvl3Lat; /* Worst case HW latency to enter/exit C3 state */ \ | |
303 | UINT16 FlushSize; /* Processor's memory cache line width, in bytes */ \ | |
304 | UINT16 FlushStride; /* Number of flush strides that need to be read */ \ | |
305 | UINT8 DutyOffset; /* Processor's duty cycle index in processor's P_CNT reg*/ \ | |
306 | UINT8 DutyWidth; /* Processor's duty cycle value bit width in P_CNT register.*/ \ | |
307 | UINT8 DayAlrm; /* Index to day-of-month alarm in RTC CMOS RAM */ \ | |
308 | UINT8 MonAlrm; /* Index to month-of-year alarm in RTC CMOS RAM */ \ | |
309 | UINT8 Century; /* Index to century in RTC CMOS RAM */ \ | |
310 | UINT16 IapcBootArch; /* IA-PC Boot Architecture Flags. See Table 5-10 for description*/ \ | |
311 | UINT8 Reserved2; /* Reserved, must be zero */ | |
312 | ||
313 | ||
314 | /* | |
315 | * ACPI 2.0+ FADT | |
316 | */ | |
317 | typedef struct fadt_descriptor { | |
318 | ACPI_FADT_COMMON | |
319 | ||
320 | /* Flags (32 bits) */ | |
321 | ||
322 | UINT8 WbInvd : 1;/* 00: The wbinvd instruction works properly */ | |
323 | UINT8 WbInvdFlush : 1;/* 01: The wbinvd flushes but does not invalidate */ | |
324 | UINT8 ProcC1 : 1;/* 02: All processors support C1 state */ | |
325 | UINT8 Plvl2Up : 1;/* 03: C2 state works on MP system */ | |
326 | UINT8 PwrButton : 1;/* 04: Power button is handled as a generic feature */ | |
327 | UINT8 SleepButton : 1;/* 05: Sleep button is handled as a generic feature, or not present */ | |
328 | UINT8 FixedRTC : 1;/* 06: RTC wakeup stat not in fixed register space */ | |
329 | UINT8 Rtcs4 : 1;/* 07: RTC wakeup stat not possible from S4 */ | |
330 | UINT8 TmrValExt : 1;/* 08: tmr_val is 32 bits 0=24-bits */ | |
331 | UINT8 DockCap : 1;/* 09: Docking supported */ | |
332 | UINT8 ResetRegSup : 1;/* 10: System reset via the FADT RESET_REG supported */ | |
333 | UINT8 SealedCase : 1;/* 11: No internal expansion capabilities and case is sealed */ | |
334 | UINT8 Headless : 1;/* 12: No local video capabilities or local input devices */ | |
335 | UINT8 CpuSwSleep : 1;/* 13: Must execute native instruction after writing SLP_TYPx register */ | |
336 | ||
337 | UINT8 PciExpWak : 1;/* 14: System supports PCIEXP_WAKE (STS/EN) bits (ACPI 3.0) */ | |
338 | UINT8 UsePlatformClock : 1;/* 15: OSPM should use platform-provided timer (ACPI 3.0) */ | |
339 | UINT8 S4RtcStsValid : 1;/* 16: Contents of RTC_STS valid after S4 wake (ACPI 3.0) */ | |
340 | UINT8 RemotePowerOnCapable : 1;/* 17: System is compatible with remote power on (ACPI 3.0) */ | |
341 | UINT8 ForceApicClusterModel : 1;/* 18: All local APICs must use cluster model (ACPI 3.0) */ | |
342 | UINT8 ForceApicPhysicalDestinationMode : 1;/* 19: All local xAPICs must use physical dest mode (ACPI 3.0) */ | |
343 | UINT8 : 4;/* 20-23: Reserved, must be zero */ | |
344 | UINT8 Reserved3; /* 24-31: Reserved, must be zero */ | |
345 | ||
346 | ACPI_GENERIC_ADDRESS ResetRegister; /* Reset register address in GAS format */ | |
347 | UINT8 ResetValue; /* Value to write to the ResetRegister port to reset the system */ | |
348 | UINT8 Reserved4[3]; /* These three bytes must be zero */ | |
349 | UINT64 XFirmwareCtrl; /* 64-bit physical address of FACS */ | |
350 | UINT64 XDsdt; /* 64-bit physical address of DSDT */ | |
351 | ACPI_GENERIC_ADDRESS XPm1aEvtBlk; /* Extended Power Mgt 1a AcpiEvent Reg Blk address */ | |
352 | ACPI_GENERIC_ADDRESS XPm1bEvtBlk; /* Extended Power Mgt 1b AcpiEvent Reg Blk address */ | |
353 | ACPI_GENERIC_ADDRESS XPm1aCntBlk; /* Extended Power Mgt 1a Control Reg Blk address */ | |
354 | ACPI_GENERIC_ADDRESS XPm1bCntBlk; /* Extended Power Mgt 1b Control Reg Blk address */ | |
355 | ACPI_GENERIC_ADDRESS XPm2CntBlk; /* Extended Power Mgt 2 Control Reg Blk address */ | |
356 | ACPI_GENERIC_ADDRESS XPmTmrBlk; /* Extended Power Mgt Timer Ctrl Reg Blk address */ | |
357 | ACPI_GENERIC_ADDRESS XGpe0Blk; /* Extended General Purpose AcpiEvent 0 Reg Blk address */ | |
358 | ACPI_GENERIC_ADDRESS XGpe1Blk; /* Extended General Purpose AcpiEvent 1 Reg Blk address */ | |
359 | } FADT_DESCRIPTOR; | |
360 | ||
361 | ||
362 | /* | |
363 | * "Down-revved" ACPI 2.0 FADT descriptor | |
364 | * Defined here to allow compiler to generate the length of the struct | |
365 | */ | |
366 | typedef struct fadt_descriptor_rev2_minus { | |
367 | ACPI_FADT_COMMON | |
368 | UINT32 Flags; | |
369 | ACPI_GENERIC_ADDRESS ResetRegister; /* Reset register address in GAS format */ | |
370 | UINT8 ResetValue; /* Value to write to the ResetRegister port to reset the system. */ | |
371 | UINT8 Reserved7[3]; /* Reserved, must be zero */ | |
372 | } FADT_DESCRIPTOR_REV2_MINUS; | |
373 | ||
374 | ||
375 | /* | |
376 | * ACPI 1.0 FADT | |
377 | * Defined here to allow compiler to generate the length of the struct | |
378 | */ | |
379 | typedef struct fadt_descriptor_rev1 { | |
380 | ACPI_FADT_COMMON | |
381 | UINT32 Flags; | |
382 | } FADT_DESCRIPTOR_REV1; | |
383 | ||
384 | ||
385 | /* FADT: Prefered Power Management Profiles */ | |
386 | ||
387 | #define PM_UNSPECIFIED 0 | |
388 | #define PM_DESKTOP 1 | |
389 | #define PM_MOBILE 2 | |
390 | #define PM_WORKSTATION 3 | |
391 | #define PM_ENTERPRISE_SERVER 4 | |
392 | #define PM_SOHO_SERVER 5 | |
393 | #define PM_APPLIANCE_PC 6 | |
394 | ||
395 | /* FADT: Boot Arch Flags */ | |
396 | ||
397 | #define BAF_LEGACY_DEVICES 0x0001 | |
398 | #define BAF_8042_KEYBOARD_CONTROLLER 0x0002 | |
399 | ||
400 | #define FADT2_REVISION_ID 3 | |
401 | #define FADT2_MINUS_REVISION_ID 2 | |
402 | ||
403 | ||
404 | /* Reset to default packing */ | |
405 | ||
406 | #pragma pack() | |
407 | ||
408 | /* | |
409 | * This macro is temporary until the table bitfield flag definitions | |
410 | * are removed and replaced by a Flags field. | |
411 | */ | |
412 | #define ACPI_FLAG_OFFSET(d, f, o) (UINT8) (ACPI_OFFSET (d,f) +\ | |
413 | sizeof(((d *)0)->f) + o) | |
414 | /* | |
415 | * Get the remaining ACPI tables | |
416 | */ | |
417 | #include "Acpi_v1.h" | |
418 | ||
419 | /* | |
420 | * ACPI Table information. We save the table address, length, | |
421 | * and type of memory allocation (mapped or allocated) for each | |
422 | * table for 1) when we exit, and 2) if a new table is installed | |
423 | */ | |
424 | #define ACPI_MEM_NOT_ALLOCATED 0 | |
425 | #define ACPI_MEM_ALLOCATED 1 | |
426 | #define ACPI_MEM_MAPPED 2 | |
427 | ||
428 | /* Definitions for the Flags bitfield member of ACPI_TABLE_SUPPORT */ | |
429 | ||
430 | #define ACPI_TABLE_SINGLE 0x00 | |
431 | #define ACPI_TABLE_MULTIPLE 0x01 | |
432 | #define ACPI_TABLE_EXECUTABLE 0x02 | |
433 | ||
434 | #define ACPI_TABLE_ROOT 0x00 | |
435 | #define ACPI_TABLE_PRIMARY 0x10 | |
436 | #define ACPI_TABLE_SECONDARY 0x20 | |
437 | #define ACPI_TABLE_ALL 0x30 | |
438 | #define ACPI_TABLE_TYPE_MASK 0x30 | |
439 | ||
440 | /* Data about each known table type */ | |
441 | ||
442 | typedef struct acpi_table_support { | |
443 | char *Name; | |
444 | char *Signature; | |
445 | void **GlobalPtr; | |
446 | UINT8 SigLength; | |
447 | UINT8 Flags; | |
448 | } ACPI_TABLE_SUPPORT; | |
449 | ||
450 | ||
451 | /* Macros used to generate offsets to specific table fields */ | |
452 | ||
453 | #define ACPI_FACS_OFFSET(f) (UINT8) ACPI_OFFSET (FACS_DESCRIPTOR,f) | |
454 | #define ACPI_FADT_OFFSET(f) (UINT8) ACPI_OFFSET (FADT_DESCRIPTOR, f) | |
455 | #define ACPI_GAS_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_GENERIC_ADDRESS,f) | |
456 | #define ACPI_HDR_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_HEADER,f) | |
457 | #define ACPI_RSDP_OFFSET(f) (UINT8) ACPI_OFFSET (RSDP_DESCRIPTOR,f) | |
458 | ||
459 | #define ACPI_FADT_FLAG_OFFSET(f, o) ACPI_FLAG_OFFSET (FADT_DESCRIPTOR,f,o) | |
460 | #define ACPI_FACS_FLAG_OFFSET(f, o) ACPI_FLAG_OFFSET (FACS_DESCRIPTOR,f,o) | |
461 | ||
462 | #endif /* __ACTBL_H__ */ |