diff options
author | Lin Ming <ming.m.lin@intel.com> | 2008-11-12 22:25:22 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2008-12-29 22:38:39 -0500 |
commit | 7a4b8131ac7b47feb110b3e0142d4207ee79a025 (patch) | |
tree | 7c5320446994efb6f8789d55baab2f7ba42b082f /drivers/acpi/parser/psxface.c | |
parent | eeb4437e63c39ce19cf9b2de36a1dddbf12910c4 (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.c | 16 |
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); |