1/*******************************************************************************
2 *
3 * Module Name: nseval - Object evaluation interfaces -- includes control
4 * method lookup and execution.
5 * $Revision: 123 $
6 *
7 ******************************************************************************/
8
9/******************************************************************************
10 *
11 * 1. Copyright Notice
12 *
13 * Some or all of this work - Copyright (c) 1999 - 2004, Intel Corp.
--- 138 unchanged lines hidden (view full) ---
152
153ACPI_STATUS
154AcpiNsEvaluateRelative (
155 ACPI_NAMESPACE_NODE *Handle,
156 char *Pathname,
157 ACPI_OPERAND_OBJECT **Params,
158 ACPI_OPERAND_OBJECT **ReturnObject)
159{
160 ACPI_NAMESPACE_NODE *PrefixNode;
161 ACPI_STATUS Status;
162 ACPI_NAMESPACE_NODE *Node = NULL;
163 char *InternalPath = NULL;
164 ACPI_GENERIC_STATE ScopeInfo;
165
166
167 ACPI_FUNCTION_TRACE ("NsEvaluateRelative");
168
169
170 /*
171 * Must have a valid object handle
172 */
--- 5 unchanged lines hidden (view full) ---
178 /* Build an internal name string for the method */
179
180 Status = AcpiNsInternalizeName (Pathname, &InternalPath);
181 if (ACPI_FAILURE (Status))
182 {
183 return_ACPI_STATUS (Status);
184 }
185
186 /* Get the prefix handle and Node */
187
188 Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
189 if (ACPI_FAILURE (Status))
190 {
191 goto Cleanup;
192 }
193
194 PrefixNode = AcpiNsMapHandleToNode (Handle);
195 if (!PrefixNode)
196 {
197 (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
198 Status = AE_BAD_PARAMETER;
199 goto Cleanup;
200 }
201
202 /* Lookup the name in the namespace */
203
204 ScopeInfo.Scope.Node = PrefixNode;
205 Status = AcpiNsLookup (&ScopeInfo, InternalPath, ACPI_TYPE_ANY,
206 ACPI_IMODE_EXECUTE, ACPI_NS_NO_UPSEARCH, NULL,
207 &Node);
208
209 (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
210
211 if (ACPI_FAILURE (Status))
212 {
213 ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Object [%s] not found [%s]\n",
--- 9 unchanged lines hidden (view full) ---
223 Pathname, Node, AcpiNsGetAttachedObject (Node)));
224
225 Status = AcpiNsEvaluateByHandle (Node, Params, ReturnObject);
226
227 ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "*** Completed eval of object %s ***\n",
228 Pathname));
229
230Cleanup:
231
232 ACPI_MEM_FREE (InternalPath);
233 return_ACPI_STATUS (Status);
234}
235
236
237/*******************************************************************************
238 *
239 * FUNCTION: AcpiNsEvaluateByName
--- 375 unchanged lines hidden ---
2 *
3 * Module Name: nseval - Object evaluation interfaces -- includes control
4 * method lookup and execution.
5 * $Revision: 123 $
6 *
7 ******************************************************************************/
8
9/******************************************************************************
10 *
11 * 1. Copyright Notice
12 *
13 * Some or all of this work - Copyright (c) 1999 - 2004, Intel Corp.
--- 138 unchanged lines hidden (view full) ---
152
153ACPI_STATUS
154AcpiNsEvaluateRelative (
155 ACPI_NAMESPACE_NODE *Handle,
156 char *Pathname,
157 ACPI_OPERAND_OBJECT **Params,
158 ACPI_OPERAND_OBJECT **ReturnObject)
159{
160 ACPI_NAMESPACE_NODE *PrefixNode;
161 ACPI_STATUS Status;
162 ACPI_NAMESPACE_NODE *Node = NULL;
163 char *InternalPath = NULL;
164 ACPI_GENERIC_STATE ScopeInfo;
165
166
167 ACPI_FUNCTION_TRACE ("NsEvaluateRelative");
168
169
170 /*
171 * Must have a valid object handle
172 */
--- 5 unchanged lines hidden (view full) ---
178 /* Build an internal name string for the method */
179
180 Status = AcpiNsInternalizeName (Pathname, &InternalPath);
181 if (ACPI_FAILURE (Status))
182 {
183 return_ACPI_STATUS (Status);
184 }
185
186 /* Get the prefix handle and Node */
187
188 Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
189 if (ACPI_FAILURE (Status))
190 {
191 goto Cleanup;
192 }
193
194 PrefixNode = AcpiNsMapHandleToNode (Handle);
195 if (!PrefixNode)
196 {
197 (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
198 Status = AE_BAD_PARAMETER;
199 goto Cleanup;
200 }
201
202 /* Lookup the name in the namespace */
203
204 ScopeInfo.Scope.Node = PrefixNode;
205 Status = AcpiNsLookup (&ScopeInfo, InternalPath, ACPI_TYPE_ANY,
206 ACPI_IMODE_EXECUTE, ACPI_NS_NO_UPSEARCH, NULL,
207 &Node);
208
209 (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
210
211 if (ACPI_FAILURE (Status))
212 {
213 ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Object [%s] not found [%s]\n",
--- 9 unchanged lines hidden (view full) ---
223 Pathname, Node, AcpiNsGetAttachedObject (Node)));
224
225 Status = AcpiNsEvaluateByHandle (Node, Params, ReturnObject);
226
227 ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "*** Completed eval of object %s ***\n",
228 Pathname));
229
230Cleanup:
231
232 ACPI_MEM_FREE (InternalPath);
233 return_ACPI_STATUS (Status);
234}
235
236
237/*******************************************************************************
238 *
239 * FUNCTION: AcpiNsEvaluateByName
--- 375 unchanged lines hidden ---