diff options
Diffstat (limited to 'usr/src/uts/intel/sys/acpi/actbl.h')
| -rw-r--r-- | usr/src/uts/intel/sys/acpi/actbl.h | 377 |
1 files changed, 144 insertions, 233 deletions
diff --git a/usr/src/uts/intel/sys/acpi/actbl.h b/usr/src/uts/intel/sys/acpi/actbl.h index c8b8539fab..1ad1e6bfea 100644 --- a/usr/src/uts/intel/sys/acpi/actbl.h +++ b/usr/src/uts/intel/sys/acpi/actbl.h @@ -1,7 +1,7 @@ /****************************************************************************** * * Name: actbl.h - Basic ACPI Table Definitions - * $Revision: 1.80 $ + * $Revision: 1.85 $ * *****************************************************************************/ @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2006, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2008, Intel Corp. * All rights reserved. * * 2. License @@ -121,15 +121,15 @@ * Values for description table header signatures. Useful because they make * it more difficult to inadvertently type in the wrong signature. */ -#define DSDT_SIG "DSDT" /* Differentiated System Description Table */ -#define FADT_SIG "FACP" /* Fixed ACPI Description Table */ -#define FACS_SIG "FACS" /* Firmware ACPI Control Structure */ -#define PSDT_SIG "PSDT" /* Persistent System Description Table */ -#define RSDP_SIG "RSD PTR " /* Root System Description Pointer */ -#define RSDT_SIG "RSDT" /* Root System Description Table */ -#define XSDT_SIG "XSDT" /* Extended System Description Table */ -#define SSDT_SIG "SSDT" /* Secondary System Description Table */ -#define RSDP_NAME "RSDP" +#define ACPI_SIG_DSDT "DSDT" /* Differentiated System Description Table */ +#define ACPI_SIG_FADT "FACP" /* Fixed ACPI Description Table */ +#define ACPI_SIG_FACS "FACS" /* Firmware ACPI Control Structure */ +#define ACPI_SIG_PSDT "PSDT" /* Persistent System Description Table */ +#define ACPI_SIG_RSDP "RSD PTR " /* Root System Description Pointer */ +#define ACPI_SIG_RSDT "RSDT" /* Root System Description Table */ +#define ACPI_SIG_XSDT "XSDT" /* Extended System Description Table */ +#define ACPI_SIG_SSDT "SSDT" /* Secondary System Description Table */ +#define ACPI_RSDP_NAME "RSDP" /* Short name for RSDP, not signature */ /* @@ -158,32 +158,33 @@ * ******************************************************************************/ -#define ACPI_TABLE_HEADER_DEF \ - char Signature[4]; /* ASCII table signature */\ - UINT32 Length; /* Length of table in bytes, including this header */\ - UINT8 Revision; /* ACPI Specification minor version # */\ - UINT8 Checksum; /* To make sum of entire table == 0 */\ - char OemId[6]; /* ASCII OEM identification */\ - char OemTableId[8]; /* ASCII OEM table identification */\ - UINT32 OemRevision; /* OEM revision number */\ - char AslCompilerId[4]; /* ASCII ASL compiler vendor ID */\ - UINT32 AslCompilerRevision; /* ASL compiler version */ - typedef struct acpi_table_header { - ACPI_TABLE_HEADER_DEF + char Signature[ACPI_NAME_SIZE]; /* ASCII table signature */ + UINT32 Length; /* Length of table in bytes, including this header */ + UINT8 Revision; /* ACPI Specification minor version # */ + UINT8 Checksum; /* To make sum of entire table == 0 */ + char OemId[ACPI_OEM_ID_SIZE]; /* ASCII OEM identification */ + char OemTableId[ACPI_OEM_TABLE_ID_SIZE]; /* ASCII OEM table identification */ + UINT32 OemRevision; /* OEM revision number */ + char AslCompilerId[ACPI_NAME_SIZE]; /* ASCII ASL compiler vendor ID */ + UINT32 AslCompilerRevision; /* ASL compiler version */ } ACPI_TABLE_HEADER; /* * GAS - Generic Address Structure (ACPI 2.0+) + * + * Note: Since this structure is used in the ACPI tables, it is byte aligned. + * If misalignment is not supported, access to the Address field must be + * performed with care. */ typedef struct acpi_generic_address { - UINT8 AddressSpaceId; /* Address space where struct or register exists */ - UINT8 RegisterBitWidth; /* Size in bits of given register */ - UINT8 RegisterBitOffset; /* Bit offset within the register */ + UINT8 SpaceId; /* Address space where struct or register exists */ + UINT8 BitWidth; /* Size in bits of given register */ + UINT8 BitOffset; /* Bit offset within the register */ UINT8 AccessWidth; /* Minimum Access size (ACPI 3.0) */ UINT64 Address; /* 64-bit address of struct or register */ @@ -196,19 +197,19 @@ typedef struct acpi_generic_address * ******************************************************************************/ -typedef struct rsdp_descriptor +typedef struct acpi_table_rsdp { - char Signature[8]; /* ACPI signature, contains "RSD PTR " */ - UINT8 Checksum; /* ACPI 1.0 checksum */ - char OemId[6]; /* OEM identification */ - UINT8 Revision; /* Must be (0) for ACPI 1.0 or (2) for ACPI 2.0+ */ - UINT32 RsdtPhysicalAddress; /* 32-bit physical address of the RSDT */ - UINT32 Length; /* Table length in bytes, including header (ACPI 2.0+) */ - UINT64 XsdtPhysicalAddress; /* 64-bit physical address of the XSDT (ACPI 2.0+) */ - UINT8 ExtendedChecksum; /* Checksum of entire table (ACPI 2.0+) */ - UINT8 Reserved[3]; /* Reserved, must be zero */ - -} RSDP_DESCRIPTOR; + char Signature[8]; /* ACPI signature, contains "RSD PTR " */ + UINT8 Checksum; /* ACPI 1.0 checksum */ + char OemId[ACPI_OEM_ID_SIZE]; /* OEM identification */ + UINT8 Revision; /* Must be (0) for ACPI 1.0 or (2) for ACPI 2.0+ */ + UINT32 RsdtPhysicalAddress; /* 32-bit physical address of the RSDT */ + UINT32 Length; /* Table length in bytes, including header (ACPI 2.0+) */ + UINT64 XsdtPhysicalAddress; /* 64-bit physical address of the XSDT (ACPI 2.0+) */ + UINT8 ExtendedChecksum; /* Checksum of entire table (ACPI 2.0+) */ + UINT8 Reserved[3]; /* Reserved, must be zero */ + +} ACPI_TABLE_RSDP; #define ACPI_RSDP_REV0_SIZE 20 /* Size of original ACPI 1.0 RSDP */ @@ -219,19 +220,19 @@ typedef struct rsdp_descriptor * ******************************************************************************/ -typedef struct rsdt_descriptor +typedef struct acpi_table_rsdt { - ACPI_TABLE_HEADER_DEF - UINT32 TableOffsetEntry[1]; /* Array of pointers to ACPI tables */ + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + UINT32 TableOffsetEntry[1]; /* Array of pointers to ACPI tables */ -} RSDT_DESCRIPTOR; +} ACPI_TABLE_RSDT; -typedef struct xsdt_descriptor +typedef struct acpi_table_xsdt { - ACPI_TABLE_HEADER_DEF - UINT64 TableOffsetEntry[1]; /* Array of pointers to ACPI tables */ + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + UINT64 TableOffsetEntry[1]; /* Array of pointers to ACPI tables */ -} XSDT_DESCRIPTOR; +} ACPI_TABLE_XSDT; /******************************************************************************* @@ -240,40 +241,28 @@ typedef struct xsdt_descriptor * ******************************************************************************/ -typedef struct facs_descriptor +typedef struct acpi_table_facs { char Signature[4]; /* ASCII table signature */ UINT32 Length; /* Length of structure, in bytes */ UINT32 HardwareSignature; /* Hardware configuration signature */ UINT32 FirmwareWakingVector; /* 32-bit physical address of the Firmware Waking Vector */ UINT32 GlobalLock; /* Global Lock for shared hardware resources */ - - /* Flags (32 bits) */ - - UINT8 S4Bios_f : 1; /* 00: S4BIOS support is present */ - UINT8 : 7; /* 01-07: Reserved, must be zero */ - UINT8 Reserved1[3]; /* 08-31: Reserved, must be zero */ - + UINT32 Flags; UINT64 XFirmwareWakingVector; /* 64-bit version of the Firmware Waking Vector (ACPI 2.0+) */ UINT8 Version; /* Version of this table (ACPI 2.0+) */ UINT8 Reserved[31]; /* Reserved, must be zero */ -} FACS_DESCRIPTOR; +} ACPI_TABLE_FACS; -#define ACPI_GLOCK_PENDING 0x01 /* 00: Pending global lock ownership */ -#define ACPI_GLOCK_OWNED 0x02 /* 01: Global lock is owned */ +/* Flag macros */ +#define ACPI_FACS_S4_BIOS_PRESENT (1) /* 00: S4BIOS support is present */ -/* - * Common FACS - This is a version-independent FACS structure used for internal use only - */ -typedef struct acpi_common_facs -{ - UINT32 *GlobalLock; - UINT64 *FirmwareWakingVector; - UINT8 VectorWidth; +/* Global lock flags */ -} ACPI_COMMON_FACS; +#define ACPI_GLOCK_PENDING 0x01 /* 00: Pending global lock ownership */ +#define ACPI_GLOCK_OWNED 0x02 /* 01: Global lock is owned */ /******************************************************************************* @@ -284,135 +273,104 @@ typedef struct acpi_common_facs /* Fields common to all versions of the FADT */ -#define ACPI_FADT_COMMON \ - ACPI_TABLE_HEADER_DEF \ - UINT32 V1_FirmwareCtrl; /* 32-bit physical address of FACS */ \ - UINT32 V1_Dsdt; /* 32-bit physical address of DSDT */ \ - UINT8 Reserved1; /* System Interrupt Model isn't used in ACPI 2.0*/ \ - UINT8 Prefer_PM_Profile; /* Conveys preferred power management profile to OSPM. */ \ - UINT16 SciInt; /* System vector of SCI interrupt */ \ - UINT32 SmiCmd; /* Port address of SMI command port */ \ - UINT8 AcpiEnable; /* Value to write to smi_cmd to enable ACPI */ \ - UINT8 AcpiDisable; /* Value to write to smi_cmd to disable ACPI */ \ - UINT8 S4BiosReq; /* Value to write to SMI CMD to enter S4BIOS state */ \ - UINT8 PstateCnt; /* Processor performance state control*/ \ - UINT32 V1_Pm1aEvtBlk; /* Port address of Power Mgt 1a Event Reg Blk */ \ - UINT32 V1_Pm1bEvtBlk; /* Port address of Power Mgt 1b Event Reg Blk */ \ - UINT32 V1_Pm1aCntBlk; /* Port address of Power Mgt 1a Control Reg Blk */ \ - UINT32 V1_Pm1bCntBlk; /* Port address of Power Mgt 1b Control Reg Blk */ \ - UINT32 V1_Pm2CntBlk; /* Port address of Power Mgt 2 Control Reg Blk */ \ - UINT32 V1_PmTmrBlk; /* Port address of Power Mgt Timer Ctrl Reg Blk */ \ - UINT32 V1_Gpe0Blk; /* Port addr of General Purpose AcpiEvent 0 Reg Blk */ \ - UINT32 V1_Gpe1Blk; /* Port addr of General Purpose AcpiEvent 1 Reg Blk */ \ - UINT8 Pm1EvtLen; /* Byte Length of ports at pm1X_evt_blk */ \ - UINT8 Pm1CntLen; /* Byte Length of ports at pm1X_cnt_blk */ \ - UINT8 Pm2CntLen; /* Byte Length of ports at pm2_cnt_blk */ \ - UINT8 PmTmLen; /* Byte Length of ports at pm_tm_blk */ \ - UINT8 Gpe0BlkLen; /* Byte Length of ports at gpe0_blk */ \ - UINT8 Gpe1BlkLen; /* Byte Length of ports at gpe1_blk */ \ - UINT8 Gpe1Base; /* Offset in gpe model where gpe1 events start */ \ - UINT8 CstCnt; /* Support for the _CST object and C States change notification.*/ \ - UINT16 Plvl2Lat; /* Worst case HW latency to enter/exit C2 state */ \ - UINT16 Plvl3Lat; /* Worst case HW latency to enter/exit C3 state */ \ - UINT16 FlushSize; /* Processor's memory cache line width, in bytes */ \ - UINT16 FlushStride; /* Number of flush strides that need to be read */ \ - UINT8 DutyOffset; /* Processor's duty cycle index in processor's P_CNT reg*/ \ - UINT8 DutyWidth; /* Processor's duty cycle value bit width in P_CNT register.*/ \ - UINT8 DayAlrm; /* Index to day-of-month alarm in RTC CMOS RAM */ \ - UINT8 MonAlrm; /* Index to month-of-year alarm in RTC CMOS RAM */ \ - UINT8 Century; /* Index to century in RTC CMOS RAM */ \ - UINT16 IapcBootArch; /* IA-PC Boot Architecture Flags. See Table 5-10 for description*/ \ - UINT8 Reserved2; /* Reserved, must be zero */ - - -/* - * ACPI 2.0+ FADT - */ -typedef struct fadt_descriptor +typedef struct acpi_table_fadt { - ACPI_FADT_COMMON - - /* Flags (32 bits) */ - - UINT8 WbInvd : 1; /* 00: The wbinvd instruction works properly */ - UINT8 WbInvdFlush : 1; /* 01: The wbinvd flushes but does not invalidate */ - UINT8 ProcC1 : 1; /* 02: All processors support C1 state */ - UINT8 Plvl2Up : 1; /* 03: C2 state works on MP system */ - UINT8 PwrButton : 1; /* 04: Power button is handled as a generic feature */ - UINT8 SleepButton : 1; /* 05: Sleep button is handled as a generic feature, or not present */ - UINT8 FixedRTC : 1; /* 06: RTC wakeup stat not in fixed register space */ - UINT8 Rtcs4 : 1; /* 07: RTC wakeup stat not possible from S4 */ - UINT8 TmrValExt : 1; /* 08: tmr_val is 32 bits 0=24-bits */ - UINT8 DockCap : 1; /* 09: Docking supported */ - UINT8 ResetRegSup : 1; /* 10: System reset via the FADT RESET_REG supported */ - UINT8 SealedCase : 1; /* 11: No internal expansion capabilities and case is sealed */ - UINT8 Headless : 1; /* 12: No local video capabilities or local input devices */ - UINT8 CpuSwSleep : 1; /* 13: Must execute native instruction after writing SLP_TYPx register */ - - UINT8 PciExpWak : 1; /* 14: System supports PCIEXP_WAKE (STS/EN) bits (ACPI 3.0) */ - UINT8 UsePlatformClock : 1; /* 15: OSPM should use platform-provided timer (ACPI 3.0) */ - UINT8 S4RtcStsValid : 1; /* 16: Contents of RTC_STS valid after S4 wake (ACPI 3.0) */ - UINT8 RemotePowerOnCapable : 1; /* 17: System is compatible with remote power on (ACPI 3.0) */ - UINT8 ForceApicClusterModel : 1; /* 18: All local APICs must use cluster model (ACPI 3.0) */ - UINT8 ForceApicPhysicalDestinationMode : 1; /* 19: All local xAPICs must use physical dest mode (ACPI 3.0) */ - UINT8 : 4; /* 20-23: Reserved, must be zero */ - UINT8 Reserved3; /* 24-31: Reserved, must be zero */ - - ACPI_GENERIC_ADDRESS ResetRegister; /* Reset register address in GAS format */ + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + UINT32 Facs; /* 32-bit physical address of FACS */ + UINT32 Dsdt; /* 32-bit physical address of DSDT */ + UINT8 Model; /* System Interrupt Model (ACPI 1.0) - not used in ACPI 2.0+ */ + UINT8 PreferredProfile; /* Conveys preferred power management profile to OSPM. */ + UINT16 SciInterrupt; /* System vector of SCI interrupt */ + UINT32 SmiCommand; /* 32-bit Port address of SMI command port */ + UINT8 AcpiEnable; /* Value to write to smi_cmd to enable ACPI */ + UINT8 AcpiDisable; /* Value to write to smi_cmd to disable ACPI */ + UINT8 S4BiosRequest; /* Value to write to SMI CMD to enter S4BIOS state */ + UINT8 PstateControl; /* Processor performance state control*/ + UINT32 Pm1aEventBlock; /* 32-bit Port address of Power Mgt 1a Event Reg Blk */ + UINT32 Pm1bEventBlock; /* 32-bit Port address of Power Mgt 1b Event Reg Blk */ + UINT32 Pm1aControlBlock; /* 32-bit Port address of Power Mgt 1a Control Reg Blk */ + UINT32 Pm1bControlBlock; /* 32-bit Port address of Power Mgt 1b Control Reg Blk */ + UINT32 Pm2ControlBlock; /* 32-bit Port address of Power Mgt 2 Control Reg Blk */ + UINT32 PmTimerBlock; /* 32-bit Port address of Power Mgt Timer Ctrl Reg Blk */ + UINT32 Gpe0Block; /* 32-bit Port address of General Purpose Event 0 Reg Blk */ + UINT32 Gpe1Block; /* 32-bit Port address of General Purpose Event 1 Reg Blk */ + UINT8 Pm1EventLength; /* Byte Length of ports at Pm1xEventBlock */ + UINT8 Pm1ControlLength; /* Byte Length of ports at Pm1xControlBlock */ + UINT8 Pm2ControlLength; /* Byte Length of ports at Pm2ControlBlock */ + UINT8 PmTimerLength; /* Byte Length of ports at PmTimerBlock */ + UINT8 Gpe0BlockLength; /* Byte Length of ports at Gpe0Block */ + UINT8 Gpe1BlockLength; /* Byte Length of ports at Gpe1Block */ + UINT8 Gpe1Base; /* Offset in GPE number space where GPE1 events start */ + UINT8 CstControl; /* Support for the _CST object and C States change notification */ + UINT16 C2Latency; /* Worst case HW latency to enter/exit C2 state */ + UINT16 C3Latency; /* Worst case HW latency to enter/exit C3 state */ + UINT16 FlushSize; /* Processor's memory cache line width, in bytes */ + UINT16 FlushStride; /* Number of flush strides that need to be read */ + UINT8 DutyOffset; /* Processor duty cycle index in processor's P_CNT reg*/ + UINT8 DutyWidth; /* Processor duty cycle value bit width in P_CNT register.*/ + UINT8 DayAlarm; /* Index to day-of-month alarm in RTC CMOS RAM */ + UINT8 MonthAlarm; /* Index to month-of-year alarm in RTC CMOS RAM */ + UINT8 Century; /* Index to century in RTC CMOS RAM */ + UINT16 BootFlags; /* IA-PC Boot Architecture Flags. See Table 5-10 for description */ + UINT8 Reserved; /* Reserved, must be zero */ + UINT32 Flags; /* Miscellaneous flag bits (see below for individual flags) */ + ACPI_GENERIC_ADDRESS ResetRegister; /* 64-bit address of the Reset register */ UINT8 ResetValue; /* Value to write to the ResetRegister port to reset the system */ - UINT8 Reserved4[3]; /* These three bytes must be zero */ - UINT64 XFirmwareCtrl; /* 64-bit physical address of FACS */ + UINT8 Reserved4[3]; /* Reserved, must be zero */ + UINT64 XFacs; /* 64-bit physical address of FACS */ UINT64 XDsdt; /* 64-bit physical address of DSDT */ - ACPI_GENERIC_ADDRESS XPm1aEvtBlk; /* Extended Power Mgt 1a AcpiEvent Reg Blk address */ - ACPI_GENERIC_ADDRESS XPm1bEvtBlk; /* Extended Power Mgt 1b AcpiEvent Reg Blk address */ - ACPI_GENERIC_ADDRESS XPm1aCntBlk; /* Extended Power Mgt 1a Control Reg Blk address */ - ACPI_GENERIC_ADDRESS XPm1bCntBlk; /* Extended Power Mgt 1b Control Reg Blk address */ - ACPI_GENERIC_ADDRESS XPm2CntBlk; /* Extended Power Mgt 2 Control Reg Blk address */ - ACPI_GENERIC_ADDRESS XPmTmrBlk; /* Extended Power Mgt Timer Ctrl Reg Blk address */ - ACPI_GENERIC_ADDRESS XGpe0Blk; /* Extended General Purpose AcpiEvent 0 Reg Blk address */ - ACPI_GENERIC_ADDRESS XGpe1Blk; /* Extended General Purpose AcpiEvent 1 Reg Blk address */ - -} FADT_DESCRIPTOR; + ACPI_GENERIC_ADDRESS XPm1aEventBlock; /* 64-bit Extended Power Mgt 1a Event Reg Blk address */ + ACPI_GENERIC_ADDRESS XPm1bEventBlock; /* 64-bit Extended Power Mgt 1b Event Reg Blk address */ + ACPI_GENERIC_ADDRESS XPm1aControlBlock; /* 64-bit Extended Power Mgt 1a Control Reg Blk address */ + ACPI_GENERIC_ADDRESS XPm1bControlBlock; /* 64-bit Extended Power Mgt 1b Control Reg Blk address */ + ACPI_GENERIC_ADDRESS XPm2ControlBlock; /* 64-bit Extended Power Mgt 2 Control Reg Blk address */ + ACPI_GENERIC_ADDRESS XPmTimerBlock; /* 64-bit Extended Power Mgt Timer Ctrl Reg Blk address */ + ACPI_GENERIC_ADDRESS XGpe0Block; /* 64-bit Extended General Purpose Event 0 Reg Blk address */ + ACPI_GENERIC_ADDRESS XGpe1Block; /* 64-bit Extended General Purpose Event 1 Reg Blk address */ + +} ACPI_TABLE_FADT; + + +/* FADT flags */ + +#define ACPI_FADT_WBINVD (1) /* 00: The wbinvd instruction works properly */ +#define ACPI_FADT_WBINVD_FLUSH (1<<1) /* 01: The wbinvd flushes but does not invalidate */ +#define ACPI_FADT_C1_SUPPORTED (1<<2) /* 02: All processors support C1 state */ +#define ACPI_FADT_C2_MP_SUPPORTED (1<<3) /* 03: C2 state works on MP system */ +#define ACPI_FADT_POWER_BUTTON (1<<4) /* 04: Power button is handled as a generic feature */ +#define ACPI_FADT_SLEEP_BUTTON (1<<5) /* 05: Sleep button is handled as a generic feature, or not present */ +#define ACPI_FADT_FIXED_RTC (1<<6) /* 06: RTC wakeup stat not in fixed register space */ +#define ACPI_FADT_S4_RTC_WAKE (1<<7) /* 07: RTC wakeup stat not possible from S4 */ +#define ACPI_FADT_32BIT_TIMER (1<<8) /* 08: tmr_val is 32 bits 0=24-bits */ +#define ACPI_FADT_DOCKING_SUPPORTED (1<<9) /* 09: Docking supported */ +#define ACPI_FADT_RESET_REGISTER (1<<10) /* 10: System reset via the FADT RESET_REG supported */ +#define ACPI_FADT_SEALED_CASE (1<<11) /* 11: No internal expansion capabilities and case is sealed */ +#define ACPI_FADT_HEADLESS (1<<12) /* 12: No local video capabilities or local input devices */ +#define ACPI_FADT_SLEEP_TYPE (1<<13) /* 13: Must execute native instruction after writing SLP_TYPx register */ +#define ACPI_FADT_PCI_EXPRESS_WAKE (1<<14) /* 14: System supports PCIEXP_WAKE (STS/EN) bits (ACPI 3.0) */ +#define ACPI_FADT_PLATFORM_CLOCK (1<<15) /* 15: OSPM should use platform-provided timer (ACPI 3.0) */ +#define ACPI_FADT_S4_RTC_VALID (1<<16) /* 16: Contents of RTC_STS valid after S4 wake (ACPI 3.0) */ +#define ACPI_FADT_REMOTE_POWER_ON (1<<17) /* 17: System is compatible with remote power on (ACPI 3.0) */ +#define ACPI_FADT_APIC_CLUSTER (1<<18) /* 18: All local APICs must use cluster model (ACPI 3.0) */ +#define ACPI_FADT_APIC_PHYSICAL (1<<19) /* 19: All local xAPICs must use physical dest mode (ACPI 3.0) */ /* - * "Down-revved" ACPI 2.0 FADT descriptor - * Defined here to allow compiler to generate the length of the struct + * FADT Prefered Power Management Profiles */ -typedef struct fadt_descriptor_rev2_minus +enum AcpiPreferedPmProfiles { - ACPI_FADT_COMMON - UINT32 Flags; - ACPI_GENERIC_ADDRESS ResetRegister; /* Reset register address in GAS format */ - UINT8 ResetValue; /* Value to write to the ResetRegister port to reset the system. */ - UINT8 Reserved7[3]; /* Reserved, must be zero */ + PM_UNSPECIFIED = 0, + PM_DESKTOP = 1, + PM_MOBILE = 2, + PM_WORKSTATION = 3, + PM_ENTERPRISE_SERVER = 4, + PM_SOHO_SERVER = 5, + PM_APPLIANCE_PC = 6 +}; -} FADT_DESCRIPTOR_REV2_MINUS; - -/* - * ACPI 1.0 FADT - * Defined here to allow compiler to generate the length of the struct - */ -typedef struct fadt_descriptor_rev1 -{ - ACPI_FADT_COMMON - UINT32 Flags; - -} FADT_DESCRIPTOR_REV1; - - -/* FADT: Prefered Power Management Profiles */ - -#define PM_UNSPECIFIED 0 -#define PM_DESKTOP 1 -#define PM_MOBILE 2 -#define PM_WORKSTATION 3 -#define PM_ENTERPRISE_SERVER 4 -#define PM_SOHO_SERVER 5 -#define PM_APPLIANCE_PC 6 - -/* FADT: Boot Arch Flags */ +/* FADT Boot Arch Flags */ #define BAF_LEGACY_DEVICES 0x0001 #define BAF_8042_KEYBOARD_CONTROLLER 0x0002 @@ -426,59 +384,12 @@ typedef struct fadt_descriptor_rev1 #pragma pack() /* - * This macro is temporary until the table bitfield flag definitions - * are removed and replaced by a Flags field. - */ -#define ACPI_FLAG_OFFSET(d,f,o) (UINT8) (ACPI_OFFSET (d,f) + \ - sizeof(((d *)0)->f) + o) -/* * Get the remaining ACPI tables */ #include "actbl1.h" -/* - * ACPI Table information. We save the table address, length, - * and type of memory allocation (mapped or allocated) for each - * table for 1) when we exit, and 2) if a new table is installed - */ -#define ACPI_MEM_NOT_ALLOCATED 0 -#define ACPI_MEM_ALLOCATED 1 -#define ACPI_MEM_MAPPED 2 - -/* Definitions for the Flags bitfield member of ACPI_TABLE_SUPPORT */ - -#define ACPI_TABLE_SINGLE 0x00 -#define ACPI_TABLE_MULTIPLE 0x01 -#define ACPI_TABLE_EXECUTABLE 0x02 - -#define ACPI_TABLE_ROOT 0x00 -#define ACPI_TABLE_PRIMARY 0x10 -#define ACPI_TABLE_SECONDARY 0x20 -#define ACPI_TABLE_ALL 0x30 -#define ACPI_TABLE_TYPE_MASK 0x30 - -/* Data about each known table type */ - -typedef struct acpi_table_support -{ - char *Name; - char *Signature; - void **GlobalPtr; - UINT8 SigLength; - UINT8 Flags; - -} ACPI_TABLE_SUPPORT; - - /* Macros used to generate offsets to specific table fields */ -#define ACPI_FACS_OFFSET(f) (UINT8) ACPI_OFFSET (FACS_DESCRIPTOR,f) -#define ACPI_FADT_OFFSET(f) (UINT8) ACPI_OFFSET (FADT_DESCRIPTOR, f) -#define ACPI_GAS_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_GENERIC_ADDRESS,f) -#define ACPI_HDR_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_HEADER,f) -#define ACPI_RSDP_OFFSET(f) (UINT8) ACPI_OFFSET (RSDP_DESCRIPTOR,f) - -#define ACPI_FADT_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (FADT_DESCRIPTOR,f,o) -#define ACPI_FACS_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (FACS_DESCRIPTOR,f,o) +#define ACPI_FADT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_FADT, f) #endif /* __ACTBL_H__ */ |
