ACPICA: acpiexec: Add support for AML files containing multiple tables
authorBob Moore <robert.moore@intel.com>
Tue, 29 Dec 2015 05:54:51 +0000 (13:54 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 1 Jan 2016 02:47:34 +0000 (03:47 +0100)
ACPICA commit 301f16e4037275888f65b88aec7231c1cd64339f

Add support for multi-AML-table files that originate from
either acpixtract or iASL.

Link: https://github.com/acpica/acpica/commit/301f16e4
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/acpica/acutils.h
drivers/acpi/acpica/utfileio.c

index 749542185781757ce1369747cc085793cafe7e7e..5d3ae91a41528871cd6ef190e888af004ff4638f 100644 (file)
@@ -356,6 +356,10 @@ acpi_ut_execute_power_methods(struct acpi_namespace_node *device_node,
  * utfileio - file operations
  */
 #ifdef ACPI_APPLICATION
+
+acpi_status
+acpi_ut_read_tables_from_file(FILE * file, struct acpi_table_header **table);
+
 acpi_status
 acpi_ut_read_table_from_file(char *filename, struct acpi_table_header **table);
 #endif
index be49c719f1f507abf94d1bac743f28a3930dbfa1..e72948606039ffe9df9a7d58eb8cd0f456ade5a7 100644 (file)
@@ -291,6 +291,29 @@ acpi_ut_read_table(FILE * fp,
  *
  ******************************************************************************/
 
+acpi_status
+acpi_ut_read_tables_from_file(FILE * file, struct acpi_table_header ** table)
+{
+       struct acpi_table_header table_header;
+       s32 count;
+       long position;
+
+       position = ftell(file);
+       count = fread(&table_header, 1, sizeof(struct acpi_table_header), file);
+       if (count < sizeof(struct acpi_table_header)) {
+               return (AE_CTRL_TERMINATE);
+       }
+
+       /* Allocate a buffer for the table */
+
+       *table = acpi_os_allocate((size_t) table_header.length);
+       fseek(file, position, SEEK_SET);
+
+       count = fread(*table, 1, table_header.length, file);
+
+       return (AE_OK);
+}
+
 acpi_status
 acpi_ut_read_table_from_file(char *filename, struct acpi_table_header ** table)
 {