summaryrefslogtreecommitdiff
path: root/source/tools
diff options
context:
space:
mode:
Diffstat (limited to 'source/tools')
-rw-r--r--source/tools/acpiexec/aecommon.h5
-rw-r--r--source/tools/acpiexec/aehandlers.c13
-rw-r--r--source/tools/acpiexec/aeinitfile.c81
-rw-r--r--source/tools/acpiexec/aemain.c2
-rw-r--r--source/tools/acpiexec/aetests.c16
-rw-r--r--source/tools/acpihelp/ahdecode.c2
-rw-r--r--source/tools/acpinames/anstubs.c17
-rw-r--r--source/tools/acpisrc/asfile.c2
-rw-r--r--source/tools/acpisrc/asremove.c5
9 files changed, 99 insertions, 44 deletions
diff --git a/source/tools/acpiexec/aecommon.h b/source/tools/acpiexec/aecommon.h
index 602356de9dcc..257632f7b441 100644
--- a/source/tools/acpiexec/aecommon.h
+++ b/source/tools/acpiexec/aecommon.h
@@ -195,7 +195,8 @@ typedef struct ae_debug_regions
typedef struct init_file_entry
{
char *Name;
- UINT64 Value;
+ ACPI_OPERAND_OBJECT *ObjDesc;
+
} INIT_FILE_ENTRY;
extern BOOLEAN AcpiGbl_UseLocalFaultHandler;
@@ -356,7 +357,7 @@ AeSetupConfiguration (
ACPI_STATUS
AeLookupInitFileEntry (
char *Pathname,
- UINT64 *Value);
+ ACPI_OPERAND_OBJECT **ObjDesc);
/* aeexec */
diff --git a/source/tools/acpiexec/aehandlers.c b/source/tools/acpiexec/aehandlers.c
index 75e8eb0a0948..f7dd012e9714 100644
--- a/source/tools/acpiexec/aehandlers.c
+++ b/source/tools/acpiexec/aehandlers.c
@@ -683,20 +683,27 @@ AeInstallLateHandlers (
{
Status = AcpiInstallNotifyHandler (Handle, ACPI_ALL_NOTIFY,
AeNotifyHandler1, ACPI_CAST_PTR (void, 0x01234567));
+ ACPI_CHECK_OK (AcpiInstallNotifyHandler, Status);
Status = AcpiInstallNotifyHandler (Handle, ACPI_ALL_NOTIFY,
AeNotifyHandler2, ACPI_CAST_PTR (void, 0x89ABCDEF));
+ ACPI_CHECK_OK (AcpiInstallNotifyHandler, Status);
Status = AcpiRemoveNotifyHandler (Handle, ACPI_ALL_NOTIFY,
AeNotifyHandler1);
+ ACPI_CHECK_OK (AcpiInstallNotifyHandler, Status);
+
Status = AcpiRemoveNotifyHandler (Handle, ACPI_ALL_NOTIFY,
AeNotifyHandler2);
+ ACPI_CHECK_OK (AcpiInstallNotifyHandler, Status);
Status = AcpiInstallNotifyHandler (Handle, ACPI_ALL_NOTIFY,
AeNotifyHandler2, ACPI_CAST_PTR (void, 0x89ABCDEF));
+ ACPI_CHECK_OK (AcpiInstallNotifyHandler, Status);
Status = AcpiInstallNotifyHandler (Handle, ACPI_ALL_NOTIFY,
AeNotifyHandler1, ACPI_CAST_PTR (void, 0x01234567));
+ ACPI_CHECK_OK (AcpiInstallNotifyHandler, Status);
}
Status = AcpiGetHandle (NULL, "\\_PR.CPU0", &Handle);
@@ -704,9 +711,11 @@ AeInstallLateHandlers (
{
Status = AcpiInstallNotifyHandler (Handle, ACPI_ALL_NOTIFY,
AeNotifyHandler1, ACPI_CAST_PTR (void, 0x01234567));
+ ACPI_CHECK_OK (AcpiInstallNotifyHandler, Status);
Status = AcpiInstallNotifyHandler (Handle, ACPI_SYSTEM_NOTIFY,
AeNotifyHandler2, ACPI_CAST_PTR (void, 0x89ABCDEF));
+ ACPI_CHECK_OK (AcpiInstallNotifyHandler, Status);
}
#if (!ACPI_REDUCED_HARDWARE)
@@ -855,13 +864,15 @@ AeInstallEarlyHandlers (
Status = AcpiInstallNotifyHandler (Handle, ACPI_SYSTEM_NOTIFY,
AeNotifyHandler1, ACPI_CAST_PTR (void, 0x01234567));
+ ACPI_CHECK_OK(AcpiInstallNotifyHandler, Status);
Status = AcpiInstallNotifyHandler (Handle, ACPI_SYSTEM_NOTIFY,
AeNotifyHandler2, ACPI_CAST_PTR (void, 0x89ABCDEF));
+ ACPI_CHECK_OK(AcpiInstallNotifyHandler, Status);
/* Attempt duplicate handler installation, should fail */
- Status = AcpiInstallNotifyHandler (Handle, ACPI_SYSTEM_NOTIFY,
+ (void) AcpiInstallNotifyHandler (Handle, ACPI_SYSTEM_NOTIFY,
AeNotifyHandler1, ACPI_CAST_PTR (void, 0x77777777));
Status = AcpiAttachData (Handle, AeAttachedDataHandler, Handle);
diff --git a/source/tools/acpiexec/aeinitfile.c b/source/tools/acpiexec/aeinitfile.c
index f895e2ccec99..35e2b8b8d643 100644
--- a/source/tools/acpiexec/aeinitfile.c
+++ b/source/tools/acpiexec/aeinitfile.c
@@ -224,9 +224,13 @@ AeProcessInitFile(
void)
{
ACPI_WALK_STATE *WalkState;
- int i;
UINT64 idx;
ACPI_STATUS Status;
+ char *Token;
+ char *ObjectBuffer;
+ char *TempNameBuffer;
+ ACPI_OBJECT_TYPE Type;
+ ACPI_OBJECT TempObject;
if (!InitFile)
@@ -249,26 +253,44 @@ AeProcessInitFile(
AcpiOsAllocate (sizeof (INIT_FILE_ENTRY) * AcpiGbl_InitFileLineCount);
for (idx = 0; fgets (LineBuffer, AE_FILE_BUFFER_SIZE, InitFile); ++idx)
{
- if (sscanf (LineBuffer, "%s %s\n",
- &NameBuffer[1], ValueBuffer) != 2)
+
+ TempNameBuffer = AcpiDbGetNextToken (LineBuffer, &Token, &Type);
+ if (LineBuffer[0] == '\\')
{
- goto CleanupAndExit;
+ strcpy (NameBuffer, TempNameBuffer);
+ }
+ else
+ {
+ /* Add a root prefix if not present in the string */
+
+ strcpy (NameBuffer + 1, TempNameBuffer);
}
- /* Add a root prefix if not present in the string */
+ AcpiGbl_InitEntries[idx].Name =
+ AcpiOsAllocateZeroed (strnlen (NameBuffer, AE_FILE_BUFFER_SIZE) + 1);
+
+ strcpy (AcpiGbl_InitEntries[idx].Name, NameBuffer);
+
+ ObjectBuffer = AcpiDbGetNextToken (Token, &Token, &Type);
- i = 0;
- if (NameBuffer[1] == '\\')
+ if (Type == ACPI_TYPE_FIELD_UNIT)
+ {
+ Status = AcpiDbConvertToObject (ACPI_TYPE_BUFFER, ObjectBuffer,
+ &TempObject);
+ }
+ else
{
- i = 1;
+ Status = AcpiDbConvertToObject (Type, ObjectBuffer, &TempObject);
}
- AcpiGbl_InitEntries[idx].Name =
- AcpiOsAllocateZeroed (strnlen (NameBuffer + i, AE_FILE_BUFFER_SIZE) + 1);
+ Status = AcpiUtCopyEobjectToIobject (&TempObject,
+ &AcpiGbl_InitEntries[idx].ObjDesc);
- strcpy (AcpiGbl_InitEntries[idx].Name, NameBuffer + i);
+ if (Type == ACPI_TYPE_BUFFER || Type == ACPI_TYPE_FIELD_UNIT)
+ {
+ ACPI_FREE (TempObject.Buffer.Pointer);
+ }
- Status = AcpiUtStrtoul64 (ValueBuffer, &AcpiGbl_InitEntries[idx].Value);
if (ACPI_FAILURE (Status))
{
AcpiOsPrintf ("%s %s\n", ValueBuffer,
@@ -276,7 +298,16 @@ AeProcessInitFile(
goto CleanupAndExit;
}
- AeEnterInitFileEntry (AcpiGbl_InitEntries[idx], WalkState);
+ /*
+ * Special case for field units. Field units are dependent on the
+ * parent region. This parent region has yet to be created so defer the
+ * initialization until the dispatcher. For all other types, initialize
+ * the namespace node with the value found in the init file.
+ */
+ if (Type != ACPI_TYPE_FIELD_UNIT)
+ {
+ AeEnterInitFileEntry (AcpiGbl_InitEntries[idx], WalkState);
+ }
}
/* Cleanup */
@@ -309,14 +340,12 @@ AeEnterInitFileEntry (
ACPI_WALK_STATE *WalkState)
{
char *Pathname = InitEntry.Name;
- UINT64 Value = InitEntry.Value;
- ACPI_OPERAND_OBJECT *ObjDesc;
+ ACPI_OPERAND_OBJECT *ObjDesc = InitEntry.ObjDesc;
ACPI_NAMESPACE_NODE *NewNode;
ACPI_STATUS Status;
- AcpiOsPrintf ("Initializing namespace element: %s\n", Pathname);
- Status = AcpiNsLookup (NULL, Pathname, ACPI_TYPE_INTEGER,
+ Status = AcpiNsLookup (NULL, Pathname, ObjDesc->Common.Type,
ACPI_IMODE_LOAD_PASS2, ACPI_NS_ERROR_IF_FOUND | ACPI_NS_NO_UPSEARCH |
ACPI_NS_EARLY_INIT, NULL, &NewNode);
if (ACPI_FAILURE (Status))
@@ -327,15 +356,17 @@ AeEnterInitFileEntry (
return;
}
- ObjDesc = AcpiUtCreateIntegerObject (Value);
-
- AcpiOsPrintf ("New value: 0x%8.8X%8.8X\n",
- ACPI_FORMAT_UINT64 (Value));
-
/* Store pointer to value descriptor in the Node */
Status = AcpiNsAttachObject (NewNode, ObjDesc,
- ACPI_TYPE_INTEGER);
+ ObjDesc->Common.Type);
+ if (ACPI_FAILURE (Status))
+ {
+ ACPI_EXCEPTION ((AE_INFO, Status,
+ "While attaching object to node from namespace initialization file: %s",
+ Pathname));
+ return;
+ }
/* Remove local reference to the object */
@@ -359,7 +390,7 @@ AeEnterInitFileEntry (
ACPI_STATUS
AeLookupInitFileEntry (
char *Pathname,
- UINT64 *Value)
+ ACPI_OPERAND_OBJECT **ObjDesc)
{
UINT32 i;
@@ -372,7 +403,7 @@ AeLookupInitFileEntry (
{
if (!strcmp(AcpiGbl_InitEntries[i].Name, Pathname))
{
- *Value = AcpiGbl_InitEntries[i].Value;
+ *ObjDesc = AcpiGbl_InitEntries[i].ObjDesc;
return AE_OK;
}
}
diff --git a/source/tools/acpiexec/aemain.c b/source/tools/acpiexec/aemain.c
index 65664b236021..b5dc37fb5e04 100644
--- a/source/tools/acpiexec/aemain.c
+++ b/source/tools/acpiexec/aemain.c
@@ -841,8 +841,8 @@ NormalExit:
ErrorExit:
AeLateTest ();
+ AcpiOsFree (AcpiGbl_InitEntries);
(void) AcpiTerminate ();
AcDeleteTableList (ListHead);
- AcpiOsFree (AcpiGbl_InitEntries);
return (ExitCode);
}
diff --git a/source/tools/acpiexec/aetests.c b/source/tools/acpiexec/aetests.c
index f11a61283655..24b4e35eaf5a 100644
--- a/source/tools/acpiexec/aetests.c
+++ b/source/tools/acpiexec/aetests.c
@@ -190,6 +190,7 @@ AeMiscellaneousTests (
ACPI_STATUS Status;
ACPI_STATISTICS Stats;
ACPI_HANDLE Handle;
+ UINT32 TableIndex;
#if (!ACPI_REDUCED_HARDWARE)
UINT32 Temp;
@@ -218,18 +219,15 @@ AeMiscellaneousTests (
/* Load and unload SSDT4 */
- Status = AcpiLoadTable ((ACPI_TABLE_HEADER *) Ssdt4Code);
+ Status = AcpiLoadTable ((ACPI_TABLE_HEADER *) Ssdt4Code, &TableIndex);
ACPI_CHECK_OK (AcpiLoadTable, Status);
- Status = AcpiGetHandle (NULL, "\\_T96", &Handle);
- ACPI_CHECK_OK (AcpiGetHandle, Status);
-
- Status = AcpiUnloadParentTable (Handle);
- ACPI_CHECK_OK (AcpiUnloadParentTable, Status);
+ Status = AcpiUnloadTable (TableIndex);
+ ACPI_CHECK_OK (AcpiUnloadTable, Status);
/* Re-load SSDT4 */
- Status = AcpiLoadTable ((ACPI_TABLE_HEADER *) Ssdt4Code);
+ Status = AcpiLoadTable ((ACPI_TABLE_HEADER *) Ssdt4Code, NULL);
ACPI_CHECK_OK (AcpiLoadTable, Status);
/* Unload and re-load SSDT2 (SSDT2 is in the XSDT) */
@@ -240,12 +238,12 @@ AeMiscellaneousTests (
Status = AcpiUnloadParentTable (Handle);
ACPI_CHECK_OK (AcpiUnloadParentTable, Status);
- Status = AcpiLoadTable ((ACPI_TABLE_HEADER *) Ssdt2Code);
+ Status = AcpiLoadTable ((ACPI_TABLE_HEADER *) Ssdt2Code, NULL);
ACPI_CHECK_OK (AcpiLoadTable, Status);
/* Load OEM9 table (causes table override) */
- Status = AcpiLoadTable ((ACPI_TABLE_HEADER *) Ssdt3Code);
+ Status = AcpiLoadTable ((ACPI_TABLE_HEADER *) Ssdt3Code, NULL);
ACPI_CHECK_OK (AcpiLoadTable, Status);
}
diff --git a/source/tools/acpihelp/ahdecode.c b/source/tools/acpihelp/ahdecode.c
index 13b72d6bb149..4e5f9a8d139c 100644
--- a/source/tools/acpihelp/ahdecode.c
+++ b/source/tools/acpihelp/ahdecode.c
@@ -302,7 +302,7 @@ AhFindPredefinedNames (
if (!NamePrefix || (*NamePrefix == '*'))
{
- Found = AhDisplayPredefinedName (NULL, 0);
+ (void) AhDisplayPredefinedName (NULL, 0);
return;
}
diff --git a/source/tools/acpinames/anstubs.c b/source/tools/acpinames/anstubs.c
index af6cb9f8ea6e..5b56cf1eaa01 100644
--- a/source/tools/acpinames/anstubs.c
+++ b/source/tools/acpinames/anstubs.c
@@ -168,6 +168,8 @@
/* Utilities */
+#ifdef ACPI_OBSOLETE_FUNCTIONS
+
ACPI_STATUS
AcpiUtCopyIobjectToEobject (
ACPI_OPERAND_OBJECT *Obj,
@@ -201,6 +203,7 @@ AcpiUtCopyIobjectToIobject (
return (AE_NOT_IMPLEMENTED);
}
+#endif
/* Hardware */
@@ -213,6 +216,8 @@ AcpiHwGetMode (
/* Event manager */
+#ifdef ACPI_OBSOLETE_FUNCTIONS
+
ACPI_STATUS
AcpiEvInstallRegionHandlers (
void)
@@ -233,6 +238,7 @@ AcpiEvInitializeRegion (
{
return (AE_OK);
}
+#endif
ACPI_STATUS
AcpiEvInstallXruptHandlers (
@@ -251,6 +257,8 @@ AcpiEvInitializeEvents (
/* AML Interpreter */
+#ifdef ACPI_OBSOLETE_FUNCTIONS
+
ACPI_STATUS
AcpiExReadDataFromField (
ACPI_WALK_STATE *WalkState,
@@ -288,7 +296,6 @@ AcpiExStoreObjectToNode (
return (AE_NOT_IMPLEMENTED);
}
-
/* Namespace manager */
ACPI_STATUS
@@ -300,6 +307,7 @@ AcpiNsEvaluate (
return (AE_NOT_IMPLEMENTED);
}
+#endif
void
AcpiExDoDebugObject (
@@ -358,6 +366,8 @@ AcpiExTracePoint (
/* Dispatcher */
+#ifdef ACPI_OBSOLETE_FUNCTIONS
+
ACPI_STATUS
AcpiDsAutoSerializeMethod (
ACPI_NAMESPACE_NODE *Node,
@@ -436,6 +446,7 @@ AcpiDsGetPredicateValue (
return (AE_NOT_IMPLEMENTED);
}
+#endif
ACPI_STATUS
AcpiDsGetBufferFieldArguments (
@@ -472,6 +483,8 @@ AcpiDsGetPackageArguments (
return (AE_OK);
}
+#ifdef ACPI_OBSOLETE_FUNCTIONS
+
ACPI_STATUS
AcpiDsExecBeginOp (
ACPI_WALK_STATE *WalkState,
@@ -492,3 +505,5 @@ AcpiDsExecEndOp (
return (AE_NOT_IMPLEMENTED);
}
+#endif
+
diff --git a/source/tools/acpisrc/asfile.c b/source/tools/acpisrc/asfile.c
index e6d764f6879a..6ed04695fb5c 100644
--- a/source/tools/acpisrc/asfile.c
+++ b/source/tools/acpisrc/asfile.c
@@ -546,7 +546,7 @@ AsConvertFile (
{
/* Decode the function bitmap */
- switch ((1 << i) & Functions)
+ switch (((UINT32) 1 << i) & Functions)
{
case 0:
diff --git a/source/tools/acpisrc/asremove.c b/source/tools/acpisrc/asremove.c
index a008e4149940..099e6dd4d4b7 100644
--- a/source/tools/acpisrc/asremove.c
+++ b/source/tools/acpisrc/asremove.c
@@ -264,7 +264,6 @@ AsRemoveConditionalCompile (
KeywordLength = strlen (Keyword);
- SubBuffer = Buffer;
SubString = Buffer;
while (SubString)
@@ -401,7 +400,7 @@ AsRemoveConditionalCompile (
/* Remove the lines */
- SubBuffer = AsRemoveData (SubString, SubBuffer);
+ (void) AsRemoveData (SubString, SubBuffer);
}
}
@@ -591,7 +590,7 @@ AsReduceTypedefs (
/* Remove the typedef itself */
SubBuffer = SubString + strlen ("typedef") + 1;
- SubBuffer = AsRemoveData (SubString, SubBuffer);
+ (void) AsRemoveData (SubString, SubBuffer);
/* Find the opening brace of the struct or union */