📄 actbl.h
字号:
typedef struct acpi_table_rsdp{ 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 *//******************************************************************************* * * RSDT/XSDT - Root System Description Tables * ******************************************************************************/typedef struct acpi_table_rsdt{ ACPI_TABLE_HEADER Header; /* Common ACPI table header */ UINT32 TableOffsetEntry[1]; /* Array of pointers to ACPI tables */} ACPI_TABLE_RSDT;typedef struct acpi_table_xsdt{ ACPI_TABLE_HEADER Header; /* Common ACPI table header */ UINT64 TableOffsetEntry[1]; /* Array of pointers to ACPI tables */} ACPI_TABLE_XSDT;/******************************************************************************* * * FACS - Firmware ACPI Control Structure (FACS) * ******************************************************************************/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 */ 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 */} ACPI_TABLE_FACS;/* Flag macros */#define ACPI_FACS_S4_BIOS_PRESENT (1) /* 00: S4BIOS support is present *//* Global lock flags */#define ACPI_GLOCK_PENDING 0x01 /* 00: Pending global lock ownership */#define ACPI_GLOCK_OWNED 0x02 /* 01: Global lock is owned *//******************************************************************************* * * FADT - Fixed ACPI Description Table (Signature "FACP") * ******************************************************************************//* Fields common to all versions of the FADT */typedef struct acpi_table_fadt{ 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]; /* Reserved, must be zero */ UINT64 XFacs; /* 64-bit physical address of FACS */ UINT64 XDsdt; /* 64-bit physical address of DSDT */ 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) *//* * FADT Prefered Power Management Profiles */enum AcpiPreferedPmProfiles{ 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 Boot Arch Flags */#define BAF_LEGACY_DEVICES 0x0001#define BAF_8042_KEYBOARD_CONTROLLER 0x0002#define FADT2_REVISION_ID 3#define FADT2_MINUS_REVISION_ID 2/* Reset to default packing */#pragma pack()/* * Get the remaining ACPI tables */#include "actbl1.h"/* Macros used to generate offsets to specific table fields */#define ACPI_FADT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_FADT, f)#endif /* __ACTBL_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -