diff options
Diffstat (limited to 'source/tools')
-rw-r--r-- | source/tools/acpiexec/aecommon.h | 5 | ||||
-rw-r--r-- | source/tools/acpiexec/aehandlers.c | 13 | ||||
-rw-r--r-- | source/tools/acpiexec/aeinitfile.c | 81 | ||||
-rw-r--r-- | source/tools/acpiexec/aemain.c | 2 | ||||
-rw-r--r-- | source/tools/acpiexec/aetests.c | 16 | ||||
-rw-r--r-- | source/tools/acpihelp/ahdecode.c | 2 | ||||
-rw-r--r-- | source/tools/acpinames/anstubs.c | 17 | ||||
-rw-r--r-- | source/tools/acpisrc/asfile.c | 2 | ||||
-rw-r--r-- | source/tools/acpisrc/asremove.c | 5 |
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 */ |