summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev/acpica/common
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2013-07-26 21:34:09 +0000
committerjkim <jkim@FreeBSD.org>2013-07-26 21:34:09 +0000
commite0885a9b34c323faf808677aa57de877e8fbd231 (patch)
tree8a64e569d94e0e829489db627e08ca76d4368bba /sys/contrib/dev/acpica/common
parent97ac613107cbd046b09fe26d250509b3ed473a3b (diff)
downloadFreeBSD-src-e0885a9b34c323faf808677aa57de877e8fbd231.zip
FreeBSD-src-e0885a9b34c323faf808677aa57de877e8fbd231.tar.gz
Merge ACPICA 20130725.
Diffstat (limited to 'sys/contrib/dev/acpica/common')
-rw-r--r--sys/contrib/dev/acpica/common/dmextern.c47
-rw-r--r--sys/contrib/dev/acpica/common/getopt.c20
2 files changed, 53 insertions, 14 deletions
diff --git a/sys/contrib/dev/acpica/common/dmextern.c b/sys/contrib/dev/acpica/common/dmextern.c
index 0e41dd3..3ded428 100644
--- a/sys/contrib/dev/acpica/common/dmextern.c
+++ b/sys/contrib/dev/acpica/common/dmextern.c
@@ -719,34 +719,54 @@ AcpiDmEmitExternals (
AcpiDmUnresolvedWarning (1);
+ /* Emit any unresolved method externals in a single text block */
+
+ NextExternal = AcpiGbl_ExternalList;
+ while (NextExternal)
+ {
+ if ((NextExternal->Type == ACPI_TYPE_METHOD) &&
+ (!NextExternal->Resolved))
+ {
+ AcpiOsPrintf (" External (%s%s",
+ NextExternal->Path,
+ AcpiDmGetObjectTypeName (NextExternal->Type));
+
+ AcpiOsPrintf (") // Warning: Unresolved Method, "
+ "guessing %u arguments (may be incorrect, see warning above)\n",
+ NextExternal->Value);
+
+ NextExternal->Emitted = TRUE;
+ }
+
+ NextExternal = NextExternal->Next;
+ }
+
+ AcpiOsPrintf ("\n");
+
/*
* Walk the list of externals (unresolved references)
* found during the AML parsing
*/
while (AcpiGbl_ExternalList)
{
- AcpiOsPrintf (" External (%s%s",
- AcpiGbl_ExternalList->Path,
- AcpiDmGetObjectTypeName (AcpiGbl_ExternalList->Type));
-
- if (AcpiGbl_ExternalList->Type == ACPI_TYPE_METHOD)
+ if (!AcpiGbl_ExternalList->Emitted)
{
- if (AcpiGbl_ExternalList->Resolved)
+ AcpiOsPrintf (" External (%s%s",
+ AcpiGbl_ExternalList->Path,
+ AcpiDmGetObjectTypeName (AcpiGbl_ExternalList->Type));
+
+ /* For methods, add a comment with the number of arguments */
+
+ if (AcpiGbl_ExternalList->Type == ACPI_TYPE_METHOD)
{
AcpiOsPrintf (") // %u Arguments\n",
AcpiGbl_ExternalList->Value);
}
else
{
- AcpiOsPrintf (") // Warning: unresolved Method, "
- "assuming %u arguments (may be incorrect, see warning above)\n",
- AcpiGbl_ExternalList->Value);
+ AcpiOsPrintf (")\n");
}
}
- else
- {
- AcpiOsPrintf (")\n");
- }
/* Free this external info block and move on to next external */
@@ -931,5 +951,4 @@ AcpiDmUnresolvedWarning (
(AcpiGbl_NumExternalMethods - AcpiGbl_ResolvedExternalMethods));
}
}
-
}
diff --git a/sys/contrib/dev/acpica/common/getopt.c b/sys/contrib/dev/acpica/common/getopt.c
index a4ad288..69f2ed5 100644
--- a/sys/contrib/dev/acpica/common/getopt.c
+++ b/sys/contrib/dev/acpica/common/getopt.c
@@ -197,6 +197,26 @@ AcpiGetopt(
CurrentCharPtr = 1;
}
+ /* Option has an optional argument? */
+
+ else if (*OptsPtr == '+')
+ {
+ if (argv[AcpiGbl_Optind][(int) (CurrentCharPtr+1)] != '\0')
+ {
+ AcpiGbl_Optarg = &argv[AcpiGbl_Optind++][(int) (CurrentCharPtr+1)];
+ }
+ else if (++AcpiGbl_Optind >= argc)
+ {
+ AcpiGbl_Optarg = NULL;
+ }
+ else
+ {
+ AcpiGbl_Optarg = argv[AcpiGbl_Optind++];
+ }
+
+ CurrentCharPtr = 1;
+ }
+
/* Option has optional single-char arguments? */
else if (*OptsPtr == '^')
OpenPOWER on IntegriCloud