/* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */ /****************************************************************************** * * Name: actbl1.h - Additional ACPI table definitions * * Copyright (C) 2000 - 2023, Intel Corp. * *****************************************************************************/ #ifndef __ACTBL1_H__ #define __ACTBL1_H__ /******************************************************************************* * * Additional ACPI Tables * * These tables are not consumed directly by the ACPICA subsystem, but are * included here to support device drivers and the AML disassembler. * ******************************************************************************/ /* * Values for description table header signatures for tables defined in this * file. Useful because they make it more difficult to inadvertently type in * the wrong signature. */ #define ACPI_SIG_AEST … #define ACPI_SIG_ASF … #define ACPI_SIG_ASPT … #define ACPI_SIG_BERT … #define ACPI_SIG_BGRT … #define ACPI_SIG_BOOT … #define ACPI_SIG_CEDT … #define ACPI_SIG_CPEP … #define ACPI_SIG_CSRT … #define ACPI_SIG_DBG2 … #define ACPI_SIG_DBGP … #define ACPI_SIG_DMAR … #define ACPI_SIG_DRTM … #define ACPI_SIG_ECDT … #define ACPI_SIG_EINJ … #define ACPI_SIG_ERST … #define ACPI_SIG_FPDT … #define ACPI_SIG_GTDT … #define ACPI_SIG_HEST … #define ACPI_SIG_HMAT … #define ACPI_SIG_HPET … #define ACPI_SIG_IBFT … #define ACPI_SIG_MSCT … #define ACPI_SIG_S3PT … #define ACPI_SIG_PCCS … #define ACPI_SIG_NBFT … /* Reserved table signatures */ #define ACPI_SIG_MATR … #define ACPI_SIG_MSDM … /* * These tables have been seen in the field, but no definition has been found */ #ifdef ACPI_UNDEFINED_TABLES #define ACPI_SIG_ATKG … #define ACPI_SIG_GSCI … #define ACPI_SIG_IEIT … #endif /* * All tables must be byte-packed to match the ACPI specification, since * the tables are provided by the system BIOS. */ #pragma pack(1) /* * Note: C bitfields are not used for this reason: * * "Bitfields are great and easy to read, but unfortunately the C language * does not specify the layout of bitfields in memory, which means they are * essentially useless for dealing with packed data in on-disk formats or * binary wire protocols." (Or ACPI tables and buffers.) "If you ask me, * this decision was a design error in C. Ritchie could have picked an order * and stuck with it." Norman Ramsey. * See http://stackoverflow.com/a/1053662/41661 */ /******************************************************************************* * * Common subtable headers * ******************************************************************************/ /* Generic subtable header (used in MADT, SRAT, etc.) */ struct acpi_subtable_header { … }; /* Subtable header for WHEA tables (EINJ, ERST, WDAT) */ struct acpi_whea_header { … }; /* https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/acpitabl/ns-acpitabl-aspt_table */ #define ASPT_REVISION_ID … struct acpi_table_aspt { … }; struct acpi_aspt_header { … }; enum acpi_aspt_type { … }; /* 0: ASPT Global Registers */ struct acpi_aspt_global_regs { … }; /* 1: ASPT SEV Mailbox Registers */ struct acpi_aspt_sev_mbox_regs { … }; /* 2: ASPT ACPI Mailbox Registers */ struct acpi_aspt_acpi_mbox_regs { … }; /******************************************************************************* * * ASF - Alert Standard Format table (Signature "ASF!") * Revision 0x10 * * Conforms to the Alert Standard Format Specification V2.0, 23 April 2003 * ******************************************************************************/ struct acpi_table_asf { … }; /* ASF subtable header */ struct acpi_asf_header { … }; /* Values for Type field above */ enum acpi_asf_type { … }; /* * ASF subtables */ /* 0: ASF Information */ struct acpi_asf_info { … }; /* Masks for Flags field above */ #define ACPI_ASF_SMBUS_PROTOCOLS … /* 1: ASF Alerts */ struct acpi_asf_alert { … }; struct acpi_asf_alert_data { … }; /* 2: ASF Remote Control */ struct acpi_asf_remote { … }; struct acpi_asf_control_data { … }; /* 3: ASF RMCP Boot Options */ struct acpi_asf_rmcp { … }; /* 4: ASF Address */ struct acpi_asf_address { … }; /******************************************************************************* * * BERT - Boot Error Record Table (ACPI 4.0) * Version 1 * ******************************************************************************/ struct acpi_table_bert { … }; /* Boot Error Region (not a subtable, pointed to by Address field above) */ struct acpi_bert_region { … }; /* Values for block_status flags above */ #define ACPI_BERT_UNCORRECTABLE … #define ACPI_BERT_CORRECTABLE … #define ACPI_BERT_MULTIPLE_UNCORRECTABLE … #define ACPI_BERT_MULTIPLE_CORRECTABLE … #define ACPI_BERT_ERROR_ENTRY_COUNT … /* Values for error_severity above */ enum acpi_bert_error_severity { … }; /* * Note: The generic error data that follows the error_severity field above * uses the struct acpi_hest_generic_data defined under the HEST table below */ /******************************************************************************* * * BGRT - Boot Graphics Resource Table (ACPI 5.0) * Version 1 * ******************************************************************************/ struct acpi_table_bgrt { … }; /* Flags for Status field above */ #define ACPI_BGRT_DISPLAYED … #define ACPI_BGRT_ORIENTATION_OFFSET … /******************************************************************************* * * BOOT - Simple Boot Flag Table * Version 1 * * Conforms to the "Simple Boot Flag Specification", Version 2.1 * ******************************************************************************/ struct acpi_table_boot { … }; /******************************************************************************* * * CDAT - Coherent Device Attribute Table * Version 1 * * Conforms to the "Coherent Device Attribute Table (CDAT) Specification " (Revision 1.01, October 2020.) * ******************************************************************************/ struct acpi_table_cdat { … }; /* CDAT common subtable header */ struct acpi_cdat_header { … }; /* Values for Type field above */ enum acpi_cdat_type { … }; /* Subtable 0: Device Scoped Memory Affinity Structure (DSMAS) */ struct acpi_cdat_dsmas { … }; /* Flags for subtable above */ #define ACPI_CDAT_DSMAS_NON_VOLATILE … /* Subtable 1: Device scoped Latency and Bandwidth Information Structure (DSLBIS) */ struct acpi_cdat_dslbis { … }; /* Subtable 2: Device Scoped Memory Side Cache Information Structure (DSMSCIS) */ struct acpi_cdat_dsmscis { … }; /* Subtable 3: Device Scoped Initiator Structure (DSIS) */ struct acpi_cdat_dsis { … }; /* Flags for above subtable */ #define ACPI_CDAT_DSIS_MEM_ATTACHED … /* Subtable 4: Device Scoped EFI Memory Type Structure (DSEMTS) */ struct acpi_cdat_dsemts { … }; /* Subtable 5: Switch Scoped Latency and Bandwidth Information Structure (SSLBIS) */ struct acpi_cdat_sslbis { … }; /* Sub-subtable for above, sslbe_entries field */ struct acpi_cdat_sslbe { … }; #define ACPI_CDAT_SSLBIS_US_PORT … #define ACPI_CDAT_SSLBIS_ANY_PORT … /******************************************************************************* * * CEDT - CXL Early Discovery Table * Version 1 * * Conforms to the "CXL Early Discovery Table" (CXL 2.0, October 2020) * ******************************************************************************/ struct acpi_table_cedt { … }; /* CEDT subtable header (Performance Record Structure) */ struct acpi_cedt_header { … }; /* Values for Type field above */ enum acpi_cedt_type { … }; /* Values for version field above */ #define ACPI_CEDT_CHBS_VERSION_CXL11 … #define ACPI_CEDT_CHBS_VERSION_CXL20 … /* Values for length field above */ #define ACPI_CEDT_CHBS_LENGTH_CXL11 … #define ACPI_CEDT_CHBS_LENGTH_CXL20 … /* * CEDT subtables */ /* 0: CXL Host Bridge Structure */ struct acpi_cedt_chbs { … }; /* 1: CXL Fixed Memory Window Structure */ struct acpi_cedt_cfmws { … }; struct acpi_cedt_cfmws_target_element { … }; /* Values for Interleave Arithmetic field above */ #define ACPI_CEDT_CFMWS_ARITHMETIC_MODULO … #define ACPI_CEDT_CFMWS_ARITHMETIC_XOR … /* Values for Restrictions field above */ #define ACPI_CEDT_CFMWS_RESTRICT_TYPE2 … #define ACPI_CEDT_CFMWS_RESTRICT_TYPE3 … #define ACPI_CEDT_CFMWS_RESTRICT_VOLATILE … #define ACPI_CEDT_CFMWS_RESTRICT_PMEM … #define ACPI_CEDT_CFMWS_RESTRICT_FIXED … /* 2: CXL XOR Interleave Math Structure */ struct acpi_cedt_cxims { … }; /* 3: CXL RCEC Downstream Port Association Structure */ struct acpi_cedt_rdpas { … }; /* Masks for bdf field above */ #define ACPI_CEDT_RDPAS_BUS_MASK … #define ACPI_CEDT_RDPAS_DEVICE_MASK … #define ACPI_CEDT_RDPAS_FUNCTION_MASK … #define ACPI_CEDT_RDPAS_PROTOCOL_IO … #define ACPI_CEDT_RDPAS_PROTOCOL_CACHEMEM … /******************************************************************************* * * CPEP - Corrected Platform Error Polling table (ACPI 4.0) * Version 1 * ******************************************************************************/ struct acpi_table_cpep { … }; /* Subtable */ struct acpi_cpep_polling { … }; /******************************************************************************* * * CSRT - Core System Resource Table * Version 0 * * Conforms to the "Core System Resource Table (CSRT)", November 14, 2011 * ******************************************************************************/ struct acpi_table_csrt { … }; /* Resource Group subtable */ struct acpi_csrt_group { … }; /* Shared Info subtable */ struct acpi_csrt_shared_info { … }; /* Resource Descriptor subtable */ struct acpi_csrt_descriptor { … }; /* Resource Types */ #define ACPI_CSRT_TYPE_INTERRUPT … #define ACPI_CSRT_TYPE_TIMER … #define ACPI_CSRT_TYPE_DMA … /* Resource Subtypes */ #define ACPI_CSRT_XRUPT_LINE … #define ACPI_CSRT_XRUPT_CONTROLLER … #define ACPI_CSRT_TIMER … #define ACPI_CSRT_DMA_CHANNEL … #define ACPI_CSRT_DMA_CONTROLLER … /******************************************************************************* * * DBG2 - Debug Port Table 2 * Version 0 (Both main table and subtables) * * Conforms to "Microsoft Debug Port Table 2 (DBG2)", September 21, 2020 * ******************************************************************************/ struct acpi_table_dbg2 { … }; struct acpi_dbg2_header { … }; /* Debug Device Information Subtable */ struct acpi_dbg2_device { … }; /* Types for port_type field above */ #define ACPI_DBG2_SERIAL_PORT … #define ACPI_DBG2_1394_PORT … #define ACPI_DBG2_USB_PORT … #define ACPI_DBG2_NET_PORT … /* Subtypes for port_subtype field above */ #define ACPI_DBG2_16550_COMPATIBLE … #define ACPI_DBG2_16550_SUBSET … #define ACPI_DBG2_MAX311XE_SPI … #define ACPI_DBG2_ARM_PL011 … #define ACPI_DBG2_MSM8X60 … #define ACPI_DBG2_16550_NVIDIA … #define ACPI_DBG2_TI_OMAP … #define ACPI_DBG2_APM88XXXX … #define ACPI_DBG2_MSM8974 … #define ACPI_DBG2_SAM5250 … #define ACPI_DBG2_INTEL_USIF … #define ACPI_DBG2_IMX6 … #define ACPI_DBG2_ARM_SBSA_32BIT … #define ACPI_DBG2_ARM_SBSA_GENERIC … #define ACPI_DBG2_ARM_DCC … #define ACPI_DBG2_BCM2835 … #define ACPI_DBG2_SDM845_1_8432MHZ … #define ACPI_DBG2_16550_WITH_GAS … #define ACPI_DBG2_SDM845_7_372MHZ … #define ACPI_DBG2_INTEL_LPSS … #define ACPI_DBG2_1394_STANDARD … #define ACPI_DBG2_USB_XHCI … #define ACPI_DBG2_USB_EHCI … /******************************************************************************* * * DBGP - Debug Port table * Version 1 * * Conforms to the "Debug Port Specification", Version 1.00, 2/9/2000 * ******************************************************************************/ struct acpi_table_dbgp { … }; /******************************************************************************* * * DMAR - DMA Remapping table * Version 1 * * Conforms to "Intel Virtualization Technology for Directed I/O", * Version 2.3, October 2014 * ******************************************************************************/ struct acpi_table_dmar { … }; /* Masks for Flags field above */ #define ACPI_DMAR_INTR_REMAP … #define ACPI_DMAR_X2APIC_OPT_OUT … #define ACPI_DMAR_X2APIC_MODE … /* DMAR subtable header */ struct acpi_dmar_header { … }; /* Values for subtable type in struct acpi_dmar_header */ enum acpi_dmar_type { … }; /* DMAR Device Scope structure */ struct acpi_dmar_device_scope { … }; /* Values for entry_type in struct acpi_dmar_device_scope - device types */ enum acpi_dmar_scope_type { … }; struct acpi_dmar_pci_path { … }; /* * DMAR Subtables, correspond to Type in struct acpi_dmar_header */ /* 0: Hardware Unit Definition */ struct acpi_dmar_hardware_unit { … }; /* Masks for Flags field above */ #define ACPI_DMAR_INCLUDE_ALL … /* 1: Reserved Memory Definition */ struct acpi_dmar_reserved_memory { … }; /* Masks for Flags field above */ #define ACPI_DMAR_ALLOW_ALL … /* 2: Root Port ATS Capability Reporting Structure */ struct acpi_dmar_atsr { … }; /* Masks for Flags field above */ #define ACPI_DMAR_ALL_PORTS … /* 3: Remapping Hardware Static Affinity Structure */ struct acpi_dmar_rhsa { … }; /* 4: ACPI Namespace Device Declaration Structure */ struct acpi_dmar_andd { … }; /* 5: SOC Integrated Address Translation Cache Reporting Structure */ struct acpi_dmar_satc { … }; /******************************************************************************* * * DRTM - Dynamic Root of Trust for Measurement table * Conforms to "TCG D-RTM Architecture" June 17 2013, Version 1.0.0 * Table version 1 * ******************************************************************************/ struct acpi_table_drtm { … }; /* Flag Definitions for above */ #define ACPI_DRTM_ACCESS_ALLOWED … #define ACPI_DRTM_ENABLE_GAP_CODE … #define ACPI_DRTM_INCOMPLETE_MEASUREMENTS … #define ACPI_DRTM_AUTHORITY_ORDER … /* 1) Validated Tables List (64-bit addresses) */ struct acpi_drtm_vtable_list { … }; /* 2) Resources List (of Resource Descriptors) */ /* Resource Descriptor */ struct acpi_drtm_resource { … }; struct acpi_drtm_resource_list { … }; /* 3) Platform-specific Identifiers List */ struct acpi_drtm_dps_id { … }; /******************************************************************************* * * ECDT - Embedded Controller Boot Resources Table * Version 1 * ******************************************************************************/ struct acpi_table_ecdt { … }; /******************************************************************************* * * EINJ - Error Injection Table (ACPI 4.0) * Version 1 * ******************************************************************************/ struct acpi_table_einj { … }; /* EINJ Injection Instruction Entries (actions) */ struct acpi_einj_entry { … }; /* Masks for Flags field above */ #define ACPI_EINJ_PRESERVE … /* Values for Action field above */ enum acpi_einj_actions { … }; /* Values for Instruction field above */ enum acpi_einj_instructions { … }; struct acpi_einj_error_type_with_addr { … }; struct acpi_einj_vendor { … }; /* EINJ Trigger Error Action Table */ struct acpi_einj_trigger { … }; /* Command status return values */ enum acpi_einj_command_status { … }; /* Error types returned from ACPI_EINJ_GET_ERROR_TYPE (bitfield) */ #define ACPI_EINJ_PROCESSOR_CORRECTABLE … #define ACPI_EINJ_PROCESSOR_UNCORRECTABLE … #define ACPI_EINJ_PROCESSOR_FATAL … #define ACPI_EINJ_MEMORY_CORRECTABLE … #define ACPI_EINJ_MEMORY_UNCORRECTABLE … #define ACPI_EINJ_MEMORY_FATAL … #define ACPI_EINJ_PCIX_CORRECTABLE … #define ACPI_EINJ_PCIX_UNCORRECTABLE … #define ACPI_EINJ_PCIX_FATAL … #define ACPI_EINJ_PLATFORM_CORRECTABLE … #define ACPI_EINJ_PLATFORM_UNCORRECTABLE … #define ACPI_EINJ_PLATFORM_FATAL … #define ACPI_EINJ_CXL_CACHE_CORRECTABLE … #define ACPI_EINJ_CXL_CACHE_UNCORRECTABLE … #define ACPI_EINJ_CXL_CACHE_FATAL … #define ACPI_EINJ_CXL_MEM_CORRECTABLE … #define ACPI_EINJ_CXL_MEM_UNCORRECTABLE … #define ACPI_EINJ_CXL_MEM_FATAL … #define ACPI_EINJ_VENDOR_DEFINED … /******************************************************************************* * * ERST - Error Record Serialization Table (ACPI 4.0) * Version 1 * ******************************************************************************/ struct acpi_table_erst { … }; /* ERST Serialization Entries (actions) */ struct acpi_erst_entry { … }; /* Masks for Flags field above */ #define ACPI_ERST_PRESERVE … /* Values for Action field above */ enum acpi_erst_actions { … }; /* Values for Instruction field above */ enum acpi_erst_instructions { … }; /* Command status return values */ enum acpi_erst_command_status { … }; /* Error Record Serialization Information */ struct acpi_erst_info { … }; /******************************************************************************* * * FPDT - Firmware Performance Data Table (ACPI 5.0) * Version 1 * ******************************************************************************/ struct acpi_table_fpdt { … }; /* FPDT subtable header (Performance Record Structure) */ struct acpi_fpdt_header { … }; /* Values for Type field above */ enum acpi_fpdt_type { … }; /* * FPDT subtables */ /* 0: Firmware Basic Boot Performance Record */ struct acpi_fpdt_boot_pointer { … }; /* 1: S3 Performance Table Pointer Record */ struct acpi_fpdt_s3pt_pointer { … }; /* * S3PT - S3 Performance Table. This table is pointed to by the * S3 Pointer Record above. */ struct acpi_table_s3pt { … }; /* * S3PT Subtables (Not part of the actual FPDT) */ /* Values for Type field in S3PT header */ enum acpi_s3pt_type { … }; struct acpi_s3pt_resume { … }; struct acpi_s3pt_suspend { … }; /* * FPDT Boot Performance Record (Not part of the actual FPDT) */ struct acpi_fpdt_boot { … }; /******************************************************************************* * * GTDT - Generic Timer Description Table (ACPI 5.1) * Version 2 * ******************************************************************************/ struct acpi_table_gtdt { … }; /* Flag Definitions: Timer Block Physical Timers and Virtual timers */ #define ACPI_GTDT_INTERRUPT_MODE … #define ACPI_GTDT_INTERRUPT_POLARITY … #define ACPI_GTDT_ALWAYS_ON … struct acpi_gtdt_el2 { … }; /* Common GTDT subtable header */ struct acpi_gtdt_header { … }; /* Values for GTDT subtable type above */ enum acpi_gtdt_type { … }; /* GTDT Subtables, correspond to Type in struct acpi_gtdt_header */ /* 0: Generic Timer Block */ struct acpi_gtdt_timer_block { … }; /* Timer Sub-Structure, one per timer */ struct acpi_gtdt_timer_entry { … }; /* Flag Definitions: timer_flags and virtual_timer_flags above */ #define ACPI_GTDT_GT_IRQ_MODE … #define ACPI_GTDT_GT_IRQ_POLARITY … /* Flag Definitions: common_flags above */ #define ACPI_GTDT_GT_IS_SECURE_TIMER … #define ACPI_GTDT_GT_ALWAYS_ON … /* 1: SBSA Generic Watchdog Structure */ struct acpi_gtdt_watchdog { … }; /* Flag Definitions: timer_flags above */ #define ACPI_GTDT_WATCHDOG_IRQ_MODE … #define ACPI_GTDT_WATCHDOG_IRQ_POLARITY … #define ACPI_GTDT_WATCHDOG_SECURE … /******************************************************************************* * * HEST - Hardware Error Source Table (ACPI 4.0) * Version 1 * ******************************************************************************/ struct acpi_table_hest { … }; /* HEST subtable header */ struct acpi_hest_header { … }; /* Values for Type field above for subtables */ enum acpi_hest_types { … }; /* * HEST substructures contained in subtables */ /* * IA32 Error Bank(s) - Follows the struct acpi_hest_ia_machine_check and * struct acpi_hest_ia_corrected structures. */ struct acpi_hest_ia_error_bank { … }; /* Common HEST sub-structure for PCI/AER structures below (6,7,8) */ struct acpi_hest_aer_common { … }; /* Masks for HEST Flags fields */ #define ACPI_HEST_FIRMWARE_FIRST … #define ACPI_HEST_GLOBAL … #define ACPI_HEST_GHES_ASSIST … /* * Macros to access the bus/segment numbers in Bus field above: * Bus number is encoded in bits 7:0 * Segment number is encoded in bits 23:8 */ #define ACPI_HEST_BUS(bus) … #define ACPI_HEST_SEGMENT(bus) … /* Hardware Error Notification */ struct acpi_hest_notify { … }; /* Values for Notify Type field above */ enum acpi_hest_notify_types { … }; /* Values for config_write_enable bitfield above */ #define ACPI_HEST_TYPE … #define ACPI_HEST_POLL_INTERVAL … #define ACPI_HEST_POLL_THRESHOLD_VALUE … #define ACPI_HEST_POLL_THRESHOLD_WINDOW … #define ACPI_HEST_ERR_THRESHOLD_VALUE … #define ACPI_HEST_ERR_THRESHOLD_WINDOW … /* * HEST subtables */ /* 0: IA32 Machine Check Exception */ struct acpi_hest_ia_machine_check { … }; /* 1: IA32 Corrected Machine Check */ struct acpi_hest_ia_corrected { … }; /* 2: IA32 Non-Maskable Interrupt */ struct acpi_hest_ia_nmi { … }; /* 3,4,5: Not used */ /* 6: PCI Express Root Port AER */ struct acpi_hest_aer_root { … }; /* 7: PCI Express AER (AER Endpoint) */ struct acpi_hest_aer { … }; /* 8: PCI Express/PCI-X Bridge AER */ struct acpi_hest_aer_bridge { … }; /* 9: Generic Hardware Error Source */ struct acpi_hest_generic { … }; /* 10: Generic Hardware Error Source, version 2 */ struct acpi_hest_generic_v2 { … }; /* Generic Error Status block */ struct acpi_hest_generic_status { … }; /* Values for block_status flags above */ #define ACPI_HEST_UNCORRECTABLE … #define ACPI_HEST_CORRECTABLE … #define ACPI_HEST_MULTIPLE_UNCORRECTABLE … #define ACPI_HEST_MULTIPLE_CORRECTABLE … #define ACPI_HEST_ERROR_ENTRY_COUNT … /* Generic Error Data entry */ struct acpi_hest_generic_data { … }; /* Extension for revision 0x0300 */ struct acpi_hest_generic_data_v300 { … }; /* Values for error_severity above */ #define ACPI_HEST_GEN_ERROR_RECOVERABLE … #define ACPI_HEST_GEN_ERROR_FATAL … #define ACPI_HEST_GEN_ERROR_CORRECTED … #define ACPI_HEST_GEN_ERROR_NONE … /* Flags for validation_bits above */ #define ACPI_HEST_GEN_VALID_FRU_ID … #define ACPI_HEST_GEN_VALID_FRU_STRING … #define ACPI_HEST_GEN_VALID_TIMESTAMP … /* 11: IA32 Deferred Machine Check Exception (ACPI 6.2) */ struct acpi_hest_ia_deferred_check { … }; /******************************************************************************* * * HMAT - Heterogeneous Memory Attributes Table (ACPI 6.2) * Version 1 * ******************************************************************************/ struct acpi_table_hmat { … }; /* Values for HMAT structure types */ enum acpi_hmat_type { … }; struct acpi_hmat_structure { … }; /* * HMAT Structures, correspond to Type in struct acpi_hmat_structure */ /* 0: Memory proximity domain attributes */ struct acpi_hmat_proximity_domain { … }; /* Masks for Flags field above */ #define ACPI_HMAT_PROCESSOR_PD_VALID … #define ACPI_HMAT_MEMORY_PD_VALID … #define ACPI_HMAT_RESERVATION_HINT … /* 1: System locality latency and bandwidth information */ struct acpi_hmat_locality { … }; /* Masks for Flags field above */ #define ACPI_HMAT_MEMORY_HIERARCHY … /* Values for Memory Hierarchy flags */ #define ACPI_HMAT_MEMORY … #define ACPI_HMAT_LAST_LEVEL_CACHE … #define ACPI_HMAT_1ST_LEVEL_CACHE … #define ACPI_HMAT_2ND_LEVEL_CACHE … #define ACPI_HMAT_3RD_LEVEL_CACHE … #define ACPI_HMAT_MINIMUM_XFER_SIZE … #define ACPI_HMAT_NON_SEQUENTIAL_XFERS … /* Values for data_type field above */ #define ACPI_HMAT_ACCESS_LATENCY … #define ACPI_HMAT_READ_LATENCY … #define ACPI_HMAT_WRITE_LATENCY … #define ACPI_HMAT_ACCESS_BANDWIDTH … #define ACPI_HMAT_READ_BANDWIDTH … #define ACPI_HMAT_WRITE_BANDWIDTH … /* 2: Memory side cache information */ struct acpi_hmat_cache { … }; /* Masks for cache_attributes field above */ #define ACPI_HMAT_TOTAL_CACHE_LEVEL … #define ACPI_HMAT_CACHE_LEVEL … #define ACPI_HMAT_CACHE_ASSOCIATIVITY … #define ACPI_HMAT_WRITE_POLICY … #define ACPI_HMAT_CACHE_LINE_SIZE … /* Values for cache associativity flag */ #define ACPI_HMAT_CA_NONE … #define ACPI_HMAT_CA_DIRECT_MAPPED … #define ACPI_HMAT_CA_COMPLEX_CACHE_INDEXING … /* Values for write policy flag */ #define ACPI_HMAT_CP_NONE … #define ACPI_HMAT_CP_WB … #define ACPI_HMAT_CP_WT … /******************************************************************************* * * HPET - High Precision Event Timer table * Version 1 * * Conforms to "IA-PC HPET (High Precision Event Timers) Specification", * Version 1.0a, October 2004 * ******************************************************************************/ struct acpi_table_hpet { … }; /* Masks for Flags field above */ #define ACPI_HPET_PAGE_PROTECT_MASK … /* Values for Page Protect flags */ enum acpi_hpet_page_protect { … }; /******************************************************************************* * * IBFT - Boot Firmware Table * Version 1 * * Conforms to "iSCSI Boot Firmware Table (iBFT) as Defined in ACPI 3.0b * Specification", Version 1.01, March 1, 2007 * * Note: It appears that this table is not intended to appear in the RSDT/XSDT. * Therefore, it is not currently supported by the disassembler. * ******************************************************************************/ struct acpi_table_ibft { … }; /* IBFT common subtable header */ struct acpi_ibft_header { … }; /* Values for Type field above */ enum acpi_ibft_type { … }; /* IBFT subtables */ struct acpi_ibft_control { … }; struct acpi_ibft_initiator { … }; struct acpi_ibft_nic { … }; struct acpi_ibft_target { … }; /* Reset to default packing */ #pragma pack() #endif /* __ACTBL1_H__ */