aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/namespace/nsaccess.c
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2006-01-27 16:43:00 -0500
committerLen Brown <len.brown@intel.com>2006-01-31 03:25:09 -0500
commitb8e4d89357fc434618a59c1047cac72641191805 (patch)
treeac97fcc6fdc277c682365900663872c96f2420bd /drivers/acpi/namespace/nsaccess.c
parent292dd876ee765c478b27c93cc51e93a558ed58bf (diff)
[ACPI] ACPICA 20060127
Implemented support in the Resource Manager to allow unresolved namestring references within resource package objects for the _PRT method. This support is in addition to the previously implemented unresolved reference support within the AML parser. If the interpreter slack mode is enabled (true on Linux unless acpi=strict), these unresolved references will be passed through to the caller as a NULL package entry. http://bugzilla.kernel.org/show_bug.cgi?id=5741 Implemented and deployed new macros and functions for error and warning messages across the subsystem. These macros are simpler and generate less code than their predecessors. The new macros ACPI_ERROR, ACPI_EXCEPTION, ACPI_WARNING, and ACPI_INFO replace the ACPI_REPORT_* macros. Implemented the acpi_cpu_flags type to simplify host OS integration of the Acquire/Release Lock OSL interfaces. Suggested by Steven Rostedt and Andrew Morton. Fixed a problem where Alias ASL operators are sometimes not correctly resolved. causing AE_AML_INTERNAL http://bugzilla.kernel.org/show_bug.cgi?id=5189 http://bugzilla.kernel.org/show_bug.cgi?id=5674 Fixed several problems with the implementation of the ConcatenateResTemplate ASL operator. As per the ACPI specification, zero length buffers are now treated as a single EndTag. One-length buffers always cause a fatal exception. Non-zero length buffers that do not end with a full 2-byte EndTag cause a fatal exception. Fixed a possible structure overwrite in the AcpiGetObjectInfo external interface. (With assistance from Thomas Renninger) Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/namespace/nsaccess.c')
-rw-r--r--drivers/acpi/namespace/nsaccess.c29
1 files changed, 20 insertions, 9 deletions
diff --git a/drivers/acpi/namespace/nsaccess.c b/drivers/acpi/namespace/nsaccess.c
index c2db93e25b78..1149bc18fb35 100644
--- a/drivers/acpi/namespace/nsaccess.c
+++ b/drivers/acpi/namespace/nsaccess.c
@@ -110,7 +110,9 @@ acpi_status acpi_ns_root_initialize(void)
110 ACPI_NS_NO_UPSEARCH, NULL, &new_node); 110 ACPI_NS_NO_UPSEARCH, NULL, &new_node);
111 111
112 if (ACPI_FAILURE(status) || (!new_node)) { /* Must be on same line for code converter */ 112 if (ACPI_FAILURE(status) || (!new_node)) { /* Must be on same line for code converter */
113 ACPI_REPORT_ERROR(("Could not create predefined name %s, %s\n", init_val->name, acpi_format_exception(status))); 113 ACPI_EXCEPTION((AE_INFO, status,
114 "Could not create predefined name %s",
115 init_val->name));
114 } 116 }
115 117
116 /* 118 /*
@@ -121,7 +123,9 @@ acpi_status acpi_ns_root_initialize(void)
121 if (init_val->val) { 123 if (init_val->val) {
122 status = acpi_os_predefined_override(init_val, &val); 124 status = acpi_os_predefined_override(init_val, &val);
123 if (ACPI_FAILURE(status)) { 125 if (ACPI_FAILURE(status)) {
124 ACPI_REPORT_ERROR(("Could not override predefined %s\n", init_val->name)); 126 ACPI_ERROR((AE_INFO,
127 "Could not override predefined %s",
128 init_val->name));
125 } 129 }
126 130
127 if (!val) { 131 if (!val) {
@@ -228,7 +232,9 @@ acpi_status acpi_ns_root_initialize(void)
228 232
229 default: 233 default:
230 234
231 ACPI_REPORT_ERROR(("Unsupported initial type value %X\n", init_val->type)); 235 ACPI_ERROR((AE_INFO,
236 "Unsupported initial type value %X",
237 init_val->type));
232 acpi_ut_remove_reference(obj_desc); 238 acpi_ut_remove_reference(obj_desc);
233 obj_desc = NULL; 239 obj_desc = NULL;
234 continue; 240 continue;
@@ -334,10 +340,9 @@ acpi_ns_lookup(union acpi_generic_state *scope_info,
334 prefix_node = scope_info->scope.node; 340 prefix_node = scope_info->scope.node;
335 if (ACPI_GET_DESCRIPTOR_TYPE(prefix_node) != 341 if (ACPI_GET_DESCRIPTOR_TYPE(prefix_node) !=
336 ACPI_DESC_TYPE_NAMED) { 342 ACPI_DESC_TYPE_NAMED) {
337 ACPI_REPORT_ERROR(("%p is not a namespace node [%s]\n", 343 ACPI_ERROR((AE_INFO, "%p is not a namespace node [%s]",
338 prefix_node, 344 prefix_node,
339 acpi_ut_get_descriptor_name 345 acpi_ut_get_descriptor_name(prefix_node)));
340 (prefix_node)));
341 return_ACPI_STATUS(AE_AML_INTERNAL); 346 return_ACPI_STATUS(AE_AML_INTERNAL);
342 } 347 }
343 348
@@ -427,7 +432,8 @@ acpi_ns_lookup(union acpi_generic_state *scope_info,
427 if (!this_node) { 432 if (!this_node) {
428 /* Current scope has no parent scope */ 433 /* Current scope has no parent scope */
429 434
430 ACPI_REPORT_ERROR(("ACPI path has too many parent prefixes (^) - reached beyond root node\n")); 435 ACPI_ERROR((AE_INFO,
436 "ACPI path has too many parent prefixes (^) - reached beyond root node"));
431 return_ACPI_STATUS(AE_NOT_FOUND); 437 return_ACPI_STATUS(AE_NOT_FOUND);
432 } 438 }
433 } 439 }
@@ -598,7 +604,12 @@ acpi_ns_lookup(union acpi_generic_state *scope_info,
598 (this_node->type != type_to_check_for)) { 604 (this_node->type != type_to_check_for)) {
599 /* Complain about a type mismatch */ 605 /* Complain about a type mismatch */
600 606
601 ACPI_REPORT_WARNING(("ns_lookup: Type mismatch on %4.4s (%s), searching for (%s)\n", ACPI_CAST_PTR(char, &simple_name), acpi_ut_get_type_name(this_node->type), acpi_ut_get_type_name(type_to_check_for))); 607 ACPI_WARNING((AE_INFO,
608 "ns_lookup: Type mismatch on %4.4s (%s), searching for (%s)",
609 ACPI_CAST_PTR(char, &simple_name),
610 acpi_ut_get_type_name(this_node->type),
611 acpi_ut_get_type_name
612 (type_to_check_for)));
602 } 613 }
603 614
604 /* 615 /*