ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

actbl2.h
Go to the documentation of this file.
00001 /******************************************************************************
00002  *
00003  * Name: actbl2.h - ACPI Table Definitions (tables not in ACPI spec)
00004  *
00005  *****************************************************************************/
00006 
00007 /******************************************************************************
00008  *
00009  * 1. Copyright Notice
00010  *
00011  * Some or all of this work - Copyright (c) 1999 - 2011, Intel Corp.
00012  * All rights reserved.
00013  *
00014  * 2. License
00015  *
00016  * 2.1. This is your license from Intel Corp. under its intellectual property
00017  * rights.  You may have additional license terms from the party that provided
00018  * you this software, covering your right to use that party's intellectual
00019  * property rights.
00020  *
00021  * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
00022  * copy of the source code appearing in this file ("Covered Code") an
00023  * irrevocable, perpetual, worldwide license under Intel's copyrights in the
00024  * base code distributed originally by Intel ("Original Intel Code") to copy,
00025  * make derivatives, distribute, use and display any portion of the Covered
00026  * Code in any form, with the right to sublicense such rights; and
00027  *
00028  * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
00029  * license (with the right to sublicense), under only those claims of Intel
00030  * patents that are infringed by the Original Intel Code, to make, use, sell,
00031  * offer to sell, and import the Covered Code and derivative works thereof
00032  * solely to the minimum extent necessary to exercise the above copyright
00033  * license, and in no event shall the patent license extend to any additions
00034  * to or modifications of the Original Intel Code.  No other license or right
00035  * is granted directly or by implication, estoppel or otherwise;
00036  *
00037  * The above copyright and patent license is granted only if the following
00038  * conditions are met:
00039  *
00040  * 3. Conditions
00041  *
00042  * 3.1. Redistribution of Source with Rights to Further Distribute Source.
00043  * Redistribution of source code of any substantial portion of the Covered
00044  * Code or modification with rights to further distribute source must include
00045  * the above Copyright Notice, the above License, this list of Conditions,
00046  * and the following Disclaimer and Export Compliance provision.  In addition,
00047  * Licensee must cause all Covered Code to which Licensee contributes to
00048  * contain a file documenting the changes Licensee made to create that Covered
00049  * Code and the date of any change.  Licensee must include in that file the
00050  * documentation of any changes made by any predecessor Licensee.  Licensee
00051  * must include a prominent statement that the modification is derived,
00052  * directly or indirectly, from Original Intel Code.
00053  *
00054  * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
00055  * Redistribution of source code of any substantial portion of the Covered
00056  * Code or modification without rights to further distribute source must
00057  * include the following Disclaimer and Export Compliance provision in the
00058  * documentation and/or other materials provided with distribution.  In
00059  * addition, Licensee may not authorize further sublicense of source of any
00060  * portion of the Covered Code, and must include terms to the effect that the
00061  * license from Licensee to its licensee is limited to the intellectual
00062  * property embodied in the software Licensee provides to its licensee, and
00063  * not to intellectual property embodied in modifications its licensee may
00064  * make.
00065  *
00066  * 3.3. Redistribution of Executable. Redistribution in executable form of any
00067  * substantial portion of the Covered Code or modification must reproduce the
00068  * above Copyright Notice, and the following Disclaimer and Export Compliance
00069  * provision in the documentation and/or other materials provided with the
00070  * distribution.
00071  *
00072  * 3.4. Intel retains all right, title, and interest in and to the Original
00073  * Intel Code.
00074  *
00075  * 3.5. Neither the name Intel nor any other trademark owned or controlled by
00076  * Intel shall be used in advertising or otherwise to promote the sale, use or
00077  * other dealings in products derived from or relating to the Covered Code
00078  * without prior written authorization from Intel.
00079  *
00080  * 4. Disclaimer and Export Compliance
00081  *
00082  * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
00083  * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
00084  * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
00085  * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
00086  * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
00087  * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
00088  * PARTICULAR PURPOSE.
00089  *
00090  * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
00091  * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
00092  * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
00093  * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
00094  * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
00095  * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
00096  * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
00097  * LIMITED REMEDY.
00098  *
00099  * 4.3. Licensee shall not export, either directly or indirectly, any of this
00100  * software or system incorporating such software without first obtaining any
00101  * required license or other approval from the U. S. Department of Commerce or
00102  * any other agency or department of the United States Government.  In the
00103  * event Licensee exports any such software from the United States or
00104  * re-exports any such software from a foreign destination, Licensee shall
00105  * ensure that the distribution and export/re-export of the software is in
00106  * compliance with all laws, regulations, orders, or other restrictions of the
00107  * U.S. Export Administration Regulations. Licensee agrees that neither it nor
00108  * any of its subsidiaries will export/re-export any technical data, process,
00109  * software, or service, directly or indirectly, to any country for which the
00110  * United States government or any agency thereof requires an export license,
00111  * other governmental approval, or letter of assurance, without first obtaining
00112  * such license, approval or letter.
00113  *
00114  *****************************************************************************/
00115 
00116 #ifndef __ACTBL2_H__
00117 #define __ACTBL2_H__
00118 
00119 
00120 /*******************************************************************************
00121  *
00122  * Additional ACPI Tables (2)
00123  *
00124  * These tables are not consumed directly by the ACPICA subsystem, but are
00125  * included here to support device drivers and the AML disassembler.
00126  *
00127  * The tables in this file are defined by third-party specifications, and are
00128  * not defined directly by the ACPI specification itself.
00129  *
00130  ******************************************************************************/
00131 
00132 
00133 /*
00134  * Values for description table header signatures for tables defined in this
00135  * file. Useful because they make it more difficult to inadvertently type in
00136  * the wrong signature.
00137  */
00138 #define ACPI_SIG_ASF            "ASF!"      /* Alert Standard Format table */
00139 #define ACPI_SIG_BOOT           "BOOT"      /* Simple Boot Flag Table */
00140 #define ACPI_SIG_DBGP           "DBGP"      /* Debug Port table */
00141 #define ACPI_SIG_DMAR           "DMAR"      /* DMA Remapping table */
00142 #define ACPI_SIG_HPET           "HPET"      /* High Precision Event Timer table */
00143 #define ACPI_SIG_IBFT           "IBFT"      /* iSCSI Boot Firmware Table */
00144 #define ACPI_SIG_IVRS           "IVRS"      /* I/O Virtualization Reporting Structure */
00145 #define ACPI_SIG_MCFG           "MCFG"      /* PCI Memory Mapped Configuration table */
00146 #define ACPI_SIG_MCHI           "MCHI"      /* Management Controller Host Interface table */
00147 #define ACPI_SIG_SLIC           "SLIC"      /* Software Licensing Description Table */
00148 #define ACPI_SIG_SPCR           "SPCR"      /* Serial Port Console Redirection table */
00149 #define ACPI_SIG_SPMI           "SPMI"      /* Server Platform Management Interface table */
00150 #define ACPI_SIG_TCPA           "TCPA"      /* Trusted Computing Platform Alliance table */
00151 #define ACPI_SIG_UEFI           "UEFI"      /* Uefi Boot Optimization Table */
00152 #define ACPI_SIG_WAET           "WAET"      /* Windows ACPI Emulated devices Table */
00153 #define ACPI_SIG_WDAT           "WDAT"      /* Watchdog Action Table */
00154 #define ACPI_SIG_WDDT           "WDDT"      /* Watchdog Timer Description Table */
00155 #define ACPI_SIG_WDRT           "WDRT"      /* Watchdog Resource Table */
00156 
00157 #ifdef ACPI_UNDEFINED_TABLES
00158 /*
00159  * These tables have been seen in the field, but no definition has been found
00160  */
00161 #define ACPI_SIG_ATKG           "ATKG"
00162 #define ACPI_SIG_GSCI           "GSCI"      /* GMCH SCI table */
00163 #define ACPI_SIG_IEIT           "IEIT"
00164 #endif
00165 
00166 /*
00167  * All tables must be byte-packed to match the ACPI specification, since
00168  * the tables are provided by the system BIOS.
00169  */
00170 #pragma pack(1)
00171 
00172 /*
00173  * Note about bitfields: The UINT8 type is used for bitfields in ACPI tables.
00174  * This is the only type that is even remotely portable. Anything else is not
00175  * portable, so do not use any other bitfield types.
00176  */
00177 
00178 
00179 /*******************************************************************************
00180  *
00181  * ASF - Alert Standard Format table (Signature "ASF!")
00182  *       Revision 0x10
00183  *
00184  * Conforms to the Alert Standard Format Specification V2.0, 23 April 2003
00185  *
00186  ******************************************************************************/
00187 
00188 typedef struct acpi_table_asf
00189 {
00190     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
00191 
00192 } ACPI_TABLE_ASF;
00193 
00194 
00195 /* ASF subtable header */
00196 
00197 typedef struct acpi_asf_header
00198 {
00199     UINT8                   Type;
00200     UINT8                   Reserved;
00201     UINT16                  Length;
00202 
00203 } ACPI_ASF_HEADER;
00204 
00205 
00206 /* Values for Type field above */
00207 
00208 enum AcpiAsfType
00209 {
00210     ACPI_ASF_TYPE_INFO          = 0,
00211     ACPI_ASF_TYPE_ALERT         = 1,
00212     ACPI_ASF_TYPE_CONTROL       = 2,
00213     ACPI_ASF_TYPE_BOOT          = 3,
00214     ACPI_ASF_TYPE_ADDRESS       = 4,
00215     ACPI_ASF_TYPE_RESERVED      = 5
00216 };
00217 
00218 /*
00219  * ASF subtables
00220  */
00221 
00222 /* 0: ASF Information */
00223 
00224 typedef struct acpi_asf_info
00225 {
00226     ACPI_ASF_HEADER         Header;
00227     UINT8                   MinResetValue;
00228     UINT8                   MinPollInterval;
00229     UINT16                  SystemId;
00230     UINT32                  MfgId;
00231     UINT8                   Flags;
00232     UINT8                   Reserved2[3];
00233 
00234 } ACPI_ASF_INFO;
00235 
00236 /* Masks for Flags field above */
00237 
00238 #define ACPI_ASF_SMBUS_PROTOCOLS    (1)
00239 
00240 
00241 /* 1: ASF Alerts */
00242 
00243 typedef struct acpi_asf_alert
00244 {
00245     ACPI_ASF_HEADER         Header;
00246     UINT8                   AssertMask;
00247     UINT8                   DeassertMask;
00248     UINT8                   Alerts;
00249     UINT8                   DataLength;
00250 
00251 } ACPI_ASF_ALERT;
00252 
00253 typedef struct acpi_asf_alert_data
00254 {
00255     UINT8                   Address;
00256     UINT8                   Command;
00257     UINT8                   Mask;
00258     UINT8                   Value;
00259     UINT8                   SensorType;
00260     UINT8                   Type;
00261     UINT8                   Offset;
00262     UINT8                   SourceType;
00263     UINT8                   Severity;
00264     UINT8                   SensorNumber;
00265     UINT8                   Entity;
00266     UINT8                   Instance;
00267 
00268 } ACPI_ASF_ALERT_DATA;
00269 
00270 
00271 /* 2: ASF Remote Control */
00272 
00273 typedef struct acpi_asf_remote
00274 {
00275     ACPI_ASF_HEADER         Header;
00276     UINT8                   Controls;
00277     UINT8                   DataLength;
00278     UINT16                  Reserved2;
00279 
00280 } ACPI_ASF_REMOTE;
00281 
00282 typedef struct acpi_asf_control_data
00283 {
00284     UINT8                   Function;
00285     UINT8                   Address;
00286     UINT8                   Command;
00287     UINT8                   Value;
00288 
00289 } ACPI_ASF_CONTROL_DATA;
00290 
00291 
00292 /* 3: ASF RMCP Boot Options */
00293 
00294 typedef struct acpi_asf_rmcp
00295 {
00296     ACPI_ASF_HEADER         Header;
00297     UINT8                   Capabilities[7];
00298     UINT8                   CompletionCode;
00299     UINT32                  EnterpriseId;
00300     UINT8                   Command;
00301     UINT16                  Parameter;
00302     UINT16                  BootOptions;
00303     UINT16                  OemParameters;
00304 
00305 } ACPI_ASF_RMCP;
00306 
00307 
00308 /* 4: ASF Address */
00309 
00310 typedef struct acpi_asf_address
00311 {
00312     ACPI_ASF_HEADER         Header;
00313     UINT8                   EpromAddress;
00314     UINT8                   Devices;
00315 
00316 } ACPI_ASF_ADDRESS;
00317 
00318 
00319 /*******************************************************************************
00320  *
00321  * BOOT - Simple Boot Flag Table
00322  *        Version 1
00323  *
00324  * Conforms to the "Simple Boot Flag Specification", Version 2.1
00325  *
00326  ******************************************************************************/
00327 
00328 typedef struct acpi_table_boot
00329 {
00330     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
00331     UINT8                   CmosIndex;          /* Index in CMOS RAM for the boot register */
00332     UINT8                   Reserved[3];
00333 
00334 } ACPI_TABLE_BOOT;
00335 
00336 
00337 /*******************************************************************************
00338  *
00339  * DBGP - Debug Port table
00340  *        Version 1
00341  *
00342  * Conforms to the "Debug Port Specification", Version 1.00, 2/9/2000
00343  *
00344  ******************************************************************************/
00345 
00346 typedef struct acpi_table_dbgp
00347 {
00348     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
00349     UINT8                   Type;               /* 0=full 16550, 1=subset of 16550 */
00350     UINT8                   Reserved[3];
00351     ACPI_GENERIC_ADDRESS    DebugPort;
00352 
00353 } ACPI_TABLE_DBGP;
00354 
00355 
00356 /*******************************************************************************
00357  *
00358  * DMAR - DMA Remapping table
00359  *        Version 1
00360  *
00361  * Conforms to "Intel Virtualization Technology for Directed I/O",
00362  * Version 1.2, Sept. 2008
00363  *
00364  ******************************************************************************/
00365 
00366 typedef struct acpi_table_dmar
00367 {
00368     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
00369     UINT8                   Width;              /* Host Address Width */
00370     UINT8                   Flags;
00371     UINT8                   Reserved[10];
00372 
00373 } ACPI_TABLE_DMAR;
00374 
00375 /* Masks for Flags field above */
00376 
00377 #define ACPI_DMAR_INTR_REMAP        (1)
00378 
00379 
00380 /* DMAR subtable header */
00381 
00382 typedef struct acpi_dmar_header
00383 {
00384     UINT16                  Type;
00385     UINT16                  Length;
00386 
00387 } ACPI_DMAR_HEADER;
00388 
00389 /* Values for subtable type in ACPI_DMAR_HEADER */
00390 
00391 enum AcpiDmarType
00392 {
00393     ACPI_DMAR_TYPE_HARDWARE_UNIT        = 0,
00394     ACPI_DMAR_TYPE_RESERVED_MEMORY      = 1,
00395     ACPI_DMAR_TYPE_ATSR                 = 2,
00396     ACPI_DMAR_HARDWARE_AFFINITY         = 3,
00397     ACPI_DMAR_TYPE_RESERVED             = 4     /* 4 and greater are reserved */
00398 };
00399 
00400 
00401 /* DMAR Device Scope structure */
00402 
00403 typedef struct acpi_dmar_device_scope
00404 {
00405     UINT8                   EntryType;
00406     UINT8                   Length;
00407     UINT16                  Reserved;
00408     UINT8                   EnumerationId;
00409     UINT8                   Bus;
00410 
00411 } ACPI_DMAR_DEVICE_SCOPE;
00412 
00413 /* Values for EntryType in ACPI_DMAR_DEVICE_SCOPE */
00414 
00415 enum AcpiDmarScopeType
00416 {
00417     ACPI_DMAR_SCOPE_TYPE_NOT_USED       = 0,
00418     ACPI_DMAR_SCOPE_TYPE_ENDPOINT       = 1,
00419     ACPI_DMAR_SCOPE_TYPE_BRIDGE         = 2,
00420     ACPI_DMAR_SCOPE_TYPE_IOAPIC         = 3,
00421     ACPI_DMAR_SCOPE_TYPE_HPET           = 4,
00422     ACPI_DMAR_SCOPE_TYPE_RESERVED       = 5     /* 5 and greater are reserved */
00423 };
00424 
00425 typedef struct acpi_dmar_pci_path
00426 {
00427     UINT8                   Device;
00428     UINT8                   Function;
00429 
00430 } ACPI_DMAR_PCI_PATH;
00431 
00432 
00433 /*
00434  * DMAR Sub-tables, correspond to Type in ACPI_DMAR_HEADER
00435  */
00436 
00437 /* 0: Hardware Unit Definition */
00438 
00439 typedef struct acpi_dmar_hardware_unit
00440 {
00441     ACPI_DMAR_HEADER        Header;
00442     UINT8                   Flags;
00443     UINT8                   Reserved;
00444     UINT16                  Segment;
00445     UINT64                  Address;            /* Register Base Address */
00446 
00447 } ACPI_DMAR_HARDWARE_UNIT;
00448 
00449 /* Masks for Flags field above */
00450 
00451 #define ACPI_DMAR_INCLUDE_ALL       (1)
00452 
00453 
00454 /* 1: Reserved Memory Defininition */
00455 
00456 typedef struct acpi_dmar_reserved_memory
00457 {
00458     ACPI_DMAR_HEADER        Header;
00459     UINT16                  Reserved;
00460     UINT16                  Segment;
00461     UINT64                  BaseAddress;        /* 4K aligned base address */
00462     UINT64                  EndAddress;         /* 4K aligned limit address */
00463 
00464 } ACPI_DMAR_RESERVED_MEMORY;
00465 
00466 /* Masks for Flags field above */
00467 
00468 #define ACPI_DMAR_ALLOW_ALL         (1)
00469 
00470 
00471 /* 2: Root Port ATS Capability Reporting Structure */
00472 
00473 typedef struct acpi_dmar_atsr
00474 {
00475     ACPI_DMAR_HEADER        Header;
00476     UINT8                   Flags;
00477     UINT8                   Reserved;
00478     UINT16                  Segment;
00479 
00480 } ACPI_DMAR_ATSR;
00481 
00482 /* Masks for Flags field above */
00483 
00484 #define ACPI_DMAR_ALL_PORTS         (1)
00485 
00486 
00487 /* 3: Remapping Hardware Static Affinity Structure */
00488 
00489 typedef struct acpi_dmar_rhsa
00490 {
00491     ACPI_DMAR_HEADER        Header;
00492     UINT32                  Reserved;
00493     UINT64                  BaseAddress;
00494     UINT32                  ProximityDomain;
00495 
00496 } ACPI_DMAR_RHSA;
00497 
00498 
00499 /*******************************************************************************
00500  *
00501  * HPET - High Precision Event Timer table
00502  *        Version 1
00503  *
00504  * Conforms to "IA-PC HPET (High Precision Event Timers) Specification",
00505  * Version 1.0a, October 2004
00506  *
00507  ******************************************************************************/
00508 
00509 typedef struct acpi_table_hpet
00510 {
00511     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
00512     UINT32                  Id;                 /* Hardware ID of event timer block */
00513     ACPI_GENERIC_ADDRESS    Address;            /* Address of event timer block */
00514     UINT8                   Sequence;           /* HPET sequence number */
00515     UINT16                  MinimumTick;        /* Main counter min tick, periodic mode */
00516     UINT8                   Flags;
00517 
00518 } ACPI_TABLE_HPET;
00519 
00520 /* Masks for Flags field above */
00521 
00522 #define ACPI_HPET_PAGE_PROTECT_MASK (3)
00523 
00524 /* Values for Page Protect flags */
00525 
00526 enum AcpiHpetPageProtect
00527 {
00528     ACPI_HPET_NO_PAGE_PROTECT       = 0,
00529     ACPI_HPET_PAGE_PROTECT4         = 1,
00530     ACPI_HPET_PAGE_PROTECT64        = 2
00531 };
00532 
00533 
00534 /*******************************************************************************
00535  *
00536  * IBFT - Boot Firmware Table
00537  *        Version 1
00538  *
00539  * Conforms to "iSCSI Boot Firmware Table (iBFT) as Defined in ACPI 3.0b
00540  * Specification", Version 1.01, March 1, 2007
00541  *
00542  * Note: It appears that this table is not intended to appear in the RSDT/XSDT.
00543  * Therefore, it is not currently supported by the disassembler.
00544  *
00545  ******************************************************************************/
00546 
00547 typedef struct acpi_table_ibft
00548 {
00549     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
00550     UINT8                   Reserved[12];
00551 
00552 } ACPI_TABLE_IBFT;
00553 
00554 
00555 /* IBFT common subtable header */
00556 
00557 typedef struct acpi_ibft_header
00558 {
00559     UINT8                   Type;
00560     UINT8                   Version;
00561     UINT16                  Length;
00562     UINT8                   Index;
00563     UINT8                   Flags;
00564 
00565 } ACPI_IBFT_HEADER;
00566 
00567 /* Values for Type field above */
00568 
00569 enum AcpiIbftType
00570 {
00571     ACPI_IBFT_TYPE_NOT_USED         = 0,
00572     ACPI_IBFT_TYPE_CONTROL          = 1,
00573     ACPI_IBFT_TYPE_INITIATOR        = 2,
00574     ACPI_IBFT_TYPE_NIC              = 3,
00575     ACPI_IBFT_TYPE_TARGET           = 4,
00576     ACPI_IBFT_TYPE_EXTENSIONS       = 5,
00577     ACPI_IBFT_TYPE_RESERVED         = 6     /* 6 and greater are reserved */
00578 };
00579 
00580 
00581 /* IBFT subtables */
00582 
00583 typedef struct acpi_ibft_control
00584 {
00585     ACPI_IBFT_HEADER        Header;
00586     UINT16                  Extensions;
00587     UINT16                  InitiatorOffset;
00588     UINT16                  Nic0Offset;
00589     UINT16                  Target0Offset;
00590     UINT16                  Nic1Offset;
00591     UINT16                  Target1Offset;
00592 
00593 } ACPI_IBFT_CONTROL;
00594 
00595 typedef struct acpi_ibft_initiator
00596 {
00597     ACPI_IBFT_HEADER        Header;
00598     UINT8                   SnsServer[16];
00599     UINT8                   SlpServer[16];
00600     UINT8                   PrimaryServer[16];
00601     UINT8                   SecondaryServer[16];
00602     UINT16                  NameLength;
00603     UINT16                  NameOffset;
00604 
00605 } ACPI_IBFT_INITIATOR;
00606 
00607 typedef struct acpi_ibft_nic
00608 {
00609     ACPI_IBFT_HEADER        Header;
00610     UINT8                   IpAddress[16];
00611     UINT8                   SubnetMaskPrefix;
00612     UINT8                   Origin;
00613     UINT8                   Gateway[16];
00614     UINT8                   PrimaryDns[16];
00615     UINT8                   SecondaryDns[16];
00616     UINT8                   Dhcp[16];
00617     UINT16                  Vlan;
00618     UINT8                   MacAddress[6];
00619     UINT16                  PciAddress;
00620     UINT16                  NameLength;
00621     UINT16                  NameOffset;
00622 
00623 } ACPI_IBFT_NIC;
00624 
00625 typedef struct acpi_ibft_target
00626 {
00627     ACPI_IBFT_HEADER        Header;
00628     UINT8                   TargetIpAddress[16];
00629     UINT16                  TargetIpSocket;
00630     UINT8                   TargetBootLun[8];
00631     UINT8                   ChapType;
00632     UINT8                   NicAssociation;
00633     UINT16                  TargetNameLength;
00634     UINT16                  TargetNameOffset;
00635     UINT16                  ChapNameLength;
00636     UINT16                  ChapNameOffset;
00637     UINT16                  ChapSecretLength;
00638     UINT16                  ChapSecretOffset;
00639     UINT16                  ReverseChapNameLength;
00640     UINT16                  ReverseChapNameOffset;
00641     UINT16                  ReverseChapSecretLength;
00642     UINT16                  ReverseChapSecretOffset;
00643 
00644 } ACPI_IBFT_TARGET;
00645 
00646 
00647 /*******************************************************************************
00648  *
00649  * IVRS - I/O Virtualization Reporting Structure
00650  *        Version 1
00651  *
00652  * Conforms to "AMD I/O Virtualization Technology (IOMMU) Specification",
00653  * Revision 1.26, February 2009.
00654  *
00655  ******************************************************************************/
00656 
00657 typedef struct acpi_table_ivrs
00658 {
00659     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
00660     UINT32                  Info;               /* Common virtualization info */
00661     UINT64                  Reserved;
00662 
00663 } ACPI_TABLE_IVRS;
00664 
00665 /* Values for Info field above */
00666 
00667 #define ACPI_IVRS_PHYSICAL_SIZE     0x00007F00  /* 7 bits, physical address size */
00668 #define ACPI_IVRS_VIRTUAL_SIZE      0x003F8000  /* 7 bits, virtual address size */
00669 #define ACPI_IVRS_ATS_RESERVED      0x00400000  /* ATS address translation range reserved */
00670 
00671 
00672 /* IVRS subtable header */
00673 
00674 typedef struct acpi_ivrs_header
00675 {
00676     UINT8                   Type;               /* Subtable type */
00677     UINT8                   Flags;
00678     UINT16                  Length;             /* Subtable length */
00679     UINT16                  DeviceId;           /* ID of IOMMU */
00680 
00681 } ACPI_IVRS_HEADER;
00682 
00683 /* Values for subtable Type above */
00684 
00685 enum AcpiIvrsType
00686 {
00687     ACPI_IVRS_TYPE_HARDWARE         = 0x10,
00688     ACPI_IVRS_TYPE_MEMORY1          = 0x20,
00689     ACPI_IVRS_TYPE_MEMORY2          = 0x21,
00690     ACPI_IVRS_TYPE_MEMORY3          = 0x22
00691 };
00692 
00693 /* Masks for Flags field above for IVHD subtable */
00694 
00695 #define ACPI_IVHD_TT_ENABLE         (1)
00696 #define ACPI_IVHD_PASS_PW           (1<<1)
00697 #define ACPI_IVHD_RES_PASS_PW       (1<<2)
00698 #define ACPI_IVHD_ISOC              (1<<3)
00699 #define ACPI_IVHD_IOTLB             (1<<4)
00700 
00701 /* Masks for Flags field above for IVMD subtable */
00702 
00703 #define ACPI_IVMD_UNITY             (1)
00704 #define ACPI_IVMD_READ              (1<<1)
00705 #define ACPI_IVMD_WRITE             (1<<2)
00706 #define ACPI_IVMD_EXCLUSION_RANGE   (1<<3)
00707 
00708 
00709 /*
00710  * IVRS subtables, correspond to Type in ACPI_IVRS_HEADER
00711  */
00712 
00713 /* 0x10: I/O Virtualization Hardware Definition Block (IVHD) */
00714 
00715 typedef struct acpi_ivrs_hardware
00716 {
00717     ACPI_IVRS_HEADER        Header;
00718     UINT16                  CapabilityOffset;   /* Offset for IOMMU control fields */
00719     UINT64                  BaseAddress;        /* IOMMU control registers */
00720     UINT16                  PciSegmentGroup;
00721     UINT16                  Info;               /* MSI number and unit ID */
00722     UINT32                  Reserved;
00723 
00724 } ACPI_IVRS_HARDWARE;
00725 
00726 /* Masks for Info field above */
00727 
00728 #define ACPI_IVHD_MSI_NUMBER_MASK   0x001F      /* 5 bits, MSI message number */
00729 #define ACPI_IVHD_UNIT_ID_MASK      0x1F00      /* 5 bits, UnitID */
00730 
00731 
00732 /*
00733  * Device Entries for IVHD subtable, appear after ACPI_IVRS_HARDWARE structure.
00734  * Upper two bits of the Type field are the (encoded) length of the structure.
00735  * Currently, only 4 and 8 byte entries are defined. 16 and 32 byte entries
00736  * are reserved for future use but not defined.
00737  */
00738 typedef struct acpi_ivrs_de_header
00739 {
00740     UINT8                   Type;
00741     UINT16                  Id;
00742     UINT8                   DataSetting;
00743 
00744 } ACPI_IVRS_DE_HEADER;
00745 
00746 /* Length of device entry is in the top two bits of Type field above */
00747 
00748 #define ACPI_IVHD_ENTRY_LENGTH      0xC0
00749 
00750 /* Values for device entry Type field above */
00751 
00752 enum AcpiIvrsDeviceEntryType
00753 {
00754     /* 4-byte device entries, all use ACPI_IVRS_DEVICE4 */
00755 
00756     ACPI_IVRS_TYPE_PAD4             = 0,
00757     ACPI_IVRS_TYPE_ALL              = 1,
00758     ACPI_IVRS_TYPE_SELECT           = 2,
00759     ACPI_IVRS_TYPE_START            = 3,
00760     ACPI_IVRS_TYPE_END              = 4,
00761 
00762     /* 8-byte device entries */
00763 
00764     ACPI_IVRS_TYPE_PAD8             = 64,
00765     ACPI_IVRS_TYPE_NOT_USED         = 65,
00766     ACPI_IVRS_TYPE_ALIAS_SELECT     = 66, /* Uses ACPI_IVRS_DEVICE8A */
00767     ACPI_IVRS_TYPE_ALIAS_START      = 67, /* Uses ACPI_IVRS_DEVICE8A */
00768     ACPI_IVRS_TYPE_EXT_SELECT       = 70, /* Uses ACPI_IVRS_DEVICE8B */
00769     ACPI_IVRS_TYPE_EXT_START        = 71, /* Uses ACPI_IVRS_DEVICE8B */
00770     ACPI_IVRS_TYPE_SPECIAL          = 72  /* Uses ACPI_IVRS_DEVICE8C */
00771 };
00772 
00773 /* Values for Data field above */
00774 
00775 #define ACPI_IVHD_INIT_PASS         (1)
00776 #define ACPI_IVHD_EINT_PASS         (1<<1)
00777 #define ACPI_IVHD_NMI_PASS          (1<<2)
00778 #define ACPI_IVHD_SYSTEM_MGMT       (3<<4)
00779 #define ACPI_IVHD_LINT0_PASS        (1<<6)
00780 #define ACPI_IVHD_LINT1_PASS        (1<<7)
00781 
00782 
00783 /* Types 0-4: 4-byte device entry */
00784 
00785 typedef struct acpi_ivrs_device4
00786 {
00787     ACPI_IVRS_DE_HEADER     Header;
00788 
00789 } ACPI_IVRS_DEVICE4;
00790 
00791 /* Types 66-67: 8-byte device entry */
00792 
00793 typedef struct acpi_ivrs_device8a
00794 {
00795     ACPI_IVRS_DE_HEADER     Header;
00796     UINT8                   Reserved1;
00797     UINT16                  UsedId;
00798     UINT8                   Reserved2;
00799 
00800 } ACPI_IVRS_DEVICE8A;
00801 
00802 /* Types 70-71: 8-byte device entry */
00803 
00804 typedef struct acpi_ivrs_device8b
00805 {
00806     ACPI_IVRS_DE_HEADER     Header;
00807     UINT32                  ExtendedData;
00808 
00809 } ACPI_IVRS_DEVICE8B;
00810 
00811 /* Values for ExtendedData above */
00812 
00813 #define ACPI_IVHD_ATS_DISABLED      (1<<31)
00814 
00815 /* Type 72: 8-byte device entry */
00816 
00817 typedef struct acpi_ivrs_device8c
00818 {
00819     ACPI_IVRS_DE_HEADER     Header;
00820     UINT8                   Handle;
00821     UINT16                  UsedId;
00822     UINT8                   Variety;
00823 
00824 } ACPI_IVRS_DEVICE8C;
00825 
00826 /* Values for Variety field above */
00827 
00828 #define ACPI_IVHD_IOAPIC            1
00829 #define ACPI_IVHD_HPET              2
00830 
00831 
00832 /* 0x20, 0x21, 0x22: I/O Virtualization Memory Definition Block (IVMD) */
00833 
00834 typedef struct acpi_ivrs_memory
00835 {
00836     ACPI_IVRS_HEADER        Header;
00837     UINT16                  AuxData;
00838     UINT64                  Reserved;
00839     UINT64                  StartAddress;
00840     UINT64                  MemoryLength;
00841 
00842 } ACPI_IVRS_MEMORY;
00843 
00844 
00845 /*******************************************************************************
00846  *
00847  * MCFG - PCI Memory Mapped Configuration table and sub-table
00848  *        Version 1
00849  *
00850  * Conforms to "PCI Firmware Specification", Revision 3.0, June 20, 2005
00851  *
00852  ******************************************************************************/
00853 
00854 typedef struct acpi_table_mcfg
00855 {
00856     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
00857     UINT8                   Reserved[8];
00858 
00859 } ACPI_TABLE_MCFG;
00860 
00861 
00862 /* Subtable */
00863 
00864 typedef struct acpi_mcfg_allocation
00865 {
00866     UINT64                  Address;            /* Base address, processor-relative */
00867     UINT16                  PciSegment;         /* PCI segment group number */
00868     UINT8                   StartBusNumber;     /* Starting PCI Bus number */
00869     UINT8                   EndBusNumber;       /* Final PCI Bus number */
00870     UINT32                  Reserved;
00871 
00872 } ACPI_MCFG_ALLOCATION;
00873 
00874 
00875 /*******************************************************************************
00876  *
00877  * MCHI - Management Controller Host Interface Table
00878  *        Version 1
00879  *
00880  * Conforms to "Management Component Transport Protocol (MCTP) Host
00881  * Interface Specification", Revision 1.0.0a, October 13, 2009
00882  *
00883  ******************************************************************************/
00884 
00885 typedef struct acpi_table_mchi
00886 {
00887     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
00888     UINT8                   InterfaceType;
00889     UINT8                   Protocol;
00890     UINT64                  ProtocolData;
00891     UINT8                   InterruptType;
00892     UINT8                   Gpe;
00893     UINT8                   PciDeviceFlag;
00894     UINT32                  GlobalInterrupt;
00895     ACPI_GENERIC_ADDRESS    ControlRegister;
00896     UINT8                   PciSegment;
00897     UINT8                   PciBus;
00898     UINT8                   PciDevice;
00899     UINT8                   PciFunction;
00900 
00901 } ACPI_TABLE_MCHI;
00902 
00903 
00904 /*******************************************************************************
00905  *
00906  * SLIC - Software Licensing Description Table
00907  *        Version 1
00908  *
00909  * Conforms to "OEM Activation 2.0 for Windows Vista Operating Systems",
00910  * Copyright 2006
00911  *
00912  ******************************************************************************/
00913 
00914 /* Basic SLIC table is only the common ACPI header */
00915 
00916 typedef struct acpi_table_slic
00917 {
00918     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
00919 
00920 } ACPI_TABLE_SLIC;
00921 
00922 
00923 /* Common SLIC subtable header */
00924 
00925 typedef struct acpi_slic_header
00926 {
00927     UINT32                  Type;
00928     UINT32                  Length;
00929 
00930 } ACPI_SLIC_HEADER;
00931 
00932 /* Values for Type field above */
00933 
00934 enum AcpiSlicType
00935 {
00936     ACPI_SLIC_TYPE_PUBLIC_KEY           = 0,
00937     ACPI_SLIC_TYPE_WINDOWS_MARKER       = 1,
00938     ACPI_SLIC_TYPE_RESERVED             = 2    /* 2 and greater are reserved */
00939 };
00940 
00941 
00942 /*
00943  * SLIC Sub-tables, correspond to Type in ACPI_SLIC_HEADER
00944  */
00945 
00946 /* 0: Public Key Structure */
00947 
00948 typedef struct acpi_slic_key
00949 {
00950     ACPI_SLIC_HEADER        Header;
00951     UINT8                   KeyType;
00952     UINT8                   Version;
00953     UINT16                  Reserved;
00954     UINT32                  Algorithm;
00955     char                    Magic[4];
00956     UINT32                  BitLength;
00957     UINT32                  Exponent;
00958     UINT8                   Modulus[128];
00959 
00960 } ACPI_SLIC_KEY;
00961 
00962 
00963 /* 1: Windows Marker Structure */
00964 
00965 typedef struct acpi_slic_marker
00966 {
00967     ACPI_SLIC_HEADER        Header;
00968     UINT32                  Version;
00969     char                    OemId[ACPI_OEM_ID_SIZE];            /* ASCII OEM identification */
00970     char                    OemTableId[ACPI_OEM_TABLE_ID_SIZE]; /* ASCII OEM table identification */
00971     char                    WindowsFlag[8];
00972     UINT32                  SlicVersion;
00973     UINT8                   Reserved[16];
00974     UINT8                   Signature[128];
00975 
00976 } ACPI_SLIC_MARKER;
00977 
00978 
00979 /*******************************************************************************
00980  *
00981  * SPCR - Serial Port Console Redirection table
00982  *        Version 1
00983  *
00984  * Conforms to "Serial Port Console Redirection Table",
00985  * Version 1.00, January 11, 2002
00986  *
00987  ******************************************************************************/
00988 
00989 typedef struct acpi_table_spcr
00990 {
00991     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
00992     UINT8                   InterfaceType;      /* 0=full 16550, 1=subset of 16550 */
00993     UINT8                   Reserved[3];
00994     ACPI_GENERIC_ADDRESS    SerialPort;
00995     UINT8                   InterruptType;
00996     UINT8                   PcInterrupt;
00997     UINT32                  Interrupt;
00998     UINT8                   BaudRate;
00999     UINT8                   Parity;
01000     UINT8                   StopBits;
01001     UINT8                   FlowControl;
01002     UINT8                   TerminalType;
01003     UINT8                   Reserved1;
01004     UINT16                  PciDeviceId;
01005     UINT16                  PciVendorId;
01006     UINT8                   PciBus;
01007     UINT8                   PciDevice;
01008     UINT8                   PciFunction;
01009     UINT32                  PciFlags;
01010     UINT8                   PciSegment;
01011     UINT32                  Reserved2;
01012 
01013 } ACPI_TABLE_SPCR;
01014 
01015 /* Masks for PciFlags field above */
01016 
01017 #define ACPI_SPCR_DO_NOT_DISABLE    (1)
01018 
01019 
01020 /*******************************************************************************
01021  *
01022  * SPMI - Server Platform Management Interface table
01023  *        Version 5
01024  *
01025  * Conforms to "Intelligent Platform Management Interface Specification
01026  * Second Generation v2.0", Document Revision 1.0, February 12, 2004 with
01027  * June 12, 2009 markup.
01028  *
01029  ******************************************************************************/
01030 
01031 typedef struct acpi_table_spmi
01032 {
01033     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
01034     UINT8                   InterfaceType;
01035     UINT8                   Reserved;           /* Must be 1 */
01036     UINT16                  SpecRevision;       /* Version of IPMI */
01037     UINT8                   InterruptType;
01038     UINT8                   GpeNumber;          /* GPE assigned */
01039     UINT8                   Reserved1;
01040     UINT8                   PciDeviceFlag;
01041     UINT32                  Interrupt;
01042     ACPI_GENERIC_ADDRESS    IpmiRegister;
01043     UINT8                   PciSegment;
01044     UINT8                   PciBus;
01045     UINT8                   PciDevice;
01046     UINT8                   PciFunction;
01047     UINT8                   Reserved2;
01048 
01049 } ACPI_TABLE_SPMI;
01050 
01051 /* Values for InterfaceType above */
01052 
01053 enum AcpiSpmiInterfaceTypes
01054 {
01055     ACPI_SPMI_NOT_USED              = 0,
01056     ACPI_SPMI_KEYBOARD              = 1,
01057     ACPI_SPMI_SMI                   = 2,
01058     ACPI_SPMI_BLOCK_TRANSFER        = 3,
01059     ACPI_SPMI_SMBUS                 = 4,
01060     ACPI_SPMI_RESERVED              = 5         /* 5 and above are reserved */
01061 };
01062 
01063 
01064 /*******************************************************************************
01065  *
01066  * TCPA - Trusted Computing Platform Alliance table
01067  *        Version 1
01068  *
01069  * Conforms to "TCG PC Specific Implementation Specification",
01070  * Version 1.1, August 18, 2003
01071  *
01072  ******************************************************************************/
01073 
01074 typedef struct acpi_table_tcpa
01075 {
01076     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
01077     UINT16                  Reserved;
01078     UINT32                  MaxLogLength;       /* Maximum length for the event log area */
01079     UINT64                  LogAddress;         /* Address of the event log area */
01080 
01081 } ACPI_TABLE_TCPA;
01082 
01083 
01084 /*******************************************************************************
01085  *
01086  * UEFI - UEFI Boot optimization Table
01087  *        Version 1
01088  *
01089  * Conforms to "Unified Extensible Firmware Interface Specification",
01090  * Version 2.3, May 8, 2009
01091  *
01092  ******************************************************************************/
01093 
01094 typedef struct acpi_table_uefi
01095 {
01096     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
01097     UINT8                   Identifier[16];     /* UUID identifier */
01098     UINT16                  DataOffset;         /* Offset of remaining data in table */
01099 
01100 } ACPI_TABLE_UEFI;
01101 
01102 
01103 /*******************************************************************************
01104  *
01105  * WAET - Windows ACPI Emulated devices Table
01106  *        Version 1
01107  *
01108  * Conforms to "Windows ACPI Emulated Devices Table", version 1.0, April 6, 2009
01109  *
01110  ******************************************************************************/
01111 
01112 typedef struct acpi_table_waet
01113 {
01114     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
01115     UINT32                  Flags;
01116 
01117 } ACPI_TABLE_WAET;
01118 
01119 /* Masks for Flags field above */
01120 
01121 #define ACPI_WAET_RTC_NO_ACK        (1)         /* RTC requires no int acknowledge */
01122 #define ACPI_WAET_TIMER_ONE_READ    (1<<1)      /* PM timer requires only one read */
01123 
01124 
01125 /*******************************************************************************
01126  *
01127  * WDAT - Watchdog Action Table
01128  *        Version 1
01129  *
01130  * Conforms to "Hardware Watchdog Timers Design Specification",
01131  * Copyright 2006 Microsoft Corporation.
01132  *
01133  ******************************************************************************/
01134 
01135 typedef struct acpi_table_wdat
01136 {
01137     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
01138     UINT32                  HeaderLength;       /* Watchdog Header Length */
01139     UINT16                  PciSegment;         /* PCI Segment number */
01140     UINT8                   PciBus;             /* PCI Bus number */
01141     UINT8                   PciDevice;          /* PCI Device number */
01142     UINT8                   PciFunction;        /* PCI Function number */
01143     UINT8                   Reserved[3];
01144     UINT32                  TimerPeriod;        /* Period of one timer count (msec) */
01145     UINT32                  MaxCount;           /* Maximum counter value supported */
01146     UINT32                  MinCount;           /* Minimum counter value */
01147     UINT8                   Flags;
01148     UINT8                   Reserved2[3];
01149     UINT32                  Entries;            /* Number of watchdog entries that follow */
01150 
01151 } ACPI_TABLE_WDAT;
01152 
01153 /* Masks for Flags field above */
01154 
01155 #define ACPI_WDAT_ENABLED           (1)
01156 #define ACPI_WDAT_STOPPED           0x80
01157 
01158 
01159 /* WDAT Instruction Entries (actions) */
01160 
01161 typedef struct acpi_wdat_entry
01162 {
01163     UINT8                   Action;
01164     UINT8                   Instruction;
01165     UINT16                  Reserved;
01166     ACPI_GENERIC_ADDRESS    RegisterRegion;
01167     UINT32                  Value;              /* Value used with Read/Write register */
01168     UINT32                  Mask;               /* Bitmask required for this register instruction */
01169 
01170 } ACPI_WDAT_ENTRY;
01171 
01172 /* Values for Action field above */
01173 
01174 enum AcpiWdatActions
01175 {
01176     ACPI_WDAT_RESET                 = 1,
01177     ACPI_WDAT_GET_CURRENT_COUNTDOWN = 4,
01178     ACPI_WDAT_GET_COUNTDOWN         = 5,
01179     ACPI_WDAT_SET_COUNTDOWN         = 6,
01180     ACPI_WDAT_GET_RUNNING_STATE     = 8,
01181     ACPI_WDAT_SET_RUNNING_STATE     = 9,
01182     ACPI_WDAT_GET_STOPPED_STATE     = 10,
01183     ACPI_WDAT_SET_STOPPED_STATE     = 11,
01184     ACPI_WDAT_GET_REBOOT            = 16,
01185     ACPI_WDAT_SET_REBOOT            = 17,
01186     ACPI_WDAT_GET_SHUTDOWN          = 18,
01187     ACPI_WDAT_SET_SHUTDOWN          = 19,
01188     ACPI_WDAT_GET_STATUS            = 32,
01189     ACPI_WDAT_SET_STATUS            = 33,
01190     ACPI_WDAT_ACTION_RESERVED       = 34    /* 34 and greater are reserved */
01191 };
01192 
01193 /* Values for Instruction field above */
01194 
01195 enum AcpiWdatInstructions
01196 {
01197     ACPI_WDAT_READ_VALUE            = 0,
01198     ACPI_WDAT_READ_COUNTDOWN        = 1,
01199     ACPI_WDAT_WRITE_VALUE           = 2,
01200     ACPI_WDAT_WRITE_COUNTDOWN       = 3,
01201     ACPI_WDAT_INSTRUCTION_RESERVED  = 4,    /* 4 and greater are reserved */
01202     ACPI_WDAT_PRESERVE_REGISTER     = 0x80  /* Except for this value */
01203 };
01204 
01205 
01206 /*******************************************************************************
01207  *
01208  * WDDT - Watchdog Descriptor Table
01209  *        Version 1
01210  *
01211  * Conforms to "Using the Intel ICH Family Watchdog Timer (WDT)",
01212  * Version 001, September 2002
01213  *
01214  ******************************************************************************/
01215 
01216 typedef struct acpi_table_wddt
01217 {
01218     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
01219     UINT16                  SpecVersion;
01220     UINT16                  TableVersion;
01221     UINT16                  PciVendorId;
01222     ACPI_GENERIC_ADDRESS    Address;
01223     UINT16                  MaxCount;           /* Maximum counter value supported */
01224     UINT16                  MinCount;           /* Minimum counter value supported */
01225     UINT16                  Period;
01226     UINT16                  Status;
01227     UINT16                  Capability;
01228 
01229 } ACPI_TABLE_WDDT;
01230 
01231 /* Flags for Status field above */
01232 
01233 #define ACPI_WDDT_AVAILABLE     (1)
01234 #define ACPI_WDDT_ACTIVE        (1<<1)
01235 #define ACPI_WDDT_TCO_OS_OWNED  (1<<2)
01236 #define ACPI_WDDT_USER_RESET    (1<<11)
01237 #define ACPI_WDDT_WDT_RESET     (1<<12)
01238 #define ACPI_WDDT_POWER_FAIL    (1<<13)
01239 #define ACPI_WDDT_UNKNOWN_RESET (1<<14)
01240 
01241 /* Flags for Capability field above */
01242 
01243 #define ACPI_WDDT_AUTO_RESET    (1)
01244 #define ACPI_WDDT_ALERT_SUPPORT (1<<1)
01245 
01246 
01247 /*******************************************************************************
01248  *
01249  * WDRT - Watchdog Resource Table
01250  *        Version 1
01251  *
01252  * Conforms to "Watchdog Timer Hardware Requirements for Windows Server 2003",
01253  * Version 1.01, August 28, 2006
01254  *
01255  ******************************************************************************/
01256 
01257 typedef struct acpi_table_wdrt
01258 {
01259     ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
01260     ACPI_GENERIC_ADDRESS    ControlRegister;
01261     ACPI_GENERIC_ADDRESS    CountRegister;
01262     UINT16                  PciDeviceId;
01263     UINT16                  PciVendorId;
01264     UINT8                   PciBus;             /* PCI Bus number */
01265     UINT8                   PciDevice;          /* PCI Device number */
01266     UINT8                   PciFunction;        /* PCI Function number */
01267     UINT8                   PciSegment;         /* PCI Segment number */
01268     UINT16                  MaxCount;           /* Maximum counter value supported */
01269     UINT8                   Units;
01270 
01271 } ACPI_TABLE_WDRT;
01272 
01273 
01274 /* Reset to default packing */
01275 
01276 #pragma pack()
01277 
01278 #endif /* __ACTBL2_H__ */
01279 

Generated on Sat May 26 2012 04:25:52 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.