Commit a86c856e authored by David E. Box's avatar David E. Box Committed by Rafael J. Wysocki

ACPICA: disassembler: improve Switch support

ACPICA commit 3c36625deffdfb034378b1793e2ead9c8fdd767e

Changes the resource descriptor parse tree walk to a general
preprocessing walk and calls the Switch conversion code from here.
Move Switch code to new dmswitch.c file. Also improves algorithm to
handle multiple levels of Switch statements and perform legacy
disassembly for older or otherwise non-spec compliant Switch
implementations.

Link: https://github.com/acpica/acpica/commit/3c36625dSigned-off-by: default avatarDavid E. Box <david.e.box@linux.intel.com>
Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent a618c7f8
...@@ -158,8 +158,8 @@ acpi_dm_finish_namespace_load(union acpi_parse_object *parse_tree_root, ...@@ -158,8 +158,8 @@ acpi_dm_finish_namespace_load(union acpi_parse_object *parse_tree_root,
acpi_owner_id owner_id); acpi_owner_id owner_id);
void void
acpi_dm_convert_resource_indexes(union acpi_parse_object *parse_tree_root, acpi_dm_convert_parse_objects(union acpi_parse_object *parse_tree_root,
struct acpi_namespace_node *namespace_root); struct acpi_namespace_node *namespace_root);
/* /*
* adfile * adfile
......
...@@ -315,6 +315,7 @@ ACPI_INIT_GLOBAL(u8, acpi_gbl_force_aml_disassembly, FALSE); ...@@ -315,6 +315,7 @@ ACPI_INIT_GLOBAL(u8, acpi_gbl_force_aml_disassembly, FALSE);
ACPI_INIT_GLOBAL(u8, acpi_gbl_dm_opt_verbose, TRUE); ACPI_INIT_GLOBAL(u8, acpi_gbl_dm_opt_verbose, TRUE);
ACPI_INIT_GLOBAL(u8, acpi_gbl_dm_emit_external_opcodes, FALSE); ACPI_INIT_GLOBAL(u8, acpi_gbl_dm_emit_external_opcodes, FALSE);
ACPI_INIT_GLOBAL(u8, acpi_gbl_do_disassembler_optimizations, TRUE); ACPI_INIT_GLOBAL(u8, acpi_gbl_do_disassembler_optimizations, TRUE);
ACPI_INIT_GLOBAL(ACPI_PARSE_OBJECT_LIST, *acpi_gbl_temp_list_head, NULL);
ACPI_GLOBAL(u8, acpi_gbl_dm_opt_disasm); ACPI_GLOBAL(u8, acpi_gbl_dm_opt_disasm);
ACPI_GLOBAL(u8, acpi_gbl_dm_opt_listing); ACPI_GLOBAL(u8, acpi_gbl_dm_opt_listing);
......
...@@ -1182,6 +1182,11 @@ struct acpi_external_file { ...@@ -1182,6 +1182,11 @@ struct acpi_external_file {
struct acpi_external_file *next; struct acpi_external_file *next;
}; };
struct acpi_parse_object_list {
union acpi_parse_object *op;
struct acpi_parse_object_list *next;
};
/***************************************************************************** /*****************************************************************************
* *
* Debugger * Debugger
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment