diff options
Diffstat (limited to 'sys/contrib/dev/acpica/components/utilities')
4 files changed, 64 insertions, 14 deletions
diff --git a/sys/contrib/dev/acpica/components/utilities/uteval.c b/sys/contrib/dev/acpica/components/utilities/uteval.c index 95233f4..dfe2efa 100644 --- a/sys/contrib/dev/acpica/components/utilities/uteval.c +++ b/sys/contrib/dev/acpica/components/utilities/uteval.c @@ -95,7 +95,7 @@ AcpiUtEvaluateObject ( } Info->PrefixNode = PrefixNode; - Info->Pathname = Path; + Info->RelativePathname = Path; /* Evaluate the object/method */ diff --git a/sys/contrib/dev/acpica/components/utilities/utosi.c b/sys/contrib/dev/acpica/components/utilities/utosi.c index b4cc3b0..aaa253d 100644 --- a/sys/contrib/dev/acpica/components/utilities/utosi.c +++ b/sys/contrib/dev/acpica/components/utilities/utosi.c @@ -392,7 +392,7 @@ AcpiUtOsiImplementation ( Status = AcpiOsAcquireMutex (AcpiGbl_OsiMutex, ACPI_WAIT_FOREVER); if (ACPI_FAILURE (Status)) { - AcpiUtDeleteObjectDesc (ReturnDesc); + AcpiUtRemoveReference (ReturnDesc); return_ACPI_STATUS (Status); } diff --git a/sys/contrib/dev/acpica/components/utilities/utpredef.c b/sys/contrib/dev/acpica/components/utilities/utpredef.c index 236d243..8864120 100644 --- a/sys/contrib/dev/acpica/components/utilities/utpredef.c +++ b/sys/contrib/dev/acpica/components/utilities/utpredef.c @@ -166,6 +166,12 @@ AcpiUtGetExpectedReturnTypes ( UINT32 j; + if (!ExpectedBtypes) + { + ACPI_STRCPY (Buffer, "NONE"); + return; + } + j = 1; Buffer[0] = 0; ThisRtype = ACPI_RTYPE_INTEGER; @@ -373,9 +379,7 @@ AcpiUtGetArgumentTypes ( /* First field in the types list is the count of args to follow */ - ArgCount = (ArgumentTypes & METHOD_ARG_MASK); - ArgumentTypes >>= METHOD_ARG_BIT_WIDTH; - + ArgCount = METHOD_GET_ARG_COUNT (ArgumentTypes); if (ArgCount > METHOD_PREDEF_ARGS_MAX) { printf ("**** Invalid argument count (%u) " @@ -387,7 +391,8 @@ AcpiUtGetArgumentTypes ( for (i = 0; i < ArgCount; i++) { - ThisArgumentType = (ArgumentTypes & METHOD_ARG_MASK); + ThisArgumentType = METHOD_GET_NEXT_TYPE (ArgumentTypes); + if (!ThisArgumentType || (ThisArgumentType > METHOD_MAX_ARG_TYPE)) { printf ("**** Invalid argument type (%u) " @@ -396,10 +401,6 @@ AcpiUtGetArgumentTypes ( } strcat (Buffer, UtExternalTypeNames[ThisArgumentType] + SubIndex); - - /* Shift to next argument type field */ - - ArgumentTypes >>= METHOD_ARG_BIT_WIDTH; SubIndex = 0; } diff --git a/sys/contrib/dev/acpica/components/utilities/utxferror.c b/sys/contrib/dev/acpica/components/utilities/utxferror.c index 3067294..e27d47b 100644 --- a/sys/contrib/dev/acpica/components/utilities/utxferror.c +++ b/sys/contrib/dev/acpica/components/utilities/utxferror.c @@ -87,8 +87,8 @@ extern FILE *AcpiGbl_OutputFile; #define ACPI_MSG_WARNING "ACPI Warning: " #define ACPI_MSG_INFO "ACPI: " -#define ACPI_MSG_BIOS_ERROR "ACPI BIOS Bug: Error: " -#define ACPI_MSG_BIOS_WARNING "ACPI BIOS Bug: Warning: " +#define ACPI_MSG_BIOS_ERROR "ACPI BIOS Error (bug): " +#define ACPI_MSG_BIOS_WARNING "ACPI BIOS Warning (bug): " /* * Common message suffix @@ -384,7 +384,7 @@ AcpiUtPredefinedWarning ( return; } - AcpiOsPrintf (ACPI_MSG_WARNING "For %s: ", Pathname); + AcpiOsPrintf (ACPI_MSG_WARNING "%s: ", Pathname); va_start (ArgList, Format); AcpiOsVprintf (Format, ArgList); @@ -433,7 +433,56 @@ AcpiUtPredefinedInfo ( return; } - AcpiOsPrintf (ACPI_MSG_INFO "For %s: ", Pathname); + AcpiOsPrintf (ACPI_MSG_INFO "%s: ", Pathname); + + va_start (ArgList, Format); + AcpiOsVprintf (Format, ArgList); + ACPI_MSG_SUFFIX; + va_end (ArgList); +} + + +/******************************************************************************* + * + * FUNCTION: AcpiUtPredefinedBiosError + * + * PARAMETERS: ModuleName - Caller's module name (for error output) + * LineNumber - Caller's line number (for error output) + * Pathname - Full pathname to the node + * NodeFlags - From Namespace node for the method/object + * Format - Printf format string + additional args + * + * RETURN: None + * + * DESCRIPTION: BIOS error message for predefined names. Messages + * are only emitted the first time a problem with a particular + * method/object is detected. This prevents a flood of + * messages for methods that are repeatedly evaluated. + * + ******************************************************************************/ + +void ACPI_INTERNAL_VAR_XFACE +AcpiUtPredefinedBiosError ( + const char *ModuleName, + UINT32 LineNumber, + char *Pathname, + UINT8 NodeFlags, + const char *Format, + ...) +{ + va_list ArgList; + + + /* + * Warning messages for this method/object will be disabled after the + * first time a validation fails or an object is successfully repaired. + */ + if (NodeFlags & ANOBJ_EVALUATED) + { + return; + } + + AcpiOsPrintf (ACPI_MSG_BIOS_ERROR "%s: ", Pathname); va_start (ArgList, Format); AcpiOsVprintf (Format, ArgList); |