diff options
Diffstat (limited to 'include/acpi/actbl.h')
| -rw-r--r-- | include/acpi/actbl.h | 278 | 
1 files changed, 118 insertions, 160 deletions
diff --git a/include/acpi/actbl.h b/include/acpi/actbl.h index b5cdcca444c..a46f406e1c9 100644 --- a/include/acpi/actbl.h +++ b/include/acpi/actbl.h @@ -44,27 +44,24 @@  #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 */ +#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 */  /*   * Common table types.  The base code can remain @@ -75,7 +72,6 @@  #define FACS_DESCRIPTOR         struct facs_descriptor_rev2  #define FADT_DESCRIPTOR         struct fadt_descriptor_rev2 -  #pragma pack(1)  /* @@ -84,45 +80,37 @@   * NOTE: The tables that are specific to ACPI versions (1.0, 2.0, etc.)   * are in separate files.   */ -struct rsdp_descriptor         /* Root System Descriptor Pointer */ -{ -	char                            signature [8];          /* ACPI signature, contains "RSD PTR " */ -	u8                              checksum;               /* To make sum of struct == 0 */ -	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 */ -	char                            reserved [3];           /* Reserved field must be 0 */ +struct rsdp_descriptor {	/* Root System Descriptor Pointer */ +	char signature[8];	/* ACPI signature, contains "RSD PTR " */ +	u8 checksum;		/* ACPI 1.0 checksum */ +	char oem_id[6];		/* OEM identification */ +	u8 revision;		/* Must be (0) for ACPI 1.0 or (2) for ACPI 2.0+ */ +	u32 rsdt_physical_address;	/* 32-bit physical address of the RSDT */ +	u32 length;		/* XSDT Length in bytes, including header */ +	u64 xsdt_physical_address;	/* 64-bit physical address of the XSDT */ +	u8 extended_checksum;	/* Checksum of entire table (ACPI 2.0) */ +	char reserved[3];	/* Reserved, must be zero */  }; - -struct acpi_common_facs          /* Common FACS for internal use */ -{ -	u32                             *global_lock; -	u64                             *firmware_waking_vector; -	u8                              vector_width; +struct acpi_common_facs {	/* Common FACS for internal use */ +	u32 *global_lock; +	u64 *firmware_waking_vector; +	u8 vector_width;  }; -  #define ACPI_TABLE_HEADER_DEF   /* ACPI common table header */ \ -	char                            signature [4];          /* ACPI signature (4 ASCII characters) */\ -	u32                             length;                 /* Length of table, in bytes, including header */\ +	char                            signature[4];           /* ASCII table signature */\ +	u32                             length;                 /* Length of table in bytes, including this header */\  	u8                              revision;               /* ACPI Specification minor version # */\  	u8                              checksum;               /* To make sum of entire table == 0 */\ -	char                            oem_id [6];             /* OEM identification */\ -	char                            oem_table_id [8];       /* OEM table identification */\ +	char                            oem_id[6];              /* ASCII OEM identification */\ +	char                            oem_table_id[8];        /* ASCII OEM table identification */\  	u32                             oem_revision;           /* OEM revision number */\ -	char                            asl_compiler_id [4];    /* ASL compiler vendor ID */\ -	u32                             asl_compiler_revision;  /* ASL compiler revision number */ - - -struct acpi_table_header         /* ACPI common table header */ -{ -	ACPI_TABLE_HEADER_DEF -}; +	char                            asl_compiler_id [4];    /* ASCII ASL compiler vendor ID */\ +	u32                             asl_compiler_revision;	/* ASL compiler version */ +struct acpi_table_header {	/* ACPI common table header */ +ACPI_TABLE_HEADER_DEF};  /*   * MADT values and structures @@ -135,12 +123,15 @@ struct acpi_table_header         /* ACPI common table header */  /* Master MADT */ -struct multiple_apic_table -{ -	ACPI_TABLE_HEADER_DEF                           /* ACPI common table header */ -	u32                             local_apic_address;     /* Physical address of local APIC */ -	u32                             PCATcompat      : 1;    /* A one indicates system also has dual 8259s */ -	u32                             reserved1       : 31; +struct multiple_apic_table { +	ACPI_TABLE_HEADER_DEF	/* ACPI common table header */ +	u32 local_apic_address;	/* Physical address of local APIC */ + +	/* Flags (32 bits) */ + +	u8 PCATcompat:1;	/* 00:    System also has dual 8259s */ +	 u8:7;			/* 01-07: Reserved, must be zero */ +	u8 reserved1[3];	/* 08-31: Reserved, must be zero */  };  /* Values for Type in APIC_HEADER_DEF */ @@ -154,7 +145,7 @@ struct multiple_apic_table  #define APIC_IO_SAPIC           6  #define APIC_LOCAL_SAPIC        7  #define APIC_XRUPT_SOURCE       8 -#define APIC_RESERVED           9           /* 9 and greater are reserved */ +#define APIC_RESERVED           9	/* 9 and greater are reserved */  /*   * MADT sub-structures (Follow MULTIPLE_APIC_DESCRIPTION_TABLE) @@ -163,10 +154,8 @@ struct multiple_apic_table  	u8                              type; \  	u8                              length; -struct apic_header -{ -	APIC_HEADER_DEF -}; +struct apic_header { +APIC_HEADER_DEF};  /* Values for MPS INTI flags */ @@ -180,117 +169,90 @@ struct apic_header  #define TRIGGER_RESERVED        2  #define TRIGGER_LEVEL           3 -/* Common flag definitions */ +/* Common flag definitions (16 bits each) */  #define MPS_INTI_FLAGS \ -	u16                             polarity        : 2;    /* Polarity of APIC I/O input signals */\ -	u16                             trigger_mode    : 2;    /* Trigger mode of APIC input signals */\ -	u16                             reserved1       : 12;   /* Reserved, must be zero */ +	u8                              polarity        : 2;    /* 00-01: Polarity of APIC I/O input signals */\ +	u8                              trigger_mode    : 2;    /* 02-03: Trigger mode of APIC input signals */\ +	u8                                              : 4;    /* 04-07: Reserved, must be zero */\ +	u8                              reserved1;	/* 08-15: Reserved, must be zero */  #define LOCAL_APIC_FLAGS \ -	u32                             processor_enabled: 1;   /* Processor is usable if set */\ -	u32                             reserved2       : 31;   /* Reserved, must be zero */ +	u8                              processor_enabled: 1;   /* 00:    Processor is usable if set */\ +	u8                                              : 7;    /* 01-07: Reserved, must be zero */\ +	u8                              reserved2;	/* 08-15: Reserved, must be zero */  /* Sub-structures for MADT */ -struct madt_processor_apic -{ -	APIC_HEADER_DEF -	u8                              processor_id;           /* ACPI processor id */ -	u8                              local_apic_id;          /* Processor's local APIC id */ -	LOCAL_APIC_FLAGS -}; +struct madt_processor_apic { +	APIC_HEADER_DEF u8 processor_id;	/* ACPI processor id */ +	u8 local_apic_id;	/* Processor's local APIC id */ + LOCAL_APIC_FLAGS}; -struct madt_io_apic -{ -	APIC_HEADER_DEF -	u8                              io_apic_id;             /* I/O APIC ID */ -	u8                              reserved;               /* Reserved - must be zero */ -	u32                             address;                /* APIC physical address */ -	u32                             interrupt;              /* Global system interrupt where INTI -			  * lines start */ +struct madt_io_apic { +	APIC_HEADER_DEF u8 io_apic_id;	/* I/O APIC ID */ +	u8 reserved;		/* Reserved - must be zero */ +	u32 address;		/* APIC physical address */ +	u32 interrupt;		/* Global system interrupt where INTI +				 * lines start */  }; -struct madt_interrupt_override -{ -	APIC_HEADER_DEF -	u8                              bus;                    /* 0 - ISA */ -	u8                              source;                 /* Interrupt source (IRQ) */ -	u32                             interrupt;              /* Global system interrupt */ -	MPS_INTI_FLAGS -}; +struct madt_interrupt_override { +	APIC_HEADER_DEF u8 bus;	/* 0 - ISA */ +	u8 source;		/* Interrupt source (IRQ) */ +	u32 interrupt;		/* Global system interrupt */ + MPS_INTI_FLAGS}; -struct madt_nmi_source -{ -	APIC_HEADER_DEF -	MPS_INTI_FLAGS -	u32                             interrupt;              /* Global system interrupt */ +struct madt_nmi_source { +	APIC_HEADER_DEF MPS_INTI_FLAGS u32 interrupt;	/* Global system interrupt */  }; -struct madt_local_apic_nmi -{ -	APIC_HEADER_DEF -	u8                              processor_id;           /* ACPI processor id */ -	MPS_INTI_FLAGS -	u8                              lint;                   /* LINTn to which NMI is connected */ +struct madt_local_apic_nmi { +	APIC_HEADER_DEF u8 processor_id;	/* ACPI processor id */ +	MPS_INTI_FLAGS u8 lint;	/* LINTn to which NMI is connected */  }; -struct madt_address_override -{ -	APIC_HEADER_DEF -	u16                             reserved;               /* Reserved - must be zero */ -	u64                             address;                /* APIC physical address */ +struct madt_address_override { +	APIC_HEADER_DEF u16 reserved;	/* Reserved, must be zero */ +	u64 address;		/* APIC physical address */  }; -struct madt_io_sapic -{ -	APIC_HEADER_DEF -	u8                              io_sapic_id;            /* I/O SAPIC ID */ -	u8                              reserved;               /* Reserved - must be zero */ -	u32                             interrupt_base;         /* Glocal interrupt for SAPIC start */ -	u64                             address;                /* SAPIC physical address */ +struct madt_io_sapic { +	APIC_HEADER_DEF u8 io_sapic_id;	/* I/O SAPIC ID */ +	u8 reserved;		/* Reserved, must be zero */ +	u32 interrupt_base;	/* Glocal interrupt for SAPIC start */ +	u64 address;		/* SAPIC physical address */  }; -struct madt_local_sapic -{ -	APIC_HEADER_DEF -	u8                              processor_id;           /* ACPI processor id */ -	u8                              local_sapic_id;         /* SAPIC ID */ -	u8                              local_sapic_eid;        /* SAPIC EID */ -	u8                              reserved [3];           /* Reserved - must be zero */ -	LOCAL_APIC_FLAGS -	u32                             processor_uID;          /* Numeric UID - ACPI 3.0 */ -	char                            processor_uIDstring[1]; /* String UID  - ACPI 3.0 */ +struct madt_local_sapic { +	APIC_HEADER_DEF u8 processor_id;	/* ACPI processor id */ +	u8 local_sapic_id;	/* SAPIC ID */ +	u8 local_sapic_eid;	/* SAPIC EID */ +	u8 reserved[3];		/* Reserved, must be zero */ +	 LOCAL_APIC_FLAGS u32 processor_uID;	/* Numeric UID - ACPI 3.0 */ +	char processor_uIDstring[1];	/* String UID  - ACPI 3.0 */  }; -struct madt_interrupt_source -{ -	APIC_HEADER_DEF -	MPS_INTI_FLAGS -	u8                              interrupt_type;         /* 1=PMI, 2=INIT, 3=corrected */ -	u8                              processor_id;           /* Processor ID */ -	u8                              processor_eid;          /* Processor EID */ -	u8                              io_sapic_vector;        /* Vector value for PMI interrupts */ -	u32                             interrupt;              /* Global system interrupt */ -	u32                             flags;                  /* Interrupt Source Flags */ +struct madt_interrupt_source { +	APIC_HEADER_DEF MPS_INTI_FLAGS u8 interrupt_type;	/* 1=PMI, 2=INIT, 3=corrected */ +	u8 processor_id;	/* Processor ID */ +	u8 processor_eid;	/* Processor EID */ +	u8 io_sapic_vector;	/* Vector value for PMI interrupts */ +	u32 interrupt;		/* Global system interrupt */ +	u32 flags;		/* Interrupt Source Flags */  }; -  /*   * Smart Battery   */ -struct smart_battery_table -{ -	ACPI_TABLE_HEADER_DEF -	u32                             warning_level; -	u32                             low_level; -	u32                             critical_level; +struct smart_battery_table { +	ACPI_TABLE_HEADER_DEF u32 warning_level; +	u32 low_level; +	u32 critical_level;  }; -  #pragma pack() -  /*   * ACPI Table information.  We save the table address, length,   * and type of memory allocation (mapped or allocated) for each @@ -314,39 +276,35 @@ struct smart_battery_table  /* Data about each known table type */ -struct acpi_table_support -{ -	char                            *name; -	char                            *signature; -	void                            **global_ptr; -	u8                              sig_length; -	u8                              flags; +struct acpi_table_support { +	char *name; +	char *signature; +	void **global_ptr; +	u8 sig_length; +	u8 flags;  }; -  /*   * Get the ACPI version-specific tables   */ -#include "actbl1.h"   /* Acpi 1.0 table definitions */ -#include "actbl2.h"   /* Acpi 2.0 table definitions */ +#include "actbl1.h"		/* Acpi 1.0 table definitions */ +#include "actbl2.h"		/* Acpi 2.0 table definitions */ -extern u8 acpi_fadt_is_v1; /* is set to 1 if FADT is revision 1, -			    * needed for certain workarounds */ +extern u8 acpi_fadt_is_v1;	/* is set to 1 if FADT is revision 1, +				 * needed for certain workarounds */  #pragma pack(1)  /*   * High performance timer   */ -struct hpet_table -{ -	ACPI_TABLE_HEADER_DEF -	u32                             hardware_id; -	struct acpi_generic_address     base_address; -	u8                              hpet_number; -	u16                             clock_tick; -	u8                              attributes; +struct hpet_table { +	ACPI_TABLE_HEADER_DEF u32 hardware_id; +	struct acpi_generic_address base_address; +	u8 hpet_number; +	u16 clock_tick; +	u8 attributes;  };  #pragma pack() -#endif /* __ACTBL_H__ */ +#endif				/* __ACTBL_H__ */  |