summaryrefslogtreecommitdiff
path: root/source/components
diff options
context:
space:
mode:
Diffstat (limited to 'source/components')
-rw-r--r--source/components/dispatcher/dsinit.c2
-rw-r--r--source/components/events/evgpe.c9
-rw-r--r--source/components/events/evgpeblk.c2
-rw-r--r--source/components/events/evxface.c2
-rw-r--r--source/components/events/evxfgpe.c2
-rw-r--r--source/components/executer/exconfig.c12
-rw-r--r--source/components/namespace/nsaccess.c57
-rw-r--r--source/components/namespace/nseval.c210
-rw-r--r--source/components/namespace/nsinit.c51
-rw-r--r--source/components/namespace/nsload.c12
-rw-r--r--source/components/namespace/nsutils.c13
-rw-r--r--source/components/tables/tbdata.c13
-rw-r--r--source/components/tables/tbxfload.c7
-rw-r--r--source/components/utilities/utinit.c1
-rw-r--r--source/components/utilities/utxfinit.c18
15 files changed, 97 insertions, 314 deletions
diff --git a/source/components/dispatcher/dsinit.c b/source/components/dispatcher/dsinit.c
index e7045f461a8a..9810f9ff3f71 100644
--- a/source/components/dispatcher/dsinit.c
+++ b/source/components/dispatcher/dsinit.c
@@ -362,7 +362,7 @@ AcpiDsInitializeObjects (
if (ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_DSDT))
{
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
- "\nInitializing Namespace objects:\n"));
+ "\nACPI table initialization:\n"));
}
/* Summary of objects initialized */
diff --git a/source/components/events/evgpe.c b/source/components/events/evgpe.c
index f5ea992a270b..a7ee84c92f11 100644
--- a/source/components/events/evgpe.c
+++ b/source/components/events/evgpe.c
@@ -316,6 +316,7 @@ AcpiEvMaskGpe (
* FUNCTION: AcpiEvAddGpeReference
*
* PARAMETERS: GpeEventInfo - Add a reference to this GPE
+ * ClearOnEnable - Clear GPE status before enabling it
*
* RETURN: Status
*
@@ -326,7 +327,8 @@ AcpiEvMaskGpe (
ACPI_STATUS
AcpiEvAddGpeReference (
- ACPI_GPE_EVENT_INFO *GpeEventInfo)
+ ACPI_GPE_EVENT_INFO *GpeEventInfo,
+ BOOLEAN ClearOnEnable)
{
ACPI_STATUS Status = AE_OK;
@@ -344,6 +346,11 @@ AcpiEvAddGpeReference (
{
/* Enable on first reference */
+ if (ClearOnEnable)
+ {
+ (void) AcpiHwClearGpe (GpeEventInfo);
+ }
+
Status = AcpiEvUpdateGpeEnableMask (GpeEventInfo);
if (ACPI_SUCCESS (Status))
{
diff --git a/source/components/events/evgpeblk.c b/source/components/events/evgpeblk.c
index 7e1dd1960cc8..80157dcd362f 100644
--- a/source/components/events/evgpeblk.c
+++ b/source/components/events/evgpeblk.c
@@ -637,7 +637,7 @@ AcpiEvInitializeGpeBlock (
continue;
}
- Status = AcpiEvAddGpeReference (GpeEventInfo);
+ Status = AcpiEvAddGpeReference (GpeEventInfo, FALSE);
if (ACPI_FAILURE (Status))
{
ACPI_EXCEPTION ((AE_INFO, Status,
diff --git a/source/components/events/evxface.c b/source/components/events/evxface.c
index 8577a6d02d82..8e8eacf70224 100644
--- a/source/components/events/evxface.c
+++ b/source/components/events/evxface.c
@@ -1256,7 +1256,7 @@ AcpiRemoveGpeHandler (
ACPI_GPE_DISPATCH_NOTIFY)) &&
Handler->OriginallyEnabled)
{
- (void) AcpiEvAddGpeReference (GpeEventInfo);
+ (void) AcpiEvAddGpeReference (GpeEventInfo, FALSE);
if (ACPI_GPE_IS_POLLING_NEEDED (GpeEventInfo))
{
/* Poll edge triggered GPEs to handle existing events */
diff --git a/source/components/events/evxfgpe.c b/source/components/events/evxfgpe.c
index 52061db190cc..1dc0fe1d2963 100644
--- a/source/components/events/evxfgpe.c
+++ b/source/components/events/evxfgpe.c
@@ -267,7 +267,7 @@ AcpiEnableGpe (
if (ACPI_GPE_DISPATCH_TYPE (GpeEventInfo->Flags) !=
ACPI_GPE_DISPATCH_NONE)
{
- Status = AcpiEvAddGpeReference (GpeEventInfo);
+ Status = AcpiEvAddGpeReference (GpeEventInfo, TRUE);
if (ACPI_SUCCESS (Status) &&
ACPI_GPE_IS_POLLING_NEEDED (GpeEventInfo))
{
diff --git a/source/components/executer/exconfig.c b/source/components/executer/exconfig.c
index 84a058adaf7b..eba1a6d28ba3 100644
--- a/source/components/executer/exconfig.c
+++ b/source/components/executer/exconfig.c
@@ -342,10 +342,9 @@ AcpiExLoadTableOp (
return_ACPI_STATUS (Status);
}
- /* Complete the initialization/resolution of package objects */
+ /* Complete the initialization/resolution of new objects */
- Status = AcpiNsWalkNamespace (ACPI_TYPE_PACKAGE, ACPI_ROOT_OBJECT,
- ACPI_UINT32_MAX, 0, AcpiNsInitOnePackage, NULL, NULL, NULL);
+ AcpiNsInitializeObjects ();
/* Parameter Data (optional) */
@@ -620,10 +619,11 @@ AcpiExLoadOp (
return_ACPI_STATUS (Status);
}
- /* Complete the initialization/resolution of package objects */
+ /* Complete the initialization/resolution of new objects */
- Status = AcpiNsWalkNamespace (ACPI_TYPE_PACKAGE, ACPI_ROOT_OBJECT,
- ACPI_UINT32_MAX, 0, AcpiNsInitOnePackage, NULL, NULL, NULL);
+ AcpiExExitInterpreter ();
+ AcpiNsInitializeObjects ();
+ AcpiExEnterInterpreter ();
/* Store the DdbHandle into the Target operand */
diff --git a/source/components/namespace/nsaccess.c b/source/components/namespace/nsaccess.c
index 94dba1307a59..4be555c080e8 100644
--- a/source/components/namespace/nsaccess.c
+++ b/source/components/namespace/nsaccess.c
@@ -184,6 +184,7 @@ AcpiNsRootInitialize (
ACPI_STATUS Status;
const ACPI_PREDEFINED_NAMES *InitVal = NULL;
ACPI_NAMESPACE_NODE *NewNode;
+ ACPI_NAMESPACE_NODE *PrevNode = NULL;
ACPI_OPERAND_OBJECT *ObjDesc;
ACPI_STRING Val = NULL;
@@ -213,13 +214,30 @@ AcpiNsRootInitialize (
*/
AcpiGbl_RootNode = &AcpiGbl_RootNodeStruct;
- /* Enter the pre-defined names in the name table */
+ /* Enter the predefined names in the name table */
ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
"Entering predefined entries into namespace\n"));
+ /*
+ * Create the initial (default) namespace.
+ * This namespace looks like something similar to this:
+ *
+ * ACPI Namespace (from Namespace Root):
+ * 0 _GPE Scope 00203160 00
+ * 0 _PR_ Scope 002031D0 00
+ * 0 _SB_ Device 00203240 00 Notify Object: 0020ADD8
+ * 0 _SI_ Scope 002032B0 00
+ * 0 _TZ_ Device 00203320 00
+ * 0 _REV Integer 00203390 00 = 0000000000000002
+ * 0 _OS_ String 00203488 00 Len 14 "Microsoft Windows NT"
+ * 0 _GL_ Mutex 00203580 00 Object 002035F0
+ * 0 _OSI Method 00203678 00 Args 1 Len 0000 Aml 00000000
+ */
for (InitVal = AcpiGbl_PreDefinedNames; InitVal->Name; InitVal++)
{
+ Status = AE_OK;
+
/* _OSI is optional for now, will be permanent later */
if (!strcmp (InitVal->Name, "_OSI") && !AcpiGbl_CreateOsiMethod)
@@ -227,17 +245,35 @@ AcpiNsRootInitialize (
continue;
}
- Status = AcpiNsLookup (NULL, ACPI_CAST_PTR (char, InitVal->Name),
- InitVal->Type, ACPI_IMODE_LOAD_PASS2, ACPI_NS_NO_UPSEARCH,
- NULL, &NewNode);
- if (ACPI_FAILURE (Status))
+ /*
+ * Create, init, and link the new predefined name
+ * Note: No need to use AcpiNsLookup here because all the
+ * predefined names are at the root level. It is much easier to
+ * just create and link the new node(s) here.
+ */
+ NewNode = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_NAMESPACE_NODE));
+ if (!NewNode)
{
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Could not create predefined name %s",
- InitVal->Name));
- continue;
+ Status = AE_NO_MEMORY;
+ goto UnlockAndExit;
}
+ ACPI_COPY_NAMESEG (NewNode->Name.Ascii, InitVal->Name);
+ NewNode->DescriptorType = ACPI_DESC_TYPE_NAMED;
+ NewNode->Type = InitVal->Type;
+
+ if (!PrevNode)
+ {
+ AcpiGbl_RootNodeStruct.Child = NewNode;
+ }
+ else
+ {
+ PrevNode->Peer = NewNode;
+ }
+
+ NewNode->Parent = &AcpiGbl_RootNodeStruct;
+ PrevNode = NewNode;
+
/*
* Name entered successfully. If entry in PreDefinedNames[] specifies
* an initial value, create the initial value.
@@ -286,7 +322,7 @@ AcpiNsRootInitialize (
NewNode->Value = ObjDesc->Method.ParamCount;
#else
- /* Mark this as a very SPECIAL method */
+ /* Mark this as a very SPECIAL method (_OSI) */
ObjDesc->Method.InfoFlags = ACPI_METHOD_INTERNAL_ONLY;
ObjDesc->Method.Dispatch.Implementation = AcpiUtOsiImplementation;
@@ -359,7 +395,6 @@ AcpiNsRootInitialize (
}
}
-
UnlockAndExit:
(void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
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;
-}
diff --git a/source/components/namespace/nsinit.c b/source/components/namespace/nsinit.c
index 4dd28fd4e69e..51f98339489f 100644
--- a/source/components/namespace/nsinit.c
+++ b/source/components/namespace/nsinit.c
@@ -212,29 +212,30 @@ AcpiNsInitializeObjects (
ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
"**** Starting initialization of namespace objects ****\n"));
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
- "Completing Region/Field/Buffer/Package initialization:\n"));
+ "Final data object initialization: "));
- /* Set all init info to zero */
+ /* Clear the info block */
memset (&Info, 0, sizeof (ACPI_INIT_WALK_INFO));
/* Walk entire namespace from the supplied root */
+ /*
+ * TBD: will become ACPI_TYPE_PACKAGE as this type object
+ * is now the only one that supports deferred initialization
+ * (forward references).
+ */
Status = AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT,
- ACPI_UINT32_MAX, AcpiNsInitOneObject, NULL,
- &Info, NULL);
+ ACPI_UINT32_MAX, AcpiNsInitOneObject, NULL, &Info, NULL);
if (ACPI_FAILURE (Status))
{
ACPI_EXCEPTION ((AE_INFO, Status, "During WalkNamespace"));
}
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
- " Initialized %u/%u Regions %u/%u Fields %u/%u "
- "Buffers %u/%u Packages (%u nodes)\n",
- Info.OpRegionInit, Info.OpRegionCount,
- Info.FieldInit, Info.FieldCount,
- Info.BufferInit, Info.BufferCount,
- Info.PackageInit, Info.PackageCount, Info.ObjectCount));
+ "Namespace contains %u (0x%X) objects\n",
+ Info.ObjectCount,
+ Info.ObjectCount));
ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
"%u Control Methods found\n%u Op Regions found\n",
@@ -561,35 +562,19 @@ AcpiNsInitOneObject (
AcpiExEnterInterpreter ();
/*
- * Each of these types can contain executable AML code within the
- * declaration.
+ * Only initialization of Package objects can be deferred, in order
+ * to support forward references.
*/
switch (Type)
{
- case ACPI_TYPE_REGION:
-
- Info->OpRegionInit++;
- Status = AcpiDsGetRegionArguments (ObjDesc);
- break;
-
- case ACPI_TYPE_BUFFER_FIELD:
-
- Info->FieldInit++;
- Status = AcpiDsGetBufferFieldArguments (ObjDesc);
- break;
-
case ACPI_TYPE_LOCAL_BANK_FIELD:
+ /* TBD: BankFields do not require deferred init, remove this code */
+
Info->FieldInit++;
Status = AcpiDsGetBankFieldArguments (ObjDesc);
break;
- case ACPI_TYPE_BUFFER:
-
- Info->BufferInit++;
- Status = AcpiDsGetBufferArguments (ObjDesc);
- break;
-
case ACPI_TYPE_PACKAGE:
/* Complete the initialization/resolution of the package object */
@@ -600,8 +585,12 @@ AcpiNsInitOneObject (
default:
- /* No other types can get here */
+ /* No other types should get here */
+ Status = AE_TYPE;
+ ACPI_EXCEPTION ((AE_INFO, Status,
+ "Opcode is not deferred [%4.4s] (%s)",
+ AcpiUtGetNodeName (Node), AcpiUtGetTypeName (Type)));
break;
}
diff --git a/source/components/namespace/nsload.c b/source/components/namespace/nsload.c
index f5a82347af92..f7aaa11d2277 100644
--- a/source/components/namespace/nsload.c
+++ b/source/components/namespace/nsload.c
@@ -268,18 +268,6 @@ Unlock:
ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
"**** Completed Table Object Initialization\n"));
- /*
- * This case handles the legacy option that groups all module-level
- * code blocks together and defers execution until all of the tables
- * are loaded. Execute all of these blocks at this time.
- * Execute any module-level code that was detected during the table
- * load phase.
- *
- * Note: this option is deprecated and will be eliminated in the
- * future. Use of this option can cause problems with AML code that
- * depends upon in-order immediate execution of module-level code.
- */
- AcpiNsExecModuleCodeList ();
return_ACPI_STATUS (Status);
}
diff --git a/source/components/namespace/nsutils.c b/source/components/namespace/nsutils.c
index 85732ff8b7bd..581ad5f3fd43 100644
--- a/source/components/namespace/nsutils.c
+++ b/source/components/namespace/nsutils.c
@@ -802,24 +802,11 @@ AcpiNsTerminate (
void)
{
ACPI_STATUS Status;
- ACPI_OPERAND_OBJECT *Prev;
- ACPI_OPERAND_OBJECT *Next;
ACPI_FUNCTION_TRACE (NsTerminate);
- /* Delete any module-level code blocks */
-
- Next = AcpiGbl_ModuleCodeList;
- while (Next)
- {
- Prev = Next;
- Next = Next->Method.Mutex;
- Prev->Method.Mutex = NULL; /* Clear the Mutex (cheated) field */
- AcpiUtRemoveReference (Prev);
- }
-
/*
* Free the entire namespace -- all nodes and all objects
* attached to the nodes
diff --git a/source/components/tables/tbdata.c b/source/components/tables/tbdata.c
index 9d86fdbc70ba..ba0c9108d53e 100644
--- a/source/components/tables/tbdata.c
+++ b/source/components/tables/tbdata.c
@@ -1191,19 +1191,6 @@ AcpiTbLoadTable (
Status = AcpiNsLoadTable (TableIndex, ParentNode);
/*
- * This case handles the legacy option that groups all module-level
- * code blocks together and defers execution until all of the tables
- * are loaded. Execute all of these blocks at this time.
- * Execute any module-level code that was detected during the table
- * load phase.
- *
- * Note: this option is deprecated and will be eliminated in the
- * future. Use of this option can cause problems with AML code that
- * depends upon in-order immediate execution of module-level code.
- */
- AcpiNsExecModuleCodeList ();
-
- /*
* Update GPEs for any new _Lxx/_Exx methods. Ignore errors. The host is
* responsible for discovering any new wake GPEs by running _PRW methods
* that may have been loaded by this table.
diff --git a/source/components/tables/tbxfload.c b/source/components/tables/tbxfload.c
index 217d54bf0a60..1e17db6c8c93 100644
--- a/source/components/tables/tbxfload.c
+++ b/source/components/tables/tbxfload.c
@@ -479,6 +479,13 @@ AcpiLoadTable (
ACPI_INFO (("Host-directed Dynamic ACPI Table Load:"));
Status = AcpiTbInstallAndLoadTable (ACPI_PTR_TO_PHYSADDR (Table),
ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL, FALSE, &TableIndex);
+ if (ACPI_SUCCESS (Status))
+ {
+ /* Complete the initialization/resolution of new objects */
+
+ AcpiNsInitializeObjects ();
+ }
+
return_ACPI_STATUS (Status);
}
diff --git a/source/components/utilities/utinit.c b/source/components/utilities/utinit.c
index d83d7dabad1e..3e7ed41fe35c 100644
--- a/source/components/utilities/utinit.c
+++ b/source/components/utilities/utinit.c
@@ -342,7 +342,6 @@ AcpiUtInitGlobals (
/* Namespace */
- AcpiGbl_ModuleCodeList = NULL;
AcpiGbl_RootNode = NULL;
AcpiGbl_RootNodeStruct.Name.Integer = ACPI_ROOT_NAME;
AcpiGbl_RootNodeStruct.DescriptorType = ACPI_DESC_TYPE_NAMED;
diff --git a/source/components/utilities/utxfinit.c b/source/components/utilities/utxfinit.c
index f0c46c027bd7..d0b49bba86f1 100644
--- a/source/components/utilities/utxfinit.c
+++ b/source/components/utilities/utxfinit.c
@@ -381,24 +381,17 @@ AcpiInitializeObjects (
ACPI_FUNCTION_TRACE (AcpiInitializeObjects);
+#ifdef ACPI_OBSOLETE_BEHAVIOR
/*
- * This case handles the legacy option that groups all module-level
- * code blocks together and defers execution until all of the tables
- * are loaded. Execute all of these blocks at this time.
- * Execute any module-level code that was detected during the table
- * load phase.
- *
- * Note: this option is deprecated and will be eliminated in the
- * future. Use of this option can cause problems with AML code that
- * depends upon in-order immediate execution of module-level code.
+ * 05/2019: Removed, initialization now happens at both object
+ * creation and table load time
*/
- AcpiNsExecModuleCodeList ();
/*
* Initialize the objects that remain uninitialized. This
* runs the executable AML that may be part of the
- * declaration of these objects:
- * OperationRegions, BufferFields, Buffers, and Packages.
+ * declaration of these objects: OperationRegions, BufferFields,
+ * BankFields, Buffers, and Packages.
*/
if (!(Flags & ACPI_NO_OBJECT_INIT))
{
@@ -408,6 +401,7 @@ AcpiInitializeObjects (
return_ACPI_STATUS (Status);
}
}
+#endif
/*
* Initialize all device/region objects in the namespace. This runs