aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/executer/exnames.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/exnames.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/exnames.c')
-rw-r--r--drivers/acpi/executer/exnames.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/acpi/executer/exnames.c b/drivers/acpi/executer/exnames.c
index de3216b6a4fc..054fe5e1a314 100644
--- a/drivers/acpi/executer/exnames.c
+++ b/drivers/acpi/executer/exnames.c
@@ -99,8 +99,8 @@ static char *acpi_ex_allocate_name_string(u32 prefix_count, u32 num_name_segs)
99 */ 99 */
100 name_string = ACPI_MEM_ALLOCATE(size_needed); 100 name_string = ACPI_MEM_ALLOCATE(size_needed);
101 if (!name_string) { 101 if (!name_string) {
102 ACPI_REPORT_ERROR(("Could not allocate size %d\n", 102 ACPI_ERROR((AE_INFO,
103 size_needed)); 103 "Could not allocate size %d", size_needed));
104 return_PTR(NULL); 104 return_PTR(NULL);
105 } 105 }
106 106
@@ -168,7 +168,7 @@ static acpi_status acpi_ex_name_segment(u8 ** in_aml_address, char *name_string)
168 char_buf[0] = *aml_address; 168 char_buf[0] = *aml_address;
169 169
170 if ('0' <= char_buf[0] && char_buf[0] <= '9') { 170 if ('0' <= char_buf[0] && char_buf[0] <= '9') {
171 ACPI_REPORT_ERROR(("Invalid leading digit: %c\n", char_buf[0])); 171 ACPI_ERROR((AE_INFO, "Invalid leading digit: %c", char_buf[0]));
172 return_ACPI_STATUS(AE_CTRL_PENDING); 172 return_ACPI_STATUS(AE_CTRL_PENDING);
173 } 173 }
174 174
@@ -211,8 +211,9 @@ static acpi_status acpi_ex_name_segment(u8 ** in_aml_address, char *name_string)
211 * the required 4 211 * the required 4
212 */ 212 */
213 status = AE_AML_BAD_NAME; 213 status = AE_AML_BAD_NAME;
214 ACPI_REPORT_ERROR(("Bad character %02x in name, at %p\n", 214 ACPI_ERROR((AE_INFO,
215 *aml_address, aml_address)); 215 "Bad character %02x in name, at %p",
216 *aml_address, aml_address));
216 } 217 }
217 218
218 *in_aml_address = ACPI_CAST_PTR(u8, aml_address); 219 *in_aml_address = ACPI_CAST_PTR(u8, aml_address);
@@ -411,7 +412,7 @@ acpi_ex_get_name_string(acpi_object_type data_type,
411 if (AE_CTRL_PENDING == status && has_prefix) { 412 if (AE_CTRL_PENDING == status && has_prefix) {
412 /* Ran out of segments after processing a prefix */ 413 /* Ran out of segments after processing a prefix */
413 414
414 ACPI_REPORT_ERROR(("Malformed Name at %p\n", name_string)); 415 ACPI_ERROR((AE_INFO, "Malformed Name at %p", name_string));
415 status = AE_AML_BAD_NAME; 416 status = AE_AML_BAD_NAME;
416 } 417 }
417 418