aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/parser/psxface.c
diff options
context:
space:
mode:
authorLin Ming <ming.m.lin@intel.com>2008-11-12 22:25:22 -0500
committerLen Brown <len.brown@intel.com>2008-12-29 22:38:39 -0500
commit7a4b8131ac7b47feb110b3e0142d4207ee79a025 (patch)
tree7c5320446994efb6f8789d55baab2f7ba42b082f /drivers/acpi/parser/psxface.c
parenteeb4437e63c39ce19cf9b2de36a1dddbf12910c4 (diff)
ACPICA: Enhance implicit return mechanism
For Windows compatibility, return an implicit integer of value zero for methods that have no executable code. A default implicit value of zero is provided for methods. Lin Ming. Signed-off-by: Lin Ming <ming.m.lin@intel.com> Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/parser/psxface.c')
-rw-r--r--drivers/acpi/parser/psxface.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/acpi/parser/psxface.c b/drivers/acpi/parser/psxface.c
index 4985ce58c024..41b0c8c052a8 100644
--- a/drivers/acpi/parser/psxface.c
+++ b/drivers/acpi/parser/psxface.c
@@ -295,6 +295,22 @@ acpi_status acpi_ps_execute_method(struct acpi_evaluate_info *info)
295 goto cleanup; 295 goto cleanup;
296 } 296 }
297 297
298 /*
299 * Start method evaluation with an implicit return of zero.
300 * This is done for Windows compatibility.
301 */
302 if (acpi_gbl_enable_interpreter_slack) {
303 walk_state->implicit_return_obj =
304 acpi_ut_create_internal_object(ACPI_TYPE_INTEGER);
305 if (!walk_state->implicit_return_obj) {
306 status = AE_NO_MEMORY;
307 acpi_ds_delete_walk_state(walk_state);
308 goto cleanup;
309 }
310
311 walk_state->implicit_return_obj->integer.value = 0;
312 }
313
298 /* Parse the AML */ 314 /* Parse the AML */
299 315
300 status = acpi_ps_parse_aml(walk_state); 316 status = acpi_ps_parse_aml(walk_state);