xref: /haiku/src/add-ons/kernel/bus_managers/acpi/acpica/include/actbl3.h (revision 4fd62caa9acc437534c41bbb7d3fc9d53e915005)
1 /******************************************************************************
2  *
3  * Name: actbl3.h - ACPI Table Definitions
4  *
5  *****************************************************************************/
6 
7 /******************************************************************************
8  *
9  * 1. Copyright Notice
10  *
11  * Some or all of this work - Copyright (c) 1999 - 2012, Intel Corp.
12  * All rights reserved.
13  *
14  * 2. License
15  *
16  * 2.1. This is your license from Intel Corp. under its intellectual property
17  * rights.  You may have additional license terms from the party that provided
18  * you this software, covering your right to use that party's intellectual
19  * property rights.
20  *
21  * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
22  * copy of the source code appearing in this file ("Covered Code") an
23  * irrevocable, perpetual, worldwide license under Intel's copyrights in the
24  * base code distributed originally by Intel ("Original Intel Code") to copy,
25  * make derivatives, distribute, use and display any portion of the Covered
26  * Code in any form, with the right to sublicense such rights; and
27  *
28  * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
29  * license (with the right to sublicense), under only those claims of Intel
30  * patents that are infringed by the Original Intel Code, to make, use, sell,
31  * offer to sell, and import the Covered Code and derivative works thereof
32  * solely to the minimum extent necessary to exercise the above copyright
33  * license, and in no event shall the patent license extend to any additions
34  * to or modifications of the Original Intel Code.  No other license or right
35  * is granted directly or by implication, estoppel or otherwise;
36  *
37  * The above copyright and patent license is granted only if the following
38  * conditions are met:
39  *
40  * 3. Conditions
41  *
42  * 3.1. Redistribution of Source with Rights to Further Distribute Source.
43  * Redistribution of source code of any substantial portion of the Covered
44  * Code or modification with rights to further distribute source must include
45  * the above Copyright Notice, the above License, this list of Conditions,
46  * and the following Disclaimer and Export Compliance provision.  In addition,
47  * Licensee must cause all Covered Code to which Licensee contributes to
48  * contain a file documenting the changes Licensee made to create that Covered
49  * Code and the date of any change.  Licensee must include in that file the
50  * documentation of any changes made by any predecessor Licensee.  Licensee
51  * must include a prominent statement that the modification is derived,
52  * directly or indirectly, from Original Intel Code.
53  *
54  * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
55  * Redistribution of source code of any substantial portion of the Covered
56  * Code or modification without rights to further distribute source must
57  * include the following Disclaimer and Export Compliance provision in the
58  * documentation and/or other materials provided with distribution.  In
59  * addition, Licensee may not authorize further sublicense of source of any
60  * portion of the Covered Code, and must include terms to the effect that the
61  * license from Licensee to its licensee is limited to the intellectual
62  * property embodied in the software Licensee provides to its licensee, and
63  * not to intellectual property embodied in modifications its licensee may
64  * make.
65  *
66  * 3.3. Redistribution of Executable. Redistribution in executable form of any
67  * substantial portion of the Covered Code or modification must reproduce the
68  * above Copyright Notice, and the following Disclaimer and Export Compliance
69  * provision in the documentation and/or other materials provided with the
70  * distribution.
71  *
72  * 3.4. Intel retains all right, title, and interest in and to the Original
73  * Intel Code.
74  *
75  * 3.5. Neither the name Intel nor any other trademark owned or controlled by
76  * Intel shall be used in advertising or otherwise to promote the sale, use or
77  * other dealings in products derived from or relating to the Covered Code
78  * without prior written authorization from Intel.
79  *
80  * 4. Disclaimer and Export Compliance
81  *
82  * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
83  * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
84  * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
85  * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
86  * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
87  * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
88  * PARTICULAR PURPOSE.
89  *
90  * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
91  * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
92  * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
93  * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
94  * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
95  * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
96  * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
97  * LIMITED REMEDY.
98  *
99  * 4.3. Licensee shall not export, either directly or indirectly, any of this
100  * software or system incorporating such software without first obtaining any
101  * required license or other approval from the U. S. Department of Commerce or
102  * any other agency or department of the United States Government.  In the
103  * event Licensee exports any such software from the United States or
104  * re-exports any such software from a foreign destination, Licensee shall
105  * ensure that the distribution and export/re-export of the software is in
106  * compliance with all laws, regulations, orders, or other restrictions of the
107  * U.S. Export Administration Regulations. Licensee agrees that neither it nor
108  * any of its subsidiaries will export/re-export any technical data, process,
109  * software, or service, directly or indirectly, to any country for which the
110  * United States government or any agency thereof requires an export license,
111  * other governmental approval, or letter of assurance, without first obtaining
112  * such license, approval or letter.
113  *
114  *****************************************************************************/
115 
116 #ifndef __ACTBL3_H__
117 #define __ACTBL3_H__
118 
119 
120 /*******************************************************************************
121  *
122  * Additional ACPI Tables (3)
123  *
124  * These tables are not consumed directly by the ACPICA subsystem, but are
125  * included here to support device drivers and the AML disassembler.
126  *
127  * The tables in this file are fully defined within the ACPI specification.
128  *
129  ******************************************************************************/
130 
131 
132 /*
133  * Values for description table header signatures for tables defined in this
134  * file. Useful because they make it more difficult to inadvertently type in
135  * the wrong signature.
136  */
137 #define ACPI_SIG_BGRT           "BGRT"      /* Boot Graphics Resource Table */
138 #define ACPI_SIG_DRTM           "DRTM"      /* Dynamic Root of Trust for Measurement table */
139 #define ACPI_SIG_FPDT           "FPDT"      /* Firmware Performance Data Table */
140 #define ACPI_SIG_GTDT           "GTDT"      /* Generic Timer Description Table */
141 #define ACPI_SIG_MPST           "MPST"      /* Memory Power State Table */
142 #define ACPI_SIG_PCCT           "PCCT"      /* Platform Communications Channel Table */
143 #define ACPI_SIG_PMTT           "PMTT"      /* Platform Memory Topology Table */
144 #define ACPI_SIG_RASF           "RASF"      /* RAS Feature table */
145 
146 #define ACPI_SIG_S3PT           "S3PT"      /* S3 Performance (sub)Table */
147 #define ACPI_SIG_PCCS           "PCC"       /* PCC Shared Memory Region */
148 
149 /* Reserved table signatures */
150 
151 #define ACPI_SIG_CSRT           "CSRT"      /* Core System Resources Table */
152 #define ACPI_SIG_DBG2           "DBG2"      /* Debug Port table 2 */
153 #define ACPI_SIG_MATR           "MATR"      /* Memory Address Translation Table */
154 #define ACPI_SIG_MSDM           "MSDM"      /* Microsoft Data Management Table */
155 #define ACPI_SIG_WPBT           "WPBT"      /* Windows Platform Binary Table */
156 
157 /*
158  * All tables must be byte-packed to match the ACPI specification, since
159  * the tables are provided by the system BIOS.
160  */
161 #pragma pack(1)
162 
163 /*
164  * Note about bitfields: The UINT8 type is used for bitfields in ACPI tables.
165  * This is the only type that is even remotely portable. Anything else is not
166  * portable, so do not use any other bitfield types.
167  */
168 
169 
170 /*******************************************************************************
171  *
172  * BGRT - Boot Graphics Resource Table (ACPI 5.0)
173  *        Version 1
174  *
175  ******************************************************************************/
176 
177 typedef struct acpi_table_bgrt
178 {
179     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
180     UINT16                  Version;
181     UINT8                   Status;
182     UINT8                   ImageType;
183     UINT64                  ImageAddress;
184     UINT32                  ImageOffsetX;
185     UINT32                  ImageOffsetY;
186 
187 } ACPI_TABLE_BGRT;
188 
189 
190 /*******************************************************************************
191  *
192  * DRTM - Dynamic Root of Trust for Measurement table
193  *
194  ******************************************************************************/
195 
196 typedef struct acpi_table_drtm
197 {
198     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
199     UINT64                  EntryBaseAddress;
200     UINT64                  EntryLength;
201     UINT32                  EntryAddress32;
202     UINT64                  EntryAddress64;
203     UINT64                  ExitAddress;
204     UINT64                  LogAreaAddress;
205     UINT32                  LogAreaLength;
206     UINT64                  ArchDependentAddress;
207     UINT32                  Flags;
208 
209 } ACPI_TABLE_DRTM;
210 
211 /* 1) Validated Tables List */
212 
213 typedef struct acpi_drtm_vtl_list
214 {
215     UINT32                  ValidatedTableListCount;
216 
217 } ACPI_DRTM_VTL_LIST;
218 
219 /* 2) Resources List */
220 
221 typedef struct acpi_drtm_resource_list
222 {
223     UINT32                  ResourceListCount;
224 
225 } ACPI_DRTM_RESOURCE_LIST;
226 
227 /* 3) Platform-specific Identifiers List */
228 
229 typedef struct acpi_drtm_id_list
230 {
231     UINT32                  IdListCount;
232 
233 } ACPI_DRTM_ID_LIST;
234 
235 
236 /*******************************************************************************
237  *
238  * FPDT - Firmware Performance Data Table (ACPI 5.0)
239  *        Version 1
240  *
241  ******************************************************************************/
242 
243 typedef struct acpi_table_fpdt
244 {
245     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
246 
247 } ACPI_TABLE_FPDT;
248 
249 
250 /* FPDT subtable header */
251 
252 typedef struct acpi_fpdt_header
253 {
254     UINT16                  Type;
255     UINT8                   Length;
256     UINT8                   Revision;
257 
258 } ACPI_FPDT_HEADER;
259 
260 /* Values for Type field above */
261 
262 enum AcpiFpdtType
263 {
264     ACPI_FPDT_TYPE_BOOT                 = 0,
265     ACPI_FPDT_TYPE_S3PERF               = 1,
266 };
267 
268 
269 /*
270  * FPDT subtables
271  */
272 
273 /* 0: Firmware Basic Boot Performance Record */
274 
275 typedef struct acpi_fpdt_boot
276 {
277     ACPI_FPDT_HEADER        Header;
278     UINT8                   Reserved[4];
279     UINT64                  ResetEnd;
280     UINT64                  LoadStart;
281     UINT64                  StartupStart;
282     UINT64                  ExitServicesEntry;
283     UINT64                  ExitServicesExit;
284 
285 } ACPI_FPDT_BOOT;
286 
287 
288 /* 1: S3 Performance Table Pointer Record */
289 
290 typedef struct acpi_fpdt_s3pt_ptr
291 {
292     ACPI_FPDT_HEADER        Header;
293     UINT8                   Reserved[4];
294     UINT64                  Address;
295 
296 } ACPI_FPDT_S3PT_PTR;
297 
298 
299 /*
300  * S3PT - S3 Performance Table. This table is pointed to by the
301  * FPDT S3 Pointer Record above.
302  */
303 typedef struct acpi_table_s3pt
304 {
305     UINT8                   Signature[4]; /* "S3PT" */
306     UINT32                  Length;
307 
308 } ACPI_TABLE_S3PT;
309 
310 
311 /*
312  * S3PT Subtables
313  */
314 typedef struct acpi_s3pt_header
315 {
316     UINT16                  Type;
317     UINT8                   Length;
318     UINT8                   Revision;
319 
320 } ACPI_S3PT_HEADER;
321 
322 /* Values for Type field above */
323 
324 enum AcpiS3ptType
325 {
326     ACPI_S3PT_TYPE_RESUME               = 0,
327     ACPI_S3PT_TYPE_SUSPEND              = 1,
328 };
329 
330 typedef struct acpi_s3pt_resume
331 {
332     ACPI_S3PT_HEADER        Header;
333     UINT32                  ResumeCount;
334     UINT64                  FullResume;
335     UINT64                  AverageResume;
336 
337 } ACPI_S3PT_RESUME;
338 
339 typedef struct acpi_s3pt_suspend
340 {
341     ACPI_S3PT_HEADER        Header;
342     UINT64                  SuspendStart;
343     UINT64                  SuspendEnd;
344 
345 } ACPI_S3PT_SUSPEND;
346 
347 
348 /*******************************************************************************
349  *
350  * GTDT - Generic Timer Description Table (ACPI 5.0)
351  *        Version 1
352  *
353  ******************************************************************************/
354 
355 typedef struct acpi_table_gtdt
356 {
357     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
358     UINT64                  Address;
359     UINT32                  Flags;
360     UINT32                  SecurePl1Interrupt;
361     UINT32                  SecurePl1Flags;
362     UINT32                  NonSecurePl1Interrupt;
363     UINT32                  NonSecurePl1Flags;
364     UINT32                  VirtualTimerInterrupt;
365     UINT32                  VirtualTimerFlags;
366     UINT32                  NonSecurePl2Interrupt;
367     UINT32                  NonSecurePl2Flags;
368 
369 } ACPI_TABLE_GTDT;
370 
371 /* Values for Flags field above */
372 
373 #define ACPI_GTDT_MAPPED_BLOCK_PRESENT      1
374 
375 /* Values for all "TimerFlags" fields above */
376 
377 #define ACPI_GTDT_INTERRUPT_MODE            1
378 #define ACPI_GTDT_INTERRUPT_POLARITY        2
379 
380 
381 /*******************************************************************************
382  *
383  * MPST - Memory Power State Table (ACPI 5.0)
384  *        Version 1
385  *
386  ******************************************************************************/
387 
388 #define ACPI_MPST_CHANNEL_INFO \
389     UINT16                  Reserved1; \
390     UINT8                   ChannelId; \
391     UINT8                   Reserved2; \
392     UINT16                  PowerNodeCount;
393 
394 /* Main table */
395 
396 typedef struct acpi_table_mpst
397 {
398     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
399     ACPI_MPST_CHANNEL_INFO                      /* Platform Communication Channel */
400 
401 } ACPI_TABLE_MPST;
402 
403 
404 /* Memory Platform Communication Channel Info */
405 
406 typedef struct acpi_mpst_channel
407 {
408     ACPI_MPST_CHANNEL_INFO                      /* Platform Communication Channel */
409 
410 } ACPI_MPST_CHANNEL;
411 
412 
413 /* Memory Power Node Structure */
414 
415 typedef struct acpi_mpst_power_node
416 {
417     UINT8                   Flags;
418     UINT8                   Reserved1;
419     UINT16                  NodeId;
420     UINT32                  Length;
421     UINT64                  RangeAddress;
422     UINT64                  RangeLength;
423     UINT8                   NumPowerStates;
424     UINT8                   NumPhysicalComponents;
425     UINT16                  Reserved2;
426 
427 } ACPI_MPST_POWER_NODE;
428 
429 /* Values for Flags field above */
430 
431 #define ACPI_MPST_ENABLED               1
432 #define ACPI_MPST_POWER_MANAGED         2
433 #define ACPI_MPST_HOT_PLUG_CAPABLE      4
434 
435 
436 /* Memory Power State Structure (follows POWER_NODE above) */
437 
438 typedef struct acpi_mpst_power_state
439 {
440     UINT8                   PowerState;
441     UINT8                   InfoIndex;
442 
443 } ACPI_MPST_POWER_STATE;
444 
445 
446 /* Physical Component ID Structure (follows POWER_STATE above) */
447 
448 typedef struct acpi_mpst_component
449 {
450     UINT16                  ComponentId;
451 
452 } ACPI_MPST_COMPONENT;
453 
454 
455 /* Memory Power State Characteristics Structure (follows all POWER_NODEs) */
456 
457 typedef struct acpi_mpst_data_hdr
458 {
459     UINT16                  CharacteristicsCount;
460 
461 } ACPI_MPST_DATA_HDR;
462 
463 typedef struct acpi_mpst_power_data
464 {
465     UINT8                   Revision;
466     UINT8                   Flags;
467     UINT16                  Reserved1;
468     UINT32                  AveragePower;
469     UINT32                  PowerSaving;
470     UINT64                  ExitLatency;
471     UINT64                  Reserved2;
472 
473 } ACPI_MPST_POWER_DATA;
474 
475 /* Values for Flags field above */
476 
477 #define ACPI_MPST_PRESERVE              1
478 #define ACPI_MPST_AUTOENTRY             2
479 #define ACPI_MPST_AUTOEXIT              4
480 
481 
482 /* Shared Memory Region (not part of an ACPI table) */
483 
484 typedef struct acpi_mpst_shared
485 {
486     UINT32                  Signature;
487     UINT16                  PccCommand;
488     UINT16                  PccStatus;
489     UINT16                  CommandRegister;
490     UINT16                  StatusRegister;
491     UINT16                  PowerStateId;
492     UINT16                  PowerNodeId;
493     UINT64                  EnergyConsumed;
494     UINT64                  AveragePower;
495 
496 } ACPI_MPST_SHARED;
497 
498 
499 /*******************************************************************************
500  *
501  * PCCT - Platform Communications Channel Table (ACPI 5.0)
502  *        Version 1
503  *
504  ******************************************************************************/
505 
506 typedef struct acpi_table_pcct
507 {
508     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
509     UINT32                  Flags;
510     UINT32                  Latency;
511     UINT32                  Reserved;
512 
513 } ACPI_TABLE_PCCT;
514 
515 /* Values for Flags field above */
516 
517 #define ACPI_PCCT_DOORBELL              1
518 
519 /*
520  * PCCT subtables
521  */
522 
523 /* 0: Generic Communications Subspace */
524 
525 typedef struct acpi_pcct_subspace
526 {
527     ACPI_SUBTABLE_HEADER    Header;
528     UINT8                   Reserved[6];
529     UINT64                  BaseAddress;
530     UINT64                  Length;
531     ACPI_GENERIC_ADDRESS    DoorbellRegister;
532     UINT64                  PreserveMask;
533     UINT64                  WriteMask;
534 
535 } ACPI_PCCT_SUBSPACE;
536 
537 
538 /*
539  * PCC memory structures (not part of the ACPI table)
540  */
541 
542 /* Shared Memory Region */
543 
544 typedef struct acpi_pcct_shared_memory
545 {
546     UINT32                  Signature;
547     UINT16                  Command;
548     UINT16                  Status;
549 
550 } ACPI_PCCT_SHARED_MEMORY;
551 
552 
553 /*******************************************************************************
554  *
555  * PMTT - Platform Memory Topology Table (ACPI 5.0)
556  *        Version 1
557  *
558  ******************************************************************************/
559 
560 typedef struct acpi_table_pmtt
561 {
562     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
563     UINT32                  Reserved;
564 
565 } ACPI_TABLE_PMTT;
566 
567 
568 /* Common header for PMTT subtables that follow main table */
569 
570 typedef struct acpi_pmtt_header
571 {
572     UINT8                   Type;
573     UINT8                   Reserved1;
574     UINT16                  Length;
575     UINT16                  Flags;
576     UINT16                  Reserved2;
577 
578 } ACPI_PMTT_HEADER;
579 
580 /* Values for Type field above */
581 
582 #define ACPI_PMTT_TYPE_SOCKET           0
583 #define ACPI_PMTT_TYPE_CONTROLLER       1
584 #define ACPI_PMTT_TYPE_DIMM             2
585 #define ACPI_PMTT_TYPE_RESERVED         3 /* 0x03-0xFF are reserved */
586 
587 /* Values for Flags field above */
588 
589 #define ACPI_PMTT_TOP_LEVEL             0x0001
590 #define ACPI_PMTT_PHYSICAL              0x0002
591 #define ACPI_PMTT_MEMORY_TYPE           0x000C
592 
593 
594 /*
595  * PMTT subtables, correspond to Type in acpi_pmtt_header
596  */
597 
598 
599 /* 0: Socket Structure */
600 
601 typedef struct acpi_pmtt_socket
602 {
603     ACPI_PMTT_HEADER        Header;
604     UINT16                  SocketId;
605     UINT16                  Reserved;
606 
607 } ACPI_PMTT_SOCKET;
608 
609 
610 /* 1: Memory Controller subtable */
611 
612 typedef struct acpi_pmtt_controller
613 {
614     ACPI_PMTT_HEADER        Header;
615     UINT32                  ReadLatency;
616     UINT32                  WriteLatency;
617     UINT32                  ReadBandwidth;
618     UINT32                  WriteBandwidth;
619     UINT16                  AccessWidth;
620     UINT16                  Alignment;
621     UINT16                  Reserved;
622     UINT16                  DomainCount;
623 
624 } ACPI_PMTT_CONTROLLER;
625 
626 /* 1a: Proximity Domain substructure */
627 
628 typedef struct acpi_pmtt_domain
629 {
630     UINT32                  ProximityDomain;
631 
632 } ACPI_PMTT_DOMAIN;
633 
634 
635 /* 2: Physical Component Identifier (DIMM) */
636 
637 typedef struct acpi_pmtt_physical_component
638 {
639     ACPI_PMTT_HEADER        Header;
640     UINT16                  ComponentId;
641     UINT16                  Reserved;
642     UINT32                  MemorySize;
643     UINT32                  BiosHandle;
644 
645 } ACPI_PMTT_PHYSICAL_COMPONENT;
646 
647 
648 /*******************************************************************************
649  *
650  * RASF - RAS Feature Table (ACPI 5.0)
651  *        Version 1
652  *
653  ******************************************************************************/
654 
655 typedef struct acpi_table_rasf
656 {
657     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
658     UINT8                   ChannelId[12];
659 
660 } ACPI_TABLE_RASF;
661 
662 /* RASF Platform Communication Channel Shared Memory Region */
663 
664 typedef struct acpi_rasf_shared_memory
665 {
666     UINT32                  Signature;
667     UINT16                  Command;
668     UINT16                  Status;
669     UINT64                  RequestedAddress;
670     UINT64                  RequestedLength;
671     UINT64                  ActualAddress;
672     UINT64                  ActualLength;
673     UINT16                  Flags;
674     UINT8                   Speed;
675 
676 } ACPI_RASF_SHARED_MEMORY;
677 
678 /* Masks for Flags and Speed fields above */
679 
680 #define ACPI_RASF_SCRUBBER_RUNNING      1
681 #define ACPI_RASF_SPEED                 (7<<1)
682 
683 /* Channel Commands */
684 
685 enum AcpiRasfCommands
686 {
687     ACPI_RASF_GET_RAS_CAPABILITIES      = 1,
688     ACPI_RASF_GET_PATROL_PARAMETERS     = 2,
689     ACPI_RASF_START_PATROL_SCRUBBER     = 3,
690     ACPI_RASF_STOP_PATROL_SCRUBBER      = 4
691 };
692 
693 /* Channel Command flags */
694 
695 #define ACPI_RASF_GENERATE_SCI          (1<<15)
696 
697 /* Status values */
698 
699 enum AcpiRasfStatus
700 {
701     ACPI_RASF_SUCCESS                   = 0,
702     ACPI_RASF_NOT_VALID                 = 1,
703     ACPI_RASF_NOT_SUPPORTED             = 2,
704     ACPI_RASF_BUSY                      = 3,
705     ACPI_RASF_FAILED                    = 4,
706     ACPI_RASF_ABORTED                   = 5,
707     ACPI_RASF_INVALID_DATA              = 6
708 };
709 
710 /* Status flags */
711 
712 #define ACPI_RASF_COMMAND_COMPLETE      (1)
713 #define ACPI_RASF_SCI_DOORBELL          (1<<1)
714 #define ACPI_RASF_ERROR                 (1<<2)
715 #define ACPI_RASF_STATUS                (0x1F<<3)
716 
717 
718 /* Reset to default packing */
719 
720 #pragma pack()
721 
722 #endif /* __ACTBL3_H__ */
723