diff options
-rw-r--r-- | drivers/acpi/acpica/acglobal.h | 2 | ||||
-rw-r--r-- | drivers/acpi/acpica/aclocal.h | 25 | ||||
-rw-r--r-- | drivers/acpi/acpica/dsmethod.c | 2 | ||||
-rw-r--r-- | drivers/acpi/acpica/dswload.c | 5 | ||||
-rw-r--r-- | drivers/acpi/acpica/nssearch.c | 5 | ||||
-rw-r--r-- | drivers/acpi/acpica/utglobal.c | 4 | ||||
-rw-r--r-- | include/acpi/acoutput.h | 1 | ||||
-rw-r--r-- | include/acpi/platform/acenv.h | 45 |
8 files changed, 76 insertions, 13 deletions
diff --git a/drivers/acpi/acpica/acglobal.h b/drivers/acpi/acpica/acglobal.h index 64472e4ec32..1ef7ca486a2 100644 --- a/drivers/acpi/acpica/acglobal.h +++ b/drivers/acpi/acpica/acglobal.h @@ -415,6 +415,8 @@ ACPI_EXTERN u8 acpi_gbl_db_output_flags; ACPI_EXTERN u8 acpi_gbl_db_opt_disasm; ACPI_EXTERN u8 acpi_gbl_db_opt_verbose; +ACPI_EXTERN struct acpi_external_list *acpi_gbl_external_list; +ACPI_EXTERN struct acpi_external_file *acpi_gbl_external_file_list; #endif #ifdef ACPI_DEBUGGER diff --git a/drivers/acpi/acpica/aclocal.h b/drivers/acpi/acpica/aclocal.h index 3453ea68a29..50f8b97e799 100644 --- a/drivers/acpi/acpica/aclocal.h +++ b/drivers/acpi/acpica/aclocal.h @@ -1029,6 +1029,31 @@ struct acpi_port_info { /***************************************************************************** * + * Disassembler + * + ****************************************************************************/ + +struct acpi_external_list { + char *path; + char *internal_path; + struct acpi_external_list *next; + u32 value; + u16 length; + u8 type; + u8 flags; +}; + +/* Values for Flags field above */ + +#define ACPI_IPATH_ALLOCATED 0x01 + +struct acpi_external_file { + char *path; + struct acpi_external_file *next; +}; + +/***************************************************************************** + * * Debugger * ****************************************************************************/ diff --git a/drivers/acpi/acpica/dsmethod.c b/drivers/acpi/acpica/dsmethod.c index 52eb4e01622..735c05996ec 100644 --- a/drivers/acpi/acpica/dsmethod.c +++ b/drivers/acpi/acpica/dsmethod.c @@ -47,7 +47,7 @@ #include "acinterp.h" #include "acnamesp.h" #ifdef ACPI_DISASSEMBLER -#include <acpi/acdisasm.h> +#include "acdisasm.h" #endif #define _COMPONENT ACPI_DISPATCHER diff --git a/drivers/acpi/acpica/dswload.c b/drivers/acpi/acpica/dswload.c index 557510084c7..d2907407a64 100644 --- a/drivers/acpi/acpica/dswload.c +++ b/drivers/acpi/acpica/dswload.c @@ -50,7 +50,7 @@ #include "acnamesp.h" #ifdef ACPI_ASL_COMPILER -#include <acpi/acdisasm.h> +#include "acdisasm.h" #endif #define _COMPONENT ACPI_DISPATCHER @@ -178,7 +178,8 @@ acpi_ds_load1_begin_op(struct acpi_walk_state * walk_state, * Target of Scope() not found. Generate an External for it, and * insert the name into the namespace. */ - acpi_dm_add_to_external_list(path, ACPI_TYPE_DEVICE, 0); + acpi_dm_add_to_external_list(op, path, ACPI_TYPE_DEVICE, + 0); status = acpi_ns_lookup(walk_state->scope_info, path, object_type, ACPI_IMODE_LOAD_PASS1, diff --git a/drivers/acpi/acpica/nssearch.c b/drivers/acpi/acpica/nssearch.c index 1d2d8ffc1bc..b7f426482e5 100644 --- a/drivers/acpi/acpica/nssearch.c +++ b/drivers/acpi/acpica/nssearch.c @@ -328,6 +328,11 @@ acpi_ns_search_and_enter(u32 target_name, if ((status == AE_OK) && (flags & ACPI_NS_ERROR_IF_FOUND)) { status = AE_ALREADY_EXISTS; } +#ifdef ACPI_ASL_COMPILER + if (*return_node && (*return_node)->type == ACPI_TYPE_ANY) { + (*return_node)->flags |= ANOBJ_IS_EXTERNAL; + } +#endif /* Either found it or there was an error: finished either way */ diff --git a/drivers/acpi/acpica/utglobal.c b/drivers/acpi/acpica/utglobal.c index d7919a321f4..4080088f937 100644 --- a/drivers/acpi/acpica/utglobal.c +++ b/drivers/acpi/acpica/utglobal.c @@ -357,6 +357,10 @@ acpi_status acpi_ut_init_globals(void) acpi_gbl_root_node_struct.peer = NULL; acpi_gbl_root_node_struct.object = NULL; +#ifdef ACPI_DISASSEMBLER + acpi_gbl_external_list = NULL; +#endif + #ifdef ACPI_DEBUG_OUTPUT acpi_gbl_lowest_stack_pointer = ACPI_CAST_PTR(acpi_size, ACPI_SIZE_MAX); #endif diff --git a/include/acpi/acoutput.h b/include/acpi/acoutput.h index 2457ac84965..38e1be09465 100644 --- a/include/acpi/acoutput.h +++ b/include/acpi/acoutput.h @@ -72,6 +72,7 @@ #define ACPI_EXAMPLE 0x00004000 #define ACPI_DRIVER 0x00008000 #define DT_COMPILER 0x00010000 +#define ASL_PREPROCESSOR 0x00020000 #define ACPI_ALL_COMPONENTS 0x0001FFFF #define ACPI_COMPONENT_DEFAULT (ACPI_ALL_COMPONENTS) diff --git a/include/acpi/platform/acenv.h b/include/acpi/platform/acenv.h index 68a58a163fe..13ac538f789 100644 --- a/include/acpi/platform/acenv.h +++ b/include/acpi/platform/acenv.h @@ -65,32 +65,57 @@ * *****************************************************************************/ -/* Linkable ACPICA library */ -#ifdef ACPI_LIBRARY -#define ACPI_USE_LOCAL_CACHE -#endif - /* iASL configuration */ #ifdef ACPI_ASL_COMPILER -#define ACPI_DEBUG_OUTPUT #define ACPI_APPLICATION #define ACPI_DISASSEMBLER +#define ACPI_DEBUG_OUTPUT #define ACPI_CONSTANT_EVAL_ONLY #define ACPI_LARGE_NAMESPACE_NODE #define ACPI_DATA_TABLE_DISASSEMBLY +#define ACPI_SINGLE_THREADED #endif /* acpi_exec configuration. Multithreaded with full AML debugger */ #ifdef ACPI_EXEC_APP -#undef DEBUGGER_THREADING -#define DEBUGGER_THREADING DEBUGGER_SINGLE_THREADED -#define ACPI_FULL_DEBUG #define ACPI_APPLICATION -#define ACPI_DEBUGGER +#define ACPI_FULL_DEBUG #define ACPI_MUTEX_DEBUG #define ACPI_DBG_TRACK_ALLOCATIONS #endif +/* acpi_names configuration. Single threaded with debugger output enabled. */ + +#ifdef ACPI_NAMES_APP +#define ACPI_DEBUGGER +#define ACPI_APPLICATION +#define ACPI_SINGLE_THREADED +#endif + +/* + * acpi_bin/acpi_help/acpi_src configuration. All single threaded, with + * no debug output. + */ +#if (defined ACPI_BIN_APP) || \ + (defined ACPI_SRC_APP) || \ + (defined ACPI_XTRACT_APP) +#define ACPI_APPLICATION +#define ACPI_SINGLE_THREADED +#endif + +#ifdef ACPI_HELP_APP +#define ACPI_APPLICATION +#define ACPI_SINGLE_THREADED +#define ACPI_NO_ERROR_MESSAGES +#endif + +/* Linkable ACPICA library */ + +#ifdef ACPI_LIBRARY +#define ACPI_USE_LOCAL_CACHE +#define ACPI_FUTURE_USAGE +#endif + /* Common for all ACPICA applications */ #ifdef ACPI_APPLICATION #define ACPI_USE_SYSTEM_CLIBRARY |