aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/executer/exresnte.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/exresnte.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/exresnte.c')
-rw-r--r--drivers/acpi/executer/exresnte.c37
1 files changed, 19 insertions, 18 deletions
diff --git a/drivers/acpi/executer/exresnte.c b/drivers/acpi/executer/exresnte.c
index a5cca7eda210..01b26c80d22b 100644
--- a/drivers/acpi/executer/exresnte.c
+++ b/drivers/acpi/executer/exresnte.c
@@ -122,7 +122,7 @@ acpi_ex_resolve_node_to_value(struct acpi_namespace_node **object_ptr,
122 } 122 }
123 123
124 if (!source_desc) { 124 if (!source_desc) {
125 ACPI_REPORT_ERROR(("No object attached to node %p\n", node)); 125 ACPI_ERROR((AE_INFO, "No object attached to node %p", node));
126 return_ACPI_STATUS(AE_AML_NO_OPERAND); 126 return_ACPI_STATUS(AE_AML_NO_OPERAND);
127 } 127 }
128 128
@@ -134,9 +134,8 @@ acpi_ex_resolve_node_to_value(struct acpi_namespace_node **object_ptr,
134 case ACPI_TYPE_PACKAGE: 134 case ACPI_TYPE_PACKAGE:
135 135
136 if (ACPI_GET_OBJECT_TYPE(source_desc) != ACPI_TYPE_PACKAGE) { 136 if (ACPI_GET_OBJECT_TYPE(source_desc) != ACPI_TYPE_PACKAGE) {
137 ACPI_REPORT_ERROR(("Object not a Package, type %s\n", 137 ACPI_ERROR((AE_INFO, "Object not a Package, type %s",
138 acpi_ut_get_object_type_name 138 acpi_ut_get_object_type_name(source_desc)));
139 (source_desc)));
140 return_ACPI_STATUS(AE_AML_OPERAND_TYPE); 139 return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
141 } 140 }
142 141
@@ -152,9 +151,8 @@ acpi_ex_resolve_node_to_value(struct acpi_namespace_node **object_ptr,
152 case ACPI_TYPE_BUFFER: 151 case ACPI_TYPE_BUFFER:
153 152
154 if (ACPI_GET_OBJECT_TYPE(source_desc) != ACPI_TYPE_BUFFER) { 153 if (ACPI_GET_OBJECT_TYPE(source_desc) != ACPI_TYPE_BUFFER) {
155 ACPI_REPORT_ERROR(("Object not a Buffer, type %s\n", 154 ACPI_ERROR((AE_INFO, "Object not a Buffer, type %s",
156 acpi_ut_get_object_type_name 155 acpi_ut_get_object_type_name(source_desc)));
157 (source_desc)));
158 return_ACPI_STATUS(AE_AML_OPERAND_TYPE); 156 return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
159 } 157 }
160 158
@@ -170,9 +168,8 @@ acpi_ex_resolve_node_to_value(struct acpi_namespace_node **object_ptr,
170 case ACPI_TYPE_STRING: 168 case ACPI_TYPE_STRING:
171 169
172 if (ACPI_GET_OBJECT_TYPE(source_desc) != ACPI_TYPE_STRING) { 170 if (ACPI_GET_OBJECT_TYPE(source_desc) != ACPI_TYPE_STRING) {
173 ACPI_REPORT_ERROR(("Object not a String, type %s\n", 171 ACPI_ERROR((AE_INFO, "Object not a String, type %s",
174 acpi_ut_get_object_type_name 172 acpi_ut_get_object_type_name(source_desc)));
175 (source_desc)));
176 return_ACPI_STATUS(AE_AML_OPERAND_TYPE); 173 return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
177 } 174 }
178 175
@@ -185,9 +182,8 @@ acpi_ex_resolve_node_to_value(struct acpi_namespace_node **object_ptr,
185 case ACPI_TYPE_INTEGER: 182 case ACPI_TYPE_INTEGER:
186 183
187 if (ACPI_GET_OBJECT_TYPE(source_desc) != ACPI_TYPE_INTEGER) { 184 if (ACPI_GET_OBJECT_TYPE(source_desc) != ACPI_TYPE_INTEGER) {
188 ACPI_REPORT_ERROR(("Object not a Integer, type %s\n", 185 ACPI_ERROR((AE_INFO, "Object not a Integer, type %s",
189 acpi_ut_get_object_type_name 186 acpi_ut_get_object_type_name(source_desc)));
190 (source_desc)));
191 return_ACPI_STATUS(AE_AML_OPERAND_TYPE); 187 return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
192 } 188 }
193 189
@@ -231,8 +227,8 @@ acpi_ex_resolve_node_to_value(struct acpi_namespace_node **object_ptr,
231 227
232 case ACPI_TYPE_ANY: 228 case ACPI_TYPE_ANY:
233 229
234 ACPI_REPORT_ERROR(("Untyped entry %p, no attached object!\n", 230 ACPI_ERROR((AE_INFO,
235 node)); 231 "Untyped entry %p, no attached object!", node));
236 232
237 return_ACPI_STATUS(AE_AML_OPERAND_TYPE); /* Cannot be AE_TYPE */ 233 return_ACPI_STATUS(AE_AML_OPERAND_TYPE); /* Cannot be AE_TYPE */
238 234
@@ -251,7 +247,11 @@ acpi_ex_resolve_node_to_value(struct acpi_namespace_node **object_ptr,
251 default: 247 default:
252 /* No named references are allowed here */ 248 /* No named references are allowed here */
253 249
254 ACPI_REPORT_ERROR(("Unsupported Reference opcode %X (%s)\n", source_desc->reference.opcode, acpi_ps_get_opcode_name(source_desc->reference.opcode))); 250 ACPI_ERROR((AE_INFO,
251 "Unsupported Reference opcode %X (%s)",
252 source_desc->reference.opcode,
253 acpi_ps_get_opcode_name(source_desc->
254 reference.opcode)));
255 255
256 return_ACPI_STATUS(AE_AML_OPERAND_TYPE); 256 return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
257 } 257 }
@@ -261,8 +261,9 @@ acpi_ex_resolve_node_to_value(struct acpi_namespace_node **object_ptr,
261 261
262 /* Default case is for unknown types */ 262 /* Default case is for unknown types */
263 263
264 ACPI_REPORT_ERROR(("Node %p - Unknown object type %X\n", 264 ACPI_ERROR((AE_INFO,
265 node, entry_type)); 265 "Node %p - Unknown object type %X",
266 node, entry_type));
266 267
267 return_ACPI_STATUS(AE_AML_OPERAND_TYPE); 268 return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
268 269