actbl.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:7k
- /******************************************************************************
- *
- * Name: actbl.h - Table data structures defined in ACPI specification
- * $Revision: 46 $
- *
- *****************************************************************************/
- /*
- * Copyright (C) 2000, 2001 R. Byron Moore
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
- #ifndef __ACTBL_H__
- #define __ACTBL_H__
- /*
- * Values for description table header signatures
- */
- #define RSDP_NAME "RSDP"
- #define RSDP_SIG "RSD PTR " /* RSDT Pointer signature */
- #define APIC_SIG "APIC" /* Multiple APIC Description Table */
- #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 RSDT_SIG "RSDT" /* Root System Description Table */
- #define XSDT_SIG "XSDT" /* Extended System Description Table */
- #define SSDT_SIG "SSDT" /* Secondary System Description Table */
- #define SBST_SIG "SBST" /* Smart Battery Specification Table */
- #define SPIC_SIG "SPIC" /* iosapic table */
- #define BOOT_SIG "BOOT" /* Boot table */
- #define GL_OWNED 0x02 /* Ownership of global lock is bit 1 */
- /* values of Mapic.Model */
- #define DUAL_PIC 0
- #define MULTIPLE_APIC 1
- /* values of Type in APIC_HEADER */
- #define APIC_PROC 0
- #define APIC_IO 1
- /*
- * Common table types. The base code can remain
- * constant if the underlying tables are changed
- */
- #define RSDT_DESCRIPTOR RSDT_DESCRIPTOR_REV2
- #define xsdt_descriptor XSDT_DESCRIPTOR_REV2
- #define FACS_DESCRIPTOR facs_descriptor_rev2
- #define FADT_DESCRIPTOR fadt_descriptor_rev2
- #pragma pack(1)
- /*
- * Architecture-independent tables
- * The architecture dependent tables are in separate files
- */
- typedef struct /* Root System Descriptor Pointer */
- {
- NATIVE_CHAR signature [8]; /* contains "RSD PTR " */
- u8 checksum; /* to make sum of struct == 0 */
- NATIVE_CHAR oem_id [6]; /* OEM identification */
- u8 revision; /* Must be 0 for 1.0, 2 for 2.0 */
- u32 rsdt_physical_address; /* 32-bit physical address of RSDT */
- u32 length; /* XSDT Length in bytes including hdr */
- u64 xsdt_physical_address; /* 64-bit physical address of XSDT */
- u8 extended_checksum; /* Checksum of entire table */
- NATIVE_CHAR reserved [3]; /* reserved field must be 0 */
- } RSDP_DESCRIPTOR;
- typedef struct /* ACPI common table header */
- {
- NATIVE_CHAR signature [4]; /* identifies type of table */
- u32 length; /* length of table, in bytes,
- * including header */
- u8 revision; /* specification minor version # */
- u8 checksum; /* to make sum of entire table == 0 */
- NATIVE_CHAR oem_id [6]; /* OEM identification */
- NATIVE_CHAR oem_table_id [8]; /* OEM table identification */
- u32 oem_revision; /* OEM revision number */
- NATIVE_CHAR asl_compiler_id [4]; /* ASL compiler vendor ID */
- u32 asl_compiler_revision; /* ASL compiler revision number */
- } acpi_table_header;
- typedef struct /* Common FACS for internal use */
- {
- u32 *global_lock;
- u64 *firmware_waking_vector;
- u8 vector_width;
- } acpi_common_facs;
- typedef struct /* APIC Table */
- {
- acpi_table_header header; /* table header */
- u32 local_apic_address; /* Physical address for accessing local APICs */
- u32 PCATcompat : 1; /* a one indicates system also has dual 8259s */
- u32 reserved1 : 31;
- } APIC_TABLE;
- typedef struct /* APIC Header */
- {
- u8 type; /* APIC type. Either APIC_PROC or APIC_IO */
- u8 length; /* Length of APIC structure */
- } APIC_HEADER;
- typedef struct /* Processor APIC */
- {
- APIC_HEADER header;
- u8 processor_apic_id; /* ACPI processor id */
- u8 local_apic_id; /* processor's local APIC id */
- u32 processor_enabled: 1; /* Processor is usable if set */
- u32 reserved1 : 31;
- } PROCESSOR_APIC;
- typedef struct /* IO APIC */
- {
- APIC_HEADER header;
- u8 io_apic_id; /* I/O APIC ID */
- u8 reserved; /* reserved - must be zero */
- u32 io_apic_address; /* APIC's physical address */
- u32 vector; /* interrupt vector index where INTI
- * lines start */
- } IO_APIC;
- /*
- ** IA64 TODO: Add SAPIC Tables
- */
- /*
- ** IA64 TODO: Modify Smart Battery Description to comply with ACPI IA64
- ** extensions.
- */
- typedef struct /* Smart Battery Description Table */
- {
- acpi_table_header header;
- u32 warning_level;
- u32 low_level;
- u32 critical_level;
- } SMART_BATTERY_DESCRIPTION_TABLE;
- #pragma pack()
- /*
- * 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 0
- #define ACPI_TABLE_MULTIPLE 1
- /* Data about each known table type */
- typedef struct _acpi_table_support
- {
- NATIVE_CHAR *name;
- NATIVE_CHAR *signature;
- u8 sig_length;
- u8 flags;
- u16 status;
- void **global_ptr;
- } ACPI_TABLE_SUPPORT;
- /*
- * Get the architecture-specific tables
- */
- #include "actbl1.h" /* Acpi 1.0 table defintions */
- #include "actbl71.h" /* Acpi 0.71 IA-64 Extension table defintions */
- #include "actbl2.h" /* Acpi 2.0 table definitions */
- #endif /* __ACTBL_H__ */