aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/executer/exstore.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/executer/exstore.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/executer/exstore.c')
-rw-r--r--drivers/acpi/executer/exstore.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/drivers/acpi/executer/exstore.c b/drivers/acpi/executer/exstore.c
index 202ebe1eb957..3f020c0e2b95 100644
--- a/drivers/acpi/executer/exstore.c
+++ b/drivers/acpi/executer/exstore.c
@@ -250,7 +250,7 @@ acpi_ex_store(union acpi_operand_object *source_desc,
250 /* Validate parameters */ 250 /* Validate parameters */
251 251
252 if (!source_desc || !dest_desc) { 252 if (!source_desc || !dest_desc) {
253 ACPI_REPORT_ERROR(("Null parameter\n")); 253 ACPI_ERROR((AE_INFO, "Null parameter"));
254 return_ACPI_STATUS(AE_AML_NO_OPERAND); 254 return_ACPI_STATUS(AE_AML_NO_OPERAND);
255 } 255 }
256 256
@@ -290,7 +290,10 @@ acpi_ex_store(union acpi_operand_object *source_desc,
290 290
291 /* Destination is not a Reference object */ 291 /* Destination is not a Reference object */
292 292
293 ACPI_REPORT_ERROR(("Target is not a Reference or Constant object - %s [%p]\n", acpi_ut_get_object_type_name(dest_desc), dest_desc)); 293 ACPI_ERROR((AE_INFO,
294 "Target is not a Reference or Constant object - %s [%p]",
295 acpi_ut_get_object_type_name(dest_desc),
296 dest_desc));
294 297
295 ACPI_DUMP_STACK_ENTRY(source_desc); 298 ACPI_DUMP_STACK_ENTRY(source_desc);
296 ACPI_DUMP_STACK_ENTRY(dest_desc); 299 ACPI_DUMP_STACK_ENTRY(dest_desc);
@@ -357,8 +360,8 @@ acpi_ex_store(union acpi_operand_object *source_desc,
357 360
358 default: 361 default:
359 362
360 ACPI_REPORT_ERROR(("Unknown Reference opcode %X\n", 363 ACPI_ERROR((AE_INFO, "Unknown Reference opcode %X",
361 ref_desc->reference.opcode)); 364 ref_desc->reference.opcode));
362 ACPI_DUMP_ENTRY(ref_desc, ACPI_LV_ERROR); 365 ACPI_DUMP_ENTRY(ref_desc, ACPI_LV_ERROR);
363 366
364 status = AE_AML_INTERNAL; 367 status = AE_AML_INTERNAL;
@@ -487,7 +490,9 @@ acpi_ex_store_object_to_index(union acpi_operand_object *source_desc,
487 490
488 /* All other types are invalid */ 491 /* All other types are invalid */
489 492
490 ACPI_REPORT_ERROR(("Source must be Integer/Buffer/String type, not %s\n", acpi_ut_get_object_type_name(source_desc))); 493 ACPI_ERROR((AE_INFO,
494 "Source must be Integer/Buffer/String type, not %s",
495 acpi_ut_get_object_type_name(source_desc)));
491 return_ACPI_STATUS(AE_AML_OPERAND_TYPE); 496 return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
492 } 497 }
493 498
@@ -497,7 +502,8 @@ acpi_ex_store_object_to_index(union acpi_operand_object *source_desc,
497 break; 502 break;
498 503
499 default: 504 default:
500 ACPI_REPORT_ERROR(("Target is not a Package or buffer_field\n")); 505 ACPI_ERROR((AE_INFO,
506 "Target is not a Package or buffer_field"));
501 status = AE_AML_OPERAND_TYPE; 507 status = AE_AML_OPERAND_TYPE;
502 break; 508 break;
503 } 509 }