Merge branch 'acpica'
* acpica: (22 commits) ACPICA: Fix for ill-formed GUID strings for NFIT tables. ACPICA: acpihelp: Update for new NFIT table GUIDs. ACPICA: Update version to 20150515. ACPICA: ACPI 6.0: Add support for NFIT table. ACPICA: acpi_help: Add option to display all known/supported ACPI tables. ACPICA: iASL/disassembler - fix possible fault for -e option. ACPICA: ACPI 6.0: Add changes for DRTM table. ACPICA: ACPI 6.0: Add support for IORT table. ACPICA: ACPI 6.0: Add ACPI_SUB_PTR(). ACPICA: ACPI 6.0: Add changes for MADT table. ACPICA: Hardware: Fix a resource leak issue in acpi_hw_build_pci_list(). ACPICA: Dispatcher: Fix a resource leak issue in acpi_ds_auto_serialize_method(). ACPICA: ACPI 6.0: Add changes for LPIT table. ACPICA: ACPI 6.0: Add changes for FADT table. ACPICA: ACPI 6.0: Add support for WPBT table. ACPICA: iASL: Enhance detection of non-ascii or corrupted input files. ACPICA: Parser: Move a couple externals to the proper header. ACPICA: ACPI 6.0: Add support for XENV table. ACPICA: ACPI 6.0: Add support for new predefined names. ACPICA: ACPI 6.0: Add support for STAO table. ...
This commit is contained in:
commit
9695a98052
@ -231,7 +231,9 @@ void acpi_db_open_debug_file(char *name);
|
||||
acpi_status acpi_db_load_acpi_table(char *filename);
|
||||
|
||||
acpi_status
|
||||
acpi_db_get_table_from_file(char *filename, struct acpi_table_header **table);
|
||||
acpi_db_get_table_from_file(char *filename,
|
||||
struct acpi_table_header **table,
|
||||
u8 must_be_aml_table);
|
||||
|
||||
/*
|
||||
* dbhistry - debugger HISTORY command
|
||||
|
@ -352,11 +352,21 @@ struct acpi_package_info3 {
|
||||
u16 reserved;
|
||||
};
|
||||
|
||||
struct acpi_package_info4 {
|
||||
u8 type;
|
||||
u8 object_type1;
|
||||
u8 count1;
|
||||
u8 sub_object_types;
|
||||
u8 pkg_count;
|
||||
u16 reserved;
|
||||
};
|
||||
|
||||
union acpi_predefined_info {
|
||||
struct acpi_name_info info;
|
||||
struct acpi_package_info ret_info;
|
||||
struct acpi_package_info2 ret_info2;
|
||||
struct acpi_package_info3 ret_info3;
|
||||
struct acpi_package_info4 ret_info4;
|
||||
};
|
||||
|
||||
/* Reset to default packing */
|
||||
@ -1165,4 +1175,9 @@ struct ah_uuid {
|
||||
char *string;
|
||||
};
|
||||
|
||||
struct ah_table {
|
||||
char *signature;
|
||||
char *description;
|
||||
};
|
||||
|
||||
#endif /* __ACLOCAL_H__ */
|
||||
|
@ -70,6 +70,9 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
extern const u8 acpi_gbl_short_op_index[];
|
||||
extern const u8 acpi_gbl_long_op_index[];
|
||||
|
||||
/*
|
||||
* psxface - Parser external interfaces
|
||||
*/
|
||||
|
@ -105,6 +105,11 @@
|
||||
* count = 0 (optional)
|
||||
* (Used for _DLM)
|
||||
*
|
||||
* ACPI_PTYPE2_VAR_VAR: Variable number of subpackages, each of either a
|
||||
* constant or variable length. The subpackages are preceded by a
|
||||
* constant number of objects.
|
||||
* (Used for _LPI, _RDI)
|
||||
*
|
||||
* ACPI_PTYPE2_UUID_PAIR: Each subpackage is preceded by a UUID Buffer. The UUID
|
||||
* defines the format of the package. Zero-length parent package is
|
||||
* allowed.
|
||||
@ -123,7 +128,8 @@ enum acpi_return_package_types {
|
||||
ACPI_PTYPE2_MIN = 8,
|
||||
ACPI_PTYPE2_REV_FIXED = 9,
|
||||
ACPI_PTYPE2_FIX_VAR = 10,
|
||||
ACPI_PTYPE2_UUID_PAIR = 11
|
||||
ACPI_PTYPE2_VAR_VAR = 11,
|
||||
ACPI_PTYPE2_UUID_PAIR = 12
|
||||
};
|
||||
|
||||
/* Support macros for users of the predefined info table */
|
||||
@ -172,7 +178,7 @@ enum acpi_return_package_types {
|
||||
* These are the names that can actually be evaluated via acpi_evaluate_object.
|
||||
* Not present in this table are the following:
|
||||
*
|
||||
* 1) Predefined/Reserved names that are never evaluated via
|
||||
* 1) Predefined/Reserved names that are not usually evaluated via
|
||||
* acpi_evaluate_object:
|
||||
* _Lxx and _Exx GPE methods
|
||||
* _Qxx EC methods
|
||||
@ -361,6 +367,9 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
|
||||
METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (4 Int) */
|
||||
PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0, 0, 0),
|
||||
|
||||
{{"_BTH", METHOD_1ARGS(ACPI_TYPE_INTEGER), /* ACPI 6.0 */
|
||||
METHOD_NO_RETURN_VALUE}},
|
||||
|
||||
{{"_BTM", METHOD_1ARGS(ACPI_TYPE_INTEGER),
|
||||
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
@ -390,6 +399,9 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
|
||||
PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER, 0,
|
||||
0, 0, 0),
|
||||
|
||||
{{"_CR3", METHOD_0ARGS, /* ACPI 6.0 */
|
||||
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
{{"_CRS", METHOD_0ARGS,
|
||||
METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
|
||||
|
||||
@ -445,7 +457,7 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
|
||||
{{"_DOS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
|
||||
METHOD_NO_RETURN_VALUE}},
|
||||
|
||||
{{"_DSD", METHOD_0ARGS,
|
||||
{{"_DSD", METHOD_0ARGS, /* ACPI 6.0 */
|
||||
METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each: 1 Buf, 1 Pkg */
|
||||
PACKAGE_INFO(ACPI_PTYPE2_UUID_PAIR, ACPI_RTYPE_BUFFER, 1,
|
||||
ACPI_RTYPE_PACKAGE, 1, 0),
|
||||
@ -604,6 +616,12 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
|
||||
METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int(rev), n Pkg (2 Int) */
|
||||
PACKAGE_INFO(ACPI_PTYPE2_REV_FIXED, ACPI_RTYPE_INTEGER, 2, 0, 0, 0),
|
||||
|
||||
{{"_LPI", METHOD_0ARGS, /* ACPI 6.0 */
|
||||
METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (3 Int, n Pkg (10 Int/Buf) */
|
||||
PACKAGE_INFO(ACPI_PTYPE2_VAR_VAR, ACPI_RTYPE_INTEGER, 3,
|
||||
ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER | ACPI_RTYPE_STRING,
|
||||
10, 0),
|
||||
|
||||
{{"_MAT", METHOD_0ARGS,
|
||||
METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
|
||||
|
||||
@ -624,6 +642,9 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
|
||||
ACPI_TYPE_INTEGER),
|
||||
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
{{"_MTL", METHOD_0ARGS, /* ACPI 6.0 */
|
||||
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
{{"_NTT", METHOD_0ARGS,
|
||||
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
@ -716,6 +737,10 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
|
||||
METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
|
||||
PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
|
||||
|
||||
{{"_PRR", METHOD_0ARGS, /* ACPI 6.0 */
|
||||
METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Ref) */
|
||||
PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_REFERENCE, 1, 0, 0, 0),
|
||||
|
||||
{{"_PRS", METHOD_0ARGS,
|
||||
METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
|
||||
|
||||
@ -796,6 +821,11 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
|
||||
{{"_PXM", METHOD_0ARGS,
|
||||
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
{{"_RDI", METHOD_0ARGS, /* ACPI 6.0 */
|
||||
METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int, n Pkg (m Ref)) */
|
||||
PACKAGE_INFO(ACPI_PTYPE2_VAR_VAR, ACPI_RTYPE_INTEGER, 1,
|
||||
ACPI_RTYPE_REFERENCE, 0, 0),
|
||||
|
||||
{{"_REG", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
|
||||
METHOD_NO_RETURN_VALUE}},
|
||||
|
||||
@ -808,6 +838,9 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
|
||||
{{"_ROM", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
|
||||
METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
|
||||
|
||||
{{"_RST", METHOD_0ARGS, /* ACPI 6.0 */
|
||||
METHOD_NO_RETURN_VALUE}},
|
||||
|
||||
{{"_RTV", METHOD_0ARGS,
|
||||
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
@ -935,6 +968,9 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
|
||||
{{"_TDL", METHOD_0ARGS,
|
||||
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
{{"_TFP", METHOD_0ARGS, /* ACPI 6.0 */
|
||||
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
{{"_TIP", METHOD_1ARGS(ACPI_TYPE_INTEGER),
|
||||
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
@ -959,6 +995,9 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
|
||||
METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each 5 Int with count */
|
||||
PACKAGE_INFO(ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 5, 0, 0, 0),
|
||||
|
||||
{{"_TSN", METHOD_0ARGS, /* ACPI 6.0 */
|
||||
METHOD_RETURNS(ACPI_RTYPE_REFERENCE)}},
|
||||
|
||||
{{"_TSP", METHOD_0ARGS,
|
||||
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
|
@ -251,7 +251,7 @@ extern const u8 _acpi_ctype[];
|
||||
#define _ACPI_DI 0x04 /* '0'-'9' */
|
||||
#define _ACPI_LO 0x02 /* 'a'-'z' */
|
||||
#define _ACPI_PU 0x10 /* punctuation */
|
||||
#define _ACPI_SP 0x08 /* space */
|
||||
#define _ACPI_SP 0x08 /* space, tab, CR, LF, VT, FF */
|
||||
#define _ACPI_UP 0x01 /* 'A'-'Z' */
|
||||
#define _ACPI_XD 0x80 /* '0'-'9', 'A'-'F', 'a'-'f' */
|
||||
|
||||
|
@ -116,6 +116,7 @@ acpi_ds_auto_serialize_method(struct acpi_namespace_node *node,
|
||||
walk_state =
|
||||
acpi_ds_create_walk_state(node->owner_id, NULL, NULL, NULL);
|
||||
if (!walk_state) {
|
||||
acpi_ps_free_op(op);
|
||||
return_ACPI_STATUS(AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
@ -125,6 +126,7 @@ acpi_ds_auto_serialize_method(struct acpi_namespace_node *node,
|
||||
obj_desc->method.aml_length, NULL, 0);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
acpi_ds_delete_walk_state(walk_state);
|
||||
acpi_ps_free_op(op);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
||||
@ -133,9 +135,6 @@ acpi_ds_auto_serialize_method(struct acpi_namespace_node *node,
|
||||
/* Parse the method, scan for creation of named objects */
|
||||
|
||||
status = acpi_ps_parse_aml(walk_state);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
||||
acpi_ps_delete_parse_tree(op);
|
||||
return_ACPI_STATUS(status);
|
||||
|
@ -123,7 +123,7 @@ acpi_hw_derive_pci_id(struct acpi_pci_id *pci_id,
|
||||
acpi_handle root_pci_device, acpi_handle pci_region)
|
||||
{
|
||||
acpi_status status;
|
||||
struct acpi_pci_device *list_head = NULL;
|
||||
struct acpi_pci_device *list_head;
|
||||
|
||||
ACPI_FUNCTION_TRACE(hw_derive_pci_id);
|
||||
|
||||
@ -177,13 +177,13 @@ acpi_hw_build_pci_list(acpi_handle root_pci_device,
|
||||
acpi_handle parent_device;
|
||||
acpi_status status;
|
||||
struct acpi_pci_device *list_element;
|
||||
struct acpi_pci_device *list_head = NULL;
|
||||
|
||||
/*
|
||||
* Ascend namespace branch until the root_pci_device is reached, building
|
||||
* a list of device nodes. Loop will exit when either the PCI device is
|
||||
* found, or the root of the namespace is reached.
|
||||
*/
|
||||
*return_list_head = NULL;
|
||||
current_device = pci_region;
|
||||
while (1) {
|
||||
status = acpi_get_parent(current_device, &parent_device);
|
||||
@ -198,7 +198,6 @@ acpi_hw_build_pci_list(acpi_handle root_pci_device,
|
||||
/* Finished when we reach the PCI root device (PNP0A03 or PNP0A08) */
|
||||
|
||||
if (parent_device == root_pci_device) {
|
||||
*return_list_head = list_head;
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
@ -213,9 +212,9 @@ acpi_hw_build_pci_list(acpi_handle root_pci_device,
|
||||
|
||||
/* Put new element at the head of the list */
|
||||
|
||||
list_element->next = list_head;
|
||||
list_element->next = *return_list_head;
|
||||
list_element->device = parent_device;
|
||||
list_head = list_element;
|
||||
*return_list_head = list_element;
|
||||
|
||||
current_device = parent_device;
|
||||
}
|
||||
|
@ -316,6 +316,13 @@ acpi_ns_check_package(struct acpi_evaluate_info *info,
|
||||
acpi_ns_check_package_list(info, package, elements, count);
|
||||
break;
|
||||
|
||||
case ACPI_PTYPE2_VAR_VAR:
|
||||
/*
|
||||
* Returns a variable list of packages, each with a variable list
|
||||
* of objects.
|
||||
*/
|
||||
break;
|
||||
|
||||
case ACPI_PTYPE2_UUID_PAIR:
|
||||
|
||||
/* The package must contain pairs of (UUID + type) */
|
||||
@ -487,6 +494,12 @@ acpi_ns_check_package_list(struct acpi_evaluate_info *info,
|
||||
}
|
||||
break;
|
||||
|
||||
case ACPI_PTYPE2_VAR_VAR:
|
||||
/*
|
||||
* Each subpackage has a fixed or variable number of elements
|
||||
*/
|
||||
break;
|
||||
|
||||
case ACPI_PTYPE2_FIXED:
|
||||
|
||||
/* Each subpackage has a fixed length */
|
||||
|
@ -497,10 +497,10 @@ acpi_ns_remove_null_elements(struct acpi_evaluate_info *info,
|
||||
case ACPI_PTYPE2_MIN:
|
||||
case ACPI_PTYPE2_REV_FIXED:
|
||||
case ACPI_PTYPE2_FIX_VAR:
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
case ACPI_PTYPE2_VAR_VAR:
|
||||
case ACPI_PTYPE1_FIXED:
|
||||
case ACPI_PTYPE1_OPTION:
|
||||
return;
|
||||
|
@ -50,9 +50,6 @@
|
||||
#define _COMPONENT ACPI_PARSER
|
||||
ACPI_MODULE_NAME("psopinfo")
|
||||
|
||||
extern const u8 acpi_gbl_short_op_index[];
|
||||
extern const u8 acpi_gbl_long_op_index[];
|
||||
|
||||
static const u8 acpi_gbl_argument_count[] =
|
||||
{ 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 6 };
|
||||
|
||||
|
@ -198,11 +198,8 @@ acpi_ut_read_table(FILE * fp,
|
||||
table_header.length, file_size);
|
||||
|
||||
#ifdef ACPI_ASL_COMPILER
|
||||
status = fl_check_for_ascii(fp, NULL, FALSE);
|
||||
if (ACPI_SUCCESS(status)) {
|
||||
acpi_os_printf
|
||||
("File appears to be ASCII only, must be binary\n");
|
||||
}
|
||||
acpi_os_printf("File is corrupt or is ASCII text -- "
|
||||
"it must be a binary file\n");
|
||||
#endif
|
||||
return (AE_BAD_HEADER);
|
||||
}
|
||||
@ -315,7 +312,7 @@ acpi_ut_read_table_from_file(char *filename, struct acpi_table_header ** table)
|
||||
/* Get the entire file */
|
||||
|
||||
fprintf(stderr,
|
||||
"Loading Acpi table from file %10s - Length %.8u (%06X)\n",
|
||||
"Reading ACPI table from file %10s - Length %.8u (0x%06X)\n",
|
||||
filename, file_size, file_size);
|
||||
|
||||
status = acpi_ut_read_table(file, table, &table_length);
|
||||
|
@ -75,9 +75,9 @@ char acpi_ut_hex_to_ascii_char(u64 integer, u32 position)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ut_hex_char_to_value
|
||||
* FUNCTION: acpi_ut_ascii_char_to_hex
|
||||
*
|
||||
* PARAMETERS: ascii_char - Hex character in Ascii
|
||||
* PARAMETERS: hex_char - Hex character in Ascii
|
||||
*
|
||||
* RETURN: The binary value of the ascii/hex character
|
||||
*
|
||||
|
@ -107,9 +107,16 @@ acpi_exception(const char *module_name,
|
||||
va_list arg_list;
|
||||
|
||||
ACPI_MSG_REDIRECT_BEGIN;
|
||||
acpi_os_printf(ACPI_MSG_EXCEPTION "%s, ",
|
||||
acpi_format_exception(status));
|
||||
|
||||
/* For AE_OK, just print the message */
|
||||
|
||||
if (ACPI_SUCCESS(status)) {
|
||||
acpi_os_printf(ACPI_MSG_EXCEPTION);
|
||||
|
||||
} else {
|
||||
acpi_os_printf(ACPI_MSG_EXCEPTION "%s, ",
|
||||
acpi_format_exception(status));
|
||||
}
|
||||
va_start(arg_list, format);
|
||||
acpi_os_vprintf(format, arg_list);
|
||||
ACPI_MSG_SUFFIX;
|
||||
|
@ -46,7 +46,7 @@
|
||||
|
||||
/* Current ACPICA subsystem version in YYYYMMDD format */
|
||||
|
||||
#define ACPI_CA_VERSION 0x20150410
|
||||
#define ACPI_CA_VERSION 0x20150515
|
||||
|
||||
#include <acpi/acconfig.h>
|
||||
#include <acpi/actypes.h>
|
||||
|
@ -284,6 +284,7 @@ struct acpi_table_fadt {
|
||||
struct acpi_generic_address xgpe1_block; /* 64-bit Extended General Purpose Event 1 Reg Blk address */
|
||||
struct acpi_generic_address sleep_control; /* 64-bit Sleep Control register (ACPI 5.0) */
|
||||
struct acpi_generic_address sleep_status; /* 64-bit Sleep Status register (ACPI 5.0) */
|
||||
u64 hypervisor_id; /* Hypervisor Vendor ID (ACPI 6.0) */
|
||||
};
|
||||
|
||||
/* Masks for FADT IA-PC Boot Architecture Flags (boot_flags) [Vx]=Introduced in this FADT revision */
|
||||
@ -341,7 +342,7 @@ enum acpi_preferred_pm_profiles {
|
||||
PM_TABLET = 8
|
||||
};
|
||||
|
||||
/* Values for sleep_status and sleep_control registers (V5 FADT) */
|
||||
/* Values for sleep_status and sleep_control registers (V5+ FADT) */
|
||||
|
||||
#define ACPI_X_WAKE_STATUS 0x80
|
||||
#define ACPI_X_SLEEP_TYPE_MASK 0x1C
|
||||
@ -398,15 +399,17 @@ struct acpi_table_desc {
|
||||
* FADT is the bottom line as to what the version really is.
|
||||
*
|
||||
* For reference, the values below are as follows:
|
||||
* FADT V1 size: 0x074
|
||||
* FADT V2 size: 0x084
|
||||
* FADT V3 size: 0x0F4
|
||||
* FADT V4 size: 0x0F4
|
||||
* FADT V5 size: 0x10C
|
||||
* FADT V1 size: 0x074
|
||||
* FADT V2 size: 0x084
|
||||
* FADT V3 size: 0x0F4
|
||||
* FADT V4 size: 0x0F4
|
||||
* FADT V5 size: 0x10C
|
||||
* FADT V6 size: 0x114
|
||||
*/
|
||||
#define ACPI_FADT_V1_SIZE (u32) (ACPI_FADT_OFFSET (flags) + 4)
|
||||
#define ACPI_FADT_V2_SIZE (u32) (ACPI_FADT_OFFSET (minor_revision) + 1)
|
||||
#define ACPI_FADT_V3_SIZE (u32) (ACPI_FADT_OFFSET (sleep_control))
|
||||
#define ACPI_FADT_V5_SIZE (u32) (sizeof (struct acpi_table_fadt))
|
||||
#define ACPI_FADT_V5_SIZE (u32) (ACPI_FADT_OFFSET (hypervisor_id))
|
||||
#define ACPI_FADT_V6_SIZE (u32) (sizeof (struct acpi_table_fadt))
|
||||
|
||||
#endif /* __ACTBL_H__ */
|
||||
|
@ -71,6 +71,7 @@
|
||||
#define ACPI_SIG_SBST "SBST" /* Smart Battery Specification Table */
|
||||
#define ACPI_SIG_SLIT "SLIT" /* System Locality Distance Information Table */
|
||||
#define ACPI_SIG_SRAT "SRAT" /* System Resource Affinity Table */
|
||||
#define ACPI_SIG_NFIT "NFIT" /* NVDIMM Firmware Interface Table */
|
||||
|
||||
/*
|
||||
* All tables must be byte-packed to match the ACPI specification, since
|
||||
@ -673,7 +674,8 @@ enum acpi_madt_type {
|
||||
ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR = 12,
|
||||
ACPI_MADT_TYPE_GENERIC_MSI_FRAME = 13,
|
||||
ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14,
|
||||
ACPI_MADT_TYPE_RESERVED = 15 /* 15 and greater are reserved */
|
||||
ACPI_MADT_TYPE_GENERIC_TRANSLATOR = 15,
|
||||
ACPI_MADT_TYPE_RESERVED = 16 /* 16 and greater are reserved */
|
||||
};
|
||||
|
||||
/*
|
||||
@ -794,7 +796,7 @@ struct acpi_madt_local_x2apic_nmi {
|
||||
u8 reserved[3]; /* reserved - must be zero */
|
||||
};
|
||||
|
||||
/* 11: Generic Interrupt (ACPI 5.0) */
|
||||
/* 11: Generic Interrupt (ACPI 5.0 + ACPI 6.0 changes) */
|
||||
|
||||
struct acpi_madt_generic_interrupt {
|
||||
struct acpi_subtable_header header;
|
||||
@ -811,6 +813,8 @@ struct acpi_madt_generic_interrupt {
|
||||
u32 vgic_interrupt;
|
||||
u64 gicr_base_address;
|
||||
u64 arm_mpidr;
|
||||
u8 efficiency_class;
|
||||
u8 reserved2[3];
|
||||
};
|
||||
|
||||
/* Masks for Flags field above */
|
||||
@ -819,7 +823,7 @@ struct acpi_madt_generic_interrupt {
|
||||
#define ACPI_MADT_PERFORMANCE_IRQ_MODE (1<<1) /* 01: Performance Interrupt Mode */
|
||||
#define ACPI_MADT_VGIC_IRQ_MODE (1<<2) /* 02: VGIC Maintenance Interrupt mode */
|
||||
|
||||
/* 12: Generic Distributor (ACPI 5.0) */
|
||||
/* 12: Generic Distributor (ACPI 5.0 + ACPI 6.0 changes) */
|
||||
|
||||
struct acpi_madt_generic_distributor {
|
||||
struct acpi_subtable_header header;
|
||||
@ -827,7 +831,8 @@ struct acpi_madt_generic_distributor {
|
||||
u32 gic_id;
|
||||
u64 base_address;
|
||||
u32 global_irq_base;
|
||||
u32 reserved2; /* reserved - must be zero */
|
||||
u8 version;
|
||||
u8 reserved2[3]; /* reserved - must be zero */
|
||||
};
|
||||
|
||||
/* 13: Generic MSI Frame (ACPI 5.1) */
|
||||
@ -855,6 +860,16 @@ struct acpi_madt_generic_redistributor {
|
||||
u32 length;
|
||||
};
|
||||
|
||||
/* 15: Generic Translator (ACPI 6.0) */
|
||||
|
||||
struct acpi_madt_generic_translator {
|
||||
struct acpi_subtable_header header;
|
||||
u16 reserved; /* reserved - must be zero */
|
||||
u32 translation_id;
|
||||
u64 base_address;
|
||||
u32 reserved2;
|
||||
};
|
||||
|
||||
/*
|
||||
* Common flags fields for MADT subtables
|
||||
*/
|
||||
@ -906,6 +921,159 @@ struct acpi_msct_proximity {
|
||||
u64 memory_capacity; /* In bytes */
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* NFIT - NVDIMM Interface Table (ACPI 6.0)
|
||||
* Version 1
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
struct acpi_table_nfit {
|
||||
struct acpi_table_header header; /* Common ACPI table header */
|
||||
u32 reserved; /* Reserved, must be zero */
|
||||
};
|
||||
|
||||
/* Subtable header for NFIT */
|
||||
|
||||
struct acpi_nfit_header {
|
||||
u16 type;
|
||||
u16 length;
|
||||
};
|
||||
|
||||
/* Values for subtable type in struct acpi_nfit_header */
|
||||
|
||||
enum acpi_nfit_type {
|
||||
ACPI_NFIT_TYPE_SYSTEM_ADDRESS = 0,
|
||||
ACPI_NFIT_TYPE_MEMORY_MAP = 1,
|
||||
ACPI_NFIT_TYPE_INTERLEAVE = 2,
|
||||
ACPI_NFIT_TYPE_SMBIOS = 3,
|
||||
ACPI_NFIT_TYPE_CONTROL_REGION = 4,
|
||||
ACPI_NFIT_TYPE_DATA_REGION = 5,
|
||||
ACPI_NFIT_TYPE_FLUSH_ADDRESS = 6,
|
||||
ACPI_NFIT_TYPE_RESERVED = 7 /* 7 and greater are reserved */
|
||||
};
|
||||
|
||||
/*
|
||||
* NFIT Subtables
|
||||
*/
|
||||
|
||||
/* 0: System Physical Address Range Structure */
|
||||
|
||||
struct acpi_nfit_system_address {
|
||||
struct acpi_nfit_header header;
|
||||
u16 range_index;
|
||||
u16 flags;
|
||||
u32 reserved; /* Reseved, must be zero */
|
||||
u32 proximity_domain;
|
||||
u8 range_guid[16];
|
||||
u64 address;
|
||||
u64 length;
|
||||
u64 memory_mapping;
|
||||
};
|
||||
|
||||
/* Flags */
|
||||
|
||||
#define ACPI_NFIT_ADD_ONLINE_ONLY (1) /* 00: Add/Online Operation Only */
|
||||
#define ACPI_NFIT_PROXIMITY_VALID (1<<1) /* 01: Proximity Domain Valid */
|
||||
|
||||
/* Range Type GUIDs appear in the include/acuuid.h file */
|
||||
|
||||
/* 1: Memory Device to System Address Range Map Structure */
|
||||
|
||||
struct acpi_nfit_memory_map {
|
||||
struct acpi_nfit_header header;
|
||||
u32 device_handle;
|
||||
u16 physical_id;
|
||||
u16 region_id;
|
||||
u16 range_index;
|
||||
u16 region_index;
|
||||
u64 region_size;
|
||||
u64 region_offset;
|
||||
u64 address;
|
||||
u16 interleave_index;
|
||||
u16 interleave_ways;
|
||||
u16 flags;
|
||||
u16 reserved; /* Reserved, must be zero */
|
||||
};
|
||||
|
||||
/* Flags */
|
||||
|
||||
#define ACPI_NFIT_MEM_SAVE_FAILED (1) /* 00: Last SAVE to Memory Device failed */
|
||||
#define ACPI_NFIT_MEM_RESTORE_FAILED (1<<1) /* 01: Last RESTORE from Memory Device failed */
|
||||
#define ACPI_NFIT_MEM_FLUSH_FAILED (1<<2) /* 02: Platform flush failed */
|
||||
#define ACPI_NFIT_MEM_ARMED (1<<3) /* 03: Memory Device observed to be not armed */
|
||||
#define ACPI_NFIT_MEM_HEALTH_OBSERVED (1<<4) /* 04: Memory Device observed SMART/health events */
|
||||
#define ACPI_NFIT_MEM_HEALTH_ENABLED (1<<5) /* 05: SMART/health events enabled */
|
||||
|
||||
/* 2: Interleave Structure */
|
||||
|
||||
struct acpi_nfit_interleave {
|
||||
struct acpi_nfit_header header;
|
||||
u16 interleave_index;
|
||||
u16 reserved; /* Reserved, must be zero */
|
||||
u32 line_count;
|
||||
u32 line_size;
|
||||
u32 line_offset[1]; /* Variable length */
|
||||
};
|
||||
|
||||
/* 3: SMBIOS Management Information Structure */
|
||||
|
||||
struct acpi_nfit_smbios {
|
||||
struct acpi_nfit_header header;
|
||||
u32 reserved; /* Reserved, must be zero */
|
||||
u8 data[1]; /* Variable length */
|
||||
};
|
||||
|
||||
/* 4: NVDIMM Control Region Structure */
|
||||
|
||||
struct acpi_nfit_control_region {
|
||||
struct acpi_nfit_header header;
|
||||
u16 region_index;
|
||||
u16 vendor_id;
|
||||
u16 device_id;
|
||||
u16 revision_id;
|
||||
u16 subsystem_vendor_id;
|
||||
u16 subsystem_device_id;
|
||||
u16 subsystem_revision_id;
|
||||
u8 reserved[6]; /* Reserved, must be zero */
|
||||
u32 serial_number;
|
||||
u16 code;
|
||||
u16 windows;
|
||||
u64 window_size;
|
||||
u64 command_offset;
|
||||
u64 command_size;
|
||||
u64 status_offset;
|
||||
u64 status_size;
|
||||
u16 flags;
|
||||
u8 reserved1[6]; /* Reserved, must be zero */
|
||||
};
|
||||
|
||||
/* Flags */
|
||||
|
||||
#define ACPI_NFIT_CONTROL_BUFFERED (1) /* Block Data Windows implementation is buffered */
|
||||
|
||||
/* 5: NVDIMM Block Data Window Region Structure */
|
||||
|
||||
struct acpi_nfit_data_region {
|
||||
struct acpi_nfit_header header;
|
||||
u16 region_index;
|
||||
u16 windows;
|
||||
u64 offset;
|
||||
u64 size;
|
||||
u64 capacity;
|
||||
u64 start_address;
|
||||
};
|
||||
|
||||
/* 6: Flush Hint Address Structure */
|
||||
|
||||
struct acpi_nfit_flush_address {
|
||||
struct acpi_nfit_header header;
|
||||
u32 device_handle;
|
||||
u16 hint_count;
|
||||
u8 reserved[6]; /* Reserved, must be zero */
|
||||
u64 hint_address[1]; /* Variable length */
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* SBST - Smart Battery Specification Table
|
||||
|
@ -69,6 +69,7 @@
|
||||
#define ACPI_SIG_DMAR "DMAR" /* DMA Remapping table */
|
||||
#define ACPI_SIG_HPET "HPET" /* High Precision Event Timer table */
|
||||
#define ACPI_SIG_IBFT "IBFT" /* iSCSI Boot Firmware Table */
|
||||
#define ACPI_SIG_IORT "IORT" /* IO Remapping Table */
|
||||
#define ACPI_SIG_IVRS "IVRS" /* I/O Virtualization Reporting Structure */
|
||||
#define ACPI_SIG_LPIT "LPIT" /* Low Power Idle Table */
|
||||
#define ACPI_SIG_MCFG "MCFG" /* PCI Memory Mapped Configuration table */
|
||||
@ -648,6 +649,131 @@ struct acpi_ibft_target {
|
||||
u16 reverse_chap_secret_offset;
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* IORT - IO Remapping Table
|
||||
*
|
||||
* Conforms to "IO Remapping Table System Software on ARM Platforms",
|
||||
* Document number: ARM DEN 0049A, 2015
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
struct acpi_table_iort {
|
||||
struct acpi_table_header header;
|
||||
u32 node_count;
|
||||
u32 node_offset;
|
||||
u32 reserved;
|
||||
};
|
||||
|
||||
/*
|
||||
* IORT subtables
|
||||
*/
|
||||
struct acpi_iort_node {
|
||||
u8 type;
|
||||
u16 length;
|
||||
u8 revision;
|
||||
u32 reserved;
|
||||
u32 mapping_count;
|
||||
u32 mapping_offset;
|
||||
char node_data[1];
|
||||
};
|
||||
|
||||
/* Values for subtable Type above */
|
||||
|
||||
enum acpi_iort_node_type {
|
||||
ACPI_IORT_NODE_ITS_GROUP = 0x00,
|
||||
ACPI_IORT_NODE_NAMED_COMPONENT = 0x01,
|
||||
ACPI_IORT_NODE_PCI_ROOT_COMPLEX = 0x02,
|
||||
ACPI_IORT_NODE_SMMU = 0x03
|
||||
};
|
||||
|
||||
struct acpi_iort_id_mapping {
|
||||
u32 input_base; /* Lowest value in input range */
|
||||
u32 id_count; /* Number of IDs */
|
||||
u32 output_base; /* Lowest value in output range */
|
||||
u32 output_reference; /* A reference to the output node */
|
||||
u32 flags;
|
||||
};
|
||||
|
||||
/* Masks for Flags field above for IORT subtable */
|
||||
|
||||
#define ACPI_IORT_ID_SINGLE_MAPPING (1)
|
||||
|
||||
struct acpi_iort_memory_access {
|
||||
u32 cache_coherency;
|
||||
u8 hints;
|
||||
u16 reserved;
|
||||
u8 memory_flags;
|
||||
};
|
||||
|
||||
/* Values for cache_coherency field above */
|
||||
|
||||
#define ACPI_IORT_NODE_COHERENT 0x00000001 /* The device node is fully coherent */
|
||||
#define ACPI_IORT_NODE_NOT_COHERENT 0x00000000 /* The device node is not coherent */
|
||||
|
||||
/* Masks for Hints field above */
|
||||
|
||||
#define ACPI_IORT_HT_TRANSIENT (1)
|
||||
#define ACPI_IORT_HT_WRITE (1<<1)
|
||||
#define ACPI_IORT_HT_READ (1<<2)
|
||||
#define ACPI_IORT_HT_OVERRIDE (1<<3)
|
||||
|
||||
/* Masks for memory_flags field above */
|
||||
|
||||
#define ACPI_IORT_MF_COHERENCY (1)
|
||||
#define ACPI_IORT_MF_ATTRIBUTES (1<<1)
|
||||
|
||||
/*
|
||||
* IORT node specific subtables
|
||||
*/
|
||||
struct acpi_iort_its_group {
|
||||
u32 its_count;
|
||||
u32 identifiers[1]; /* GIC ITS identifier arrary */
|
||||
};
|
||||
|
||||
struct acpi_iort_named_component {
|
||||
u32 node_flags;
|
||||
u64 memory_properties; /* Memory access properties */
|
||||
u8 memory_address_limit; /* Memory address size limit */
|
||||
char device_name[1]; /* Path of namespace object */
|
||||
};
|
||||
|
||||
struct acpi_iort_root_complex {
|
||||
u64 memory_properties; /* Memory access properties */
|
||||
u32 ats_attribute;
|
||||
u32 pci_segment_number;
|
||||
};
|
||||
|
||||
/* Values for ats_attribute field above */
|
||||
|
||||
#define ACPI_IORT_ATS_SUPPORTED 0x00000001 /* The root complex supports ATS */
|
||||
#define ACPI_IORT_ATS_UNSUPPORTED 0x00000000 /* The root complex doesn't support ATS */
|
||||
|
||||
struct acpi_iort_smmu {
|
||||
u64 base_address; /* SMMU base address */
|
||||
u64 span; /* Length of memory range */
|
||||
u32 model;
|
||||
u32 flags;
|
||||
u32 global_interrupt_offset;
|
||||
u32 context_interrupt_count;
|
||||
u32 context_interrupt_offset;
|
||||
u32 pmu_interrupt_count;
|
||||
u32 pmu_interrupt_offset;
|
||||
u64 interrupts[1]; /* Interrupt array */
|
||||
};
|
||||
|
||||
/* Values for Model field above */
|
||||
|
||||
#define ACPI_IORT_SMMU_V1 0x00000000 /* Generic SMMUv1 */
|
||||
#define ACPI_IORT_SMMU_V2 0x00000001 /* Generic SMMUv2 */
|
||||
#define ACPI_IORT_SMMU_CORELINK_MMU400 0x00000002 /* ARM Corelink MMU-400 */
|
||||
#define ACPI_IORT_SMMU_CORELINK_MMU500 0x00000003 /* ARM Corelink MMU-500 */
|
||||
|
||||
/* Masks for Flags field above */
|
||||
|
||||
#define ACPI_IORT_SMMU_DVM_SUPPORTED (1)
|
||||
#define ACPI_IORT_SMMU_COHERENT_WALK (1<<1)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* IVRS - I/O Virtualization Reporting Structure
|
||||
@ -824,7 +950,7 @@ struct acpi_ivrs_memory {
|
||||
*
|
||||
* LPIT - Low Power Idle Table
|
||||
*
|
||||
* Conforms to "ACPI Low Power Idle Table (LPIT) and _LPD Proposal (DRAFT)"
|
||||
* Conforms to "ACPI Low Power Idle Table (LPIT)" July 2014.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -846,8 +972,7 @@ struct acpi_lpit_header {
|
||||
|
||||
enum acpi_lpit_type {
|
||||
ACPI_LPIT_TYPE_NATIVE_CSTATE = 0x00,
|
||||
ACPI_LPIT_TYPE_SIMPLE_IO = 0x01,
|
||||
ACPI_LPIT_TYPE_RESERVED = 0x02 /* 2 and above are reserved */
|
||||
ACPI_LPIT_TYPE_RESERVED = 0x01 /* 1 and above are reserved */
|
||||
};
|
||||
|
||||
/* Masks for Flags field above */
|
||||
@ -870,21 +995,6 @@ struct acpi_lpit_native {
|
||||
u64 counter_frequency;
|
||||
};
|
||||
|
||||
/* 0x01: Simple I/O based LPI structure */
|
||||
|
||||
struct acpi_lpit_io {
|
||||
struct acpi_lpit_header header;
|
||||
struct acpi_generic_address entry_trigger;
|
||||
u32 trigger_action;
|
||||
u64 trigger_value;
|
||||
u64 trigger_mask;
|
||||
struct acpi_generic_address minimum_idle_state;
|
||||
u32 residency;
|
||||
u32 latency;
|
||||
struct acpi_generic_address residency_counter;
|
||||
u64 counter_frequency;
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* MCFG - PCI Memory Mapped Configuration table and subtable
|
||||
|
@ -68,7 +68,10 @@
|
||||
#define ACPI_SIG_PCCT "PCCT" /* Platform Communications Channel Table */
|
||||
#define ACPI_SIG_PMTT "PMTT" /* Platform Memory Topology Table */
|
||||
#define ACPI_SIG_RASF "RASF" /* RAS Feature table */
|
||||
#define ACPI_SIG_STAO "STAO" /* Status Override table */
|
||||
#define ACPI_SIG_TPM2 "TPM2" /* Trusted Platform Module 2.0 H/W interface table */
|
||||
#define ACPI_SIG_WPBT "WPBT" /* Windows Platform Binary Table */
|
||||
#define ACPI_SIG_XENV "XENV" /* Xen Environment table */
|
||||
|
||||
#define ACPI_SIG_S3PT "S3PT" /* S3 Performance (sub)Table */
|
||||
#define ACPI_SIG_PCCS "PCC" /* PCC Shared Memory Region */
|
||||
@ -77,7 +80,6 @@
|
||||
|
||||
#define ACPI_SIG_MATR "MATR" /* Memory Address Translation Table */
|
||||
#define ACPI_SIG_MSDM "MSDM" /* Microsoft Data Management Table */
|
||||
#define ACPI_SIG_WPBT "WPBT" /* Windows Platform Binary Table */
|
||||
|
||||
/*
|
||||
* All tables must be byte-packed to match the ACPI specification, since
|
||||
@ -117,6 +119,8 @@ struct acpi_table_bgrt {
|
||||
/*******************************************************************************
|
||||
*
|
||||
* DRTM - Dynamic Root of Trust for Measurement table
|
||||
* Conforms to "TCG D-RTM Architecture" June 17 2013, Version 1.0.0
|
||||
* Table version 1
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -133,22 +137,40 @@ struct acpi_table_drtm {
|
||||
u32 flags;
|
||||
};
|
||||
|
||||
/* 1) Validated Tables List */
|
||||
/* Flag Definitions for above */
|
||||
|
||||
struct acpi_drtm_vtl_list {
|
||||
u32 validated_table_list_count;
|
||||
#define ACPI_DRTM_ACCESS_ALLOWED (1)
|
||||
#define ACPI_DRTM_ENABLE_GAP_CODE (1<<1)
|
||||
#define ACPI_DRTM_INCOMPLETE_MEASUREMENTS (1<<2)
|
||||
#define ACPI_DRTM_AUTHORITY_ORDER (1<<3)
|
||||
|
||||
/* 1) Validated Tables List (64-bit addresses) */
|
||||
|
||||
struct acpi_drtm_vtable_list {
|
||||
u32 validated_table_count;
|
||||
u64 validated_tables[1];
|
||||
};
|
||||
|
||||
/* 2) Resources List */
|
||||
/* 2) Resources List (of Resource Descriptors) */
|
||||
|
||||
/* Resource Descriptor */
|
||||
|
||||
struct acpi_drtm_resource {
|
||||
u8 size[7];
|
||||
u8 type;
|
||||
u64 address;
|
||||
};
|
||||
|
||||
struct acpi_drtm_resource_list {
|
||||
u32 resource_list_count;
|
||||
u32 resource_count;
|
||||
struct acpi_drtm_resource resources[1];
|
||||
};
|
||||
|
||||
/* 3) Platform-specific Identifiers List */
|
||||
|
||||
struct acpi_drtm_id_list {
|
||||
u32 id_list_count;
|
||||
struct acpi_drtm_dps_id {
|
||||
u32 dps_id_length;
|
||||
u8 dps_id[16];
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
@ -683,6 +705,21 @@ enum acpi_rasf_status {
|
||||
#define ACPI_RASF_ERROR (1<<2)
|
||||
#define ACPI_RASF_STATUS (0x1F<<3)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* STAO - Status Override Table (_STA override) - ACPI 6.0
|
||||
* Version 1
|
||||
*
|
||||
* Conforms to "ACPI Specification for Status Override Table"
|
||||
* 6 January 2015
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
struct acpi_table_stao {
|
||||
struct acpi_table_header header; /* Common ACPI table header */
|
||||
u8 ignore_uart;
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* TPM2 - Trusted Platform Module (TPM) 2.0 Hardware Interface Table
|
||||
@ -713,6 +750,41 @@ struct acpi_tpm2_control {
|
||||
u64 response_address;
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* WPBT - Windows Platform Environment Table (ACPI 6.0)
|
||||
* Version 1
|
||||
*
|
||||
* Conforms to "Windows Platform Binary Table (WPBT)" 29 November 2011
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
struct acpi_table_wpbt {
|
||||
struct acpi_table_header header; /* Common ACPI table header */
|
||||
u32 handoff_size;
|
||||
u64 handoff_address;
|
||||
u8 layout;
|
||||
u8 type;
|
||||
u16 arguments_length;
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* XENV - Xen Environment Table (ACPI 6.0)
|
||||
* Version 1
|
||||
*
|
||||
* Conforms to "ACPI Specification for Xen Environment Table" 4 January 2015
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
struct acpi_table_xenv {
|
||||
struct acpi_table_header header; /* Common ACPI table header */
|
||||
u64 grant_table_address;
|
||||
u64 grant_table_size;
|
||||
u32 event_interrupt;
|
||||
u8 event_flags;
|
||||
};
|
||||
|
||||
/* Reset to default packing */
|
||||
|
||||
#pragma pack()
|
||||
|
@ -471,11 +471,6 @@ typedef u8 acpi_owner_id;
|
||||
|
||||
#define ACPI_INTEGER_BIT_SIZE 64
|
||||
#define ACPI_MAX_DECIMAL_DIGITS 20 /* 2^64 = 18,446,744,073,709,551,616 */
|
||||
|
||||
#if ACPI_MACHINE_WIDTH == 64
|
||||
#define ACPI_USE_NATIVE_DIVIDE /* Use compiler native 64-bit divide */
|
||||
#endif
|
||||
|
||||
#define ACPI_MAX64_DECIMAL_DIGITS 20
|
||||
#define ACPI_MAX32_DECIMAL_DIGITS 10
|
||||
#define ACPI_MAX16_DECIMAL_DIGITS 5
|
||||
@ -530,6 +525,7 @@ typedef u64 acpi_integer;
|
||||
#define ACPI_CAST_PTR(t, p) ((t *) (acpi_uintptr_t) (p))
|
||||
#define ACPI_CAST_INDIRECT_PTR(t, p) ((t **) (acpi_uintptr_t) (p))
|
||||
#define ACPI_ADD_PTR(t, a, b) ACPI_CAST_PTR (t, (ACPI_CAST_PTR (u8, (a)) + (acpi_size)(b)))
|
||||
#define ACPI_SUB_PTR(t, a, b) ACPI_CAST_PTR (t, (ACPI_CAST_PTR (u8, (a)) - (acpi_size)(b)))
|
||||
#define ACPI_PTR_DIFF(a, b) (acpi_size) (ACPI_CAST_PTR (u8, (a)) - ACPI_CAST_PTR (u8, (b)))
|
||||
|
||||
/* Pointer/Integer type conversions */
|
||||
|
89
include/acpi/acuuid.h
Normal file
89
include/acpi/acuuid.h
Normal file
@ -0,0 +1,89 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acuuid.h - ACPI-related UUID/GUID definitions
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2015, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions, and the following disclaimer,
|
||||
* without modification.
|
||||
* 2. Redistributions in binary form must reproduce at minimum a disclaimer
|
||||
* substantially similar to the "NO WARRANTY" disclaimer below
|
||||
* ("Disclaimer") and any redistribution must be conditioned upon
|
||||
* including a substantially similar Disclaimer requirement for further
|
||||
* binary redistribution.
|
||||
* 3. Neither the names of the above-listed copyright holders nor the names
|
||||
* of any contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* Alternatively, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") version 2 as published by the Free
|
||||
* Software Foundation.
|
||||
*
|
||||
* NO WARRANTY
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#ifndef __ACUUID_H__
|
||||
#define __ACUUID_H__
|
||||
|
||||
/*
|
||||
* Note1: UUIDs and GUIDs are defined to be identical in ACPI.
|
||||
*
|
||||
* Note2: This file is standalone and should remain that way.
|
||||
*/
|
||||
|
||||
/* Controllers */
|
||||
|
||||
#define UUID_GPIO_CONTROLLER "4f248f40-d5e2-499f-834c-27758ea1cd3f"
|
||||
#define UUID_USB_CONTROLLER "ce2ee385-00e6-48cb-9f05-2edb927c4899"
|
||||
#define UUID_SATA_CONTROLLER "e4db149b-fcfe-425b-a6d8-92357d78fc7f"
|
||||
|
||||
/* Devices */
|
||||
|
||||
#define UUID_PCI_HOST_BRIDGE "33db4d5b-1ff7-401c-9657-7441c03dd766"
|
||||
#define UUID_I2C_DEVICE "3cdff6f7-4267-4555-ad05-b30a3d8938de"
|
||||
#define UUID_POWER_BUTTON "dfbcf3c5-e7a5-44e6-9c1f-29c76f6e059c"
|
||||
|
||||
/* Interfaces */
|
||||
|
||||
#define UUID_DEVICE_LABELING "e5c937d0-3553-4d7a-9117-ea4d19c3434d"
|
||||
#define UUID_PHYSICAL_PRESENCE "3dddfaa6-361b-4eb4-a424-8d10089d1653"
|
||||
|
||||
/* NVDIMM - NFIT table */
|
||||
|
||||
#define UUID_VOLATILE_MEMORY "7305944f-fdda-44e3-b16c-3f22d252e5d0"
|
||||
#define UUID_PERSISTENT_MEMORY "66f0d379-b4f3-4074-ac43-0d3318b78cdb"
|
||||
#define UUID_CONTROL_REGION "92f701f6-13b4-405d-910b-299367e8234c"
|
||||
#define UUID_DATA_REGION "91af0530-5d86-470e-a6b0-0a2db9408249"
|
||||
#define UUID_VOLATILE_VIRTUAL_DISK "77ab535a-45fc-624b-5560-f7b281d1f96e"
|
||||
#define UUID_VOLATILE_VIRTUAL_CD "3d5abd30-4175-87ce-6d64-d2ade523c4bb"
|
||||
#define UUID_PERSISTENT_VIRTUAL_DISK "5cea02c9-4d07-69d3-269f-4496fbe096f9"
|
||||
#define UUID_PERSISTENT_VIRTUAL_CD "08018188-42cd-bb48-100f-5387d53ded3d"
|
||||
|
||||
/* Miscellaneous */
|
||||
|
||||
#define UUID_PLATFORM_CAPABILITIES "0811b06e-4a27-44f9-8d60-3cbbc22e7b48"
|
||||
#define UUID_DYNAMIC_ENUMERATION "d8c1a3a6-be9b-4c9b-91bf-c3cb81fc5daf"
|
||||
#define UUID_BATTERY_THERMAL_LIMIT "4c2067e3-887d-475c-9720-4af1d3ed602e"
|
||||
#define UUID_THERMAL_EXTENSIONS "14d399cd-7a27-4b18-8fb4-7cb7b9f4e500"
|
||||
#define UUID_DEVICE_PROPERTIES "daffd814-6eba-4d8c-8a91-bc9bbf4aa301"
|
||||
|
||||
#endif /* __AUUID_H__ */
|
@ -175,6 +175,9 @@
|
||||
#elif defined(_APPLE) || defined(__APPLE__)
|
||||
#include "acmacosx.h"
|
||||
|
||||
#elif defined(__DragonFly__)
|
||||
#include "acdragonfly.h"
|
||||
|
||||
#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
|
||||
#include "acfreebsd.h"
|
||||
|
||||
|
@ -56,6 +56,9 @@
|
||||
#if defined(_LINUX) || defined(__linux__)
|
||||
#include <acpi/platform/aclinuxex.h>
|
||||
|
||||
#elif defined(__DragonFly__)
|
||||
#include "acdragonflyex.h"
|
||||
|
||||
#endif
|
||||
|
||||
/*! [End] no source code translation !*/
|
||||
|
Loading…
Reference in New Issue
Block a user