summaryrefslogtreecommitdiff
path: root/source/components/namespace/nseval.c
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2019-07-09 17:17:45 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2019-07-09 17:17:45 +0000
commit3d51590acd9ce6cfcd823e3d4d340f04ff800228 (patch)
treed8c7a85f644b22ff2a5e5c9a56190e6798fb381e /source/components/namespace/nseval.c
parent08f4234e06d8d6855c0b79c95da98f267ca3554e (diff)
Notes
Diffstat (limited to 'source/components/namespace/nseval.c')
-rw-r--r--source/components/namespace/nseval.c210
1 files changed, 0 insertions, 210 deletions
diff --git a/source/components/namespace/nseval.c b/source/components/namespace/nseval.c
index 2ecba6396d41..af6a6d4530fb 100644
--- a/source/components/namespace/nseval.c
+++ b/source/components/namespace/nseval.c
@@ -160,13 +160,6 @@
#define _COMPONENT ACPI_NAMESPACE
ACPI_MODULE_NAME ("nseval")
-/* Local prototypes */
-
-static void
-AcpiNsExecModuleCode (
- ACPI_OPERAND_OBJECT *MethodObj,
- ACPI_EVALUATE_INFO *Info);
-
/*******************************************************************************
*
@@ -465,206 +458,3 @@ Cleanup:
Info->FullPathname = NULL;
return_ACPI_STATUS (Status);
}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsExecModuleCodeList
- *
- * PARAMETERS: None
- *
- * RETURN: None. Exceptions during method execution are ignored, since
- * we cannot abort a table load.
- *
- * DESCRIPTION: Execute all elements of the global module-level code list.
- * Each element is executed as a single control method.
- *
- * NOTE: With this option enabled, each block of detected executable AML
- * code that is outside of any control method is wrapped with a temporary
- * control method object and placed on a global list. The methods on this
- * list are executed below.
- *
- * This function executes the module-level code for all tables only after
- * all of the tables have been loaded. It is a legacy option and is
- * not compatible with other ACPI implementations. See AcpiNsLoadTable.
- *
- * This function will be removed when the legacy option is removed.
- *
- ******************************************************************************/
-
-void
-AcpiNsExecModuleCodeList (
- void)
-{
- ACPI_OPERAND_OBJECT *Prev;
- ACPI_OPERAND_OBJECT *Next;
- ACPI_EVALUATE_INFO *Info;
- UINT32 MethodCount = 0;
-
-
- ACPI_FUNCTION_TRACE (NsExecModuleCodeList);
-
-
- /* Exit now if the list is empty */
-
- Next = AcpiGbl_ModuleCodeList;
- if (!Next)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_INIT_NAMES,
- "Legacy MLC block list is empty\n"));
-
- return_VOID;
- }
-
- /* Allocate the evaluation information block */
-
- Info = ACPI_ALLOCATE (sizeof (ACPI_EVALUATE_INFO));
- if (!Info)
- {
- return_VOID;
- }
-
- /* Walk the list, executing each "method" */
-
- while (Next)
- {
- Prev = Next;
- Next = Next->Method.Mutex;
-
- /* Clear the link field and execute the method */
-
- Prev->Method.Mutex = NULL;
- AcpiNsExecModuleCode (Prev, Info);
- MethodCount++;
-
- /* Delete the (temporary) method object */
-
- AcpiUtRemoveReference (Prev);
- }
-
- ACPI_INFO ((
- "Executed %u blocks of module-level executable AML code",
- MethodCount));
-
- ACPI_FREE (Info);
- AcpiGbl_ModuleCodeList = NULL;
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsExecModuleCode
- *
- * PARAMETERS: MethodObj - Object container for the module-level code
- * Info - Info block for method evaluation
- *
- * RETURN: None. Exceptions during method execution are ignored, since
- * we cannot abort a table load.
- *
- * DESCRIPTION: Execute a control method containing a block of module-level
- * executable AML code. The control method is temporarily
- * installed to the root node, then evaluated.
- *
- ******************************************************************************/
-
-static void
-AcpiNsExecModuleCode (
- ACPI_OPERAND_OBJECT *MethodObj,
- ACPI_EVALUATE_INFO *Info)
-{
- ACPI_OPERAND_OBJECT *ParentObj;
- ACPI_NAMESPACE_NODE *ParentNode;
- ACPI_OBJECT_TYPE Type;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (NsExecModuleCode);
-
-
- /*
- * Get the parent node. We cheat by using the NextObject field
- * of the method object descriptor.
- */
- ParentNode = ACPI_CAST_PTR (
- ACPI_NAMESPACE_NODE, MethodObj->Method.NextObject);
- Type = AcpiNsGetType (ParentNode);
-
- /*
- * Get the region handler and save it in the method object. We may need
- * this if an operation region declaration causes a _REG method to be run.
- *
- * We can't do this in AcpiPsLinkModuleCode because
- * AcpiGbl_RootNode->Object is NULL at PASS1.
- */
- if ((Type == ACPI_TYPE_DEVICE) && ParentNode->Object)
- {
- MethodObj->Method.Dispatch.Handler =
- ParentNode->Object->Device.Handler;
- }
-
- /* Must clear NextObject (AcpiNsAttachObject needs the field) */
-
- MethodObj->Method.NextObject = NULL;
-
- /* Initialize the evaluation information block */
-
- memset (Info, 0, sizeof (ACPI_EVALUATE_INFO));
- Info->PrefixNode = ParentNode;
-
- /*
- * Get the currently attached parent object. Add a reference,
- * because the ref count will be decreased when the method object
- * is installed to the parent node.
- */
- ParentObj = AcpiNsGetAttachedObject (ParentNode);
- if (ParentObj)
- {
- AcpiUtAddReference (ParentObj);
- }
-
- /* Install the method (module-level code) in the parent node */
-
- Status = AcpiNsAttachObject (ParentNode, MethodObj, ACPI_TYPE_METHOD);
- if (ACPI_FAILURE (Status))
- {
- goto Exit;
- }
-
- /* Execute the parent node as a control method */
-
- Status = AcpiNsEvaluate (Info);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INIT_NAMES,
- "Executed module-level code at %p\n",
- MethodObj->Method.AmlStart));
-
- /* Delete a possible implicit return value (in slack mode) */
-
- if (Info->ReturnObject)
- {
- AcpiUtRemoveReference (Info->ReturnObject);
- }
-
- /* Detach the temporary method object */
-
- AcpiNsDetachObject (ParentNode);
-
- /* Restore the original parent object */
-
- if (ParentObj)
- {
- Status = AcpiNsAttachObject (ParentNode, ParentObj, Type);
- }
- else
- {
- ParentNode->Type = (UINT8) Type;
- }
-
-Exit:
- if (ParentObj)
- {
- AcpiUtRemoveReference (ParentObj);
- }
- return_VOID;
-}