aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/linux/acpi.h
diff options
context:
space:
mode:
authorKeith Busch <keith.busch@intel.com>2019-03-11 14:55:57 -0600
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-04-04 18:41:12 +0200
commit60574d1e05b094d222162260dd9cac49f4d0996a (patch)
treeed8ec87acba8ab7d4ce141605b16c3aab12fd6fc /include/linux/acpi.h
parentkobject: Don't trigger kobject_uevent(KOBJ_REMOVE) twice. (diff)
downloadwireguard-linux-60574d1e05b094d222162260dd9cac49f4d0996a.tar.xz
wireguard-linux-60574d1e05b094d222162260dd9cac49f4d0996a.zip
acpi: Create subtable parsing infrastructure
Parsing entries in an ACPI table had assumed a generic header structure. There is no standard ACPI header, though, so less common layouts with different field sizes required custom parsers to go through their subtable entry list. Create the infrastructure for adding different table types so parsing the entries array may be more reused for all ACPI system tables and the common code doesn't need to be duplicated. Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Tested-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: Keith Busch <keith.busch@intel.com> Tested-by: Brice Goglin <Brice.Goglin@inria.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux/acpi.h')
-rw-r--r--include/linux/acpi.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index d5dcebd7aad3..9494d42bf507 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -141,10 +141,13 @@ enum acpi_address_range_id {
/* Table Handlers */
+union acpi_subtable_headers {
+ struct acpi_subtable_header common;
+};
typedef int (*acpi_tbl_table_handler)(struct acpi_table_header *table);
-typedef int (*acpi_tbl_entry_handler)(struct acpi_subtable_header *header,
+typedef int (*acpi_tbl_entry_handler)(union acpi_subtable_headers *header,
const unsigned long end);
/* Debugger support */