patch-2.4.0-prerelease linux/drivers/acpi/namespace/nseval.c
Next file: linux/drivers/acpi/namespace/nsinit.c
Previous file: linux/drivers/acpi/namespace/nsdump.c
Back to the patch index
Back to the overall index
- Lines: 71
- Date:
Fri Dec 29 14:07:21 2000
- Orig file:
v2.4.0-test12/linux/drivers/acpi/namespace/nseval.c
- Orig date:
Sun Oct 8 10:50:14 2000
diff -u --recursive --new-file v2.4.0-test12/linux/drivers/acpi/namespace/nseval.c linux/drivers/acpi/namespace/nseval.c
@@ -2,7 +2,7 @@
*
* Module Name: nseval - Object evaluation interfaces -- includes control
* method lookup and execution.
- * $Revision: 76 $
+ * $Revision: 79 $
*
******************************************************************************/
@@ -99,7 +99,7 @@
/* Lookup the name in the namespace */
- scope_info.scope.node = prefix_node->child;
+ scope_info.scope.node = prefix_node;
status = acpi_ns_lookup (&scope_info, internal_path, ACPI_TYPE_ANY,
IMODE_EXECUTE, NS_NO_UPSEARCH, NULL,
&node);
@@ -432,28 +432,14 @@
}
/*
- * Just copy from the original to the return object
+ * Just copy from the original to the return object
+ *
+ * TBD: [Future] - need a low-level object copy that handles
+ * the reference count automatically. (Don't want to copy it)
*/
- switch (node->type)
- {
- case ACPI_TYPE_PROCESSOR:
- obj_desc->processor.proc_id = val_desc->processor.proc_id;
- obj_desc->processor.address = val_desc->processor.address;
- obj_desc->processor.sys_handler = val_desc->processor.sys_handler;
- obj_desc->processor.drv_handler = val_desc->processor.drv_handler;
- obj_desc->processor.addr_handler = val_desc->processor.addr_handler;
-
- break;
-
- case ACPI_TYPE_POWER:
- obj_desc->power_resource.system_level = val_desc->power_resource.system_level;
- obj_desc->power_resource.resource_order = val_desc->power_resource.resource_order;
- obj_desc->power_resource.sys_handler = val_desc->power_resource.sys_handler;
- obj_desc->power_resource.drv_handler = val_desc->power_resource.drv_handler;
-
- break;
- }
+ MEMCPY (obj_desc, val_desc, sizeof (ACPI_OPERAND_OBJECT));
+ obj_desc->common.reference_count = 1;
}
@@ -483,9 +469,17 @@
* NOTE: we can get away with passing in NULL for a walk state
* because Obj_desc is guaranteed to not be a reference to either
* a method local or a method argument
+ *
+ * Even though we do not technically need to use the interpreter
+ * for this, we must enter it because we could hit an opregion.
+ * The opregion access code assumes it is in the interpreter.
*/
+ acpi_aml_enter_interpreter();
+
status = acpi_aml_resolve_to_value (&obj_desc, NULL);
+
+ acpi_aml_exit_interpreter();
}
/*
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)