summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev/acpica/common
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/dev/acpica/common')
-rw-r--r--sys/contrib/dev/acpica/common/adisasm.c3
-rw-r--r--sys/contrib/dev/acpica/common/adwalk.c7
-rw-r--r--sys/contrib/dev/acpica/common/dmextern.c1
-rw-r--r--sys/contrib/dev/acpica/common/dmrestag.c2
-rw-r--r--sys/contrib/dev/acpica/common/dmtable.c33
-rw-r--r--sys/contrib/dev/acpica/common/dmtbdump.c83
-rw-r--r--sys/contrib/dev/acpica/common/getopt.c68
7 files changed, 191 insertions, 6 deletions
diff --git a/sys/contrib/dev/acpica/common/adisasm.c b/sys/contrib/dev/acpica/common/adisasm.c
index dbef766..6065bd1 100644
--- a/sys/contrib/dev/acpica/common/adisasm.c
+++ b/sys/contrib/dev/acpica/common/adisasm.c
@@ -628,10 +628,12 @@ AdCreateTableHeader (
switch (Table->Revision)
{
case 0:
+
AcpiOsPrintf (" **** Invalid Revision");
break;
case 1:
+
/* Revision of DSDT controls the ACPI integer width */
if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_DSDT))
@@ -641,6 +643,7 @@ AdCreateTableHeader (
break;
default:
+
break;
}
AcpiOsPrintf ("\n");
diff --git a/sys/contrib/dev/acpica/common/adwalk.c b/sys/contrib/dev/acpica/common/adwalk.c
index da790ed..fb136b9 100644
--- a/sys/contrib/dev/acpica/common/adwalk.c
+++ b/sys/contrib/dev/acpica/common/adwalk.c
@@ -375,14 +375,17 @@ AcpiDmDumpDescending (
case AML_BYTE_OP:
case AML_WORD_OP:
case AML_DWORD_OP:
+
AcpiOsPrintf ("%X", (UINT32) Op->Common.Value.Integer);
break;
case AML_QWORD_OP:
+
AcpiOsPrintf ("%8.8X%8.8X", ACPI_FORMAT_UINT64 (Op->Common.Value.Integer));
break;
case AML_INT_NAMEPATH_OP:
+
if (Op->Common.Value.String)
{
AcpiNsExternalizeName (ACPI_UINT32_MAX, Op->Common.Value.String,
@@ -400,10 +403,12 @@ AcpiDmDumpDescending (
case AML_METHOD_OP:
case AML_DEVICE_OP:
case AML_INT_NAMEDFIELD_OP:
+
AcpiOsPrintf ("%4.4s", ACPI_CAST_PTR (char, &Op->Named.Name));
break;
default:
+
break;
}
@@ -450,6 +455,7 @@ AcpiDmFindOrphanDescending (
{
#ifdef ACPI_UNDER_DEVELOPMENT
case AML_ADD_OP:
+
ChildOp = Op->Common.Value.Arg;
if ((ChildOp->Common.AmlOpcode == AML_INT_NAMEPATH_OP) &&
!ChildOp->Common.Node)
@@ -556,6 +562,7 @@ AcpiDmFindOrphanDescending (
break;
default:
+
break;
}
diff --git a/sys/contrib/dev/acpica/common/dmextern.c b/sys/contrib/dev/acpica/common/dmextern.c
index e60924c..0e41dd3 100644
--- a/sys/contrib/dev/acpica/common/dmextern.c
+++ b/sys/contrib/dev/acpica/common/dmextern.c
@@ -594,6 +594,7 @@ AcpiDmAddExternalsToNamespace (
break;
default:
+
break;
}
diff --git a/sys/contrib/dev/acpica/common/dmrestag.c b/sys/contrib/dev/acpica/common/dmrestag.c
index 54f4282..e6fa462 100644
--- a/sys/contrib/dev/acpica/common/dmrestag.c
+++ b/sys/contrib/dev/acpica/common/dmrestag.c
@@ -798,7 +798,6 @@ AcpiDmGetResourceTag (
case ACPI_RESOURCE_NAME_ADDRESS32:
case ACPI_RESOURCE_NAME_ADDRESS64:
case ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64:
-
/*
* Subtype differentiation is the flags.
* Kindof brute force, but just blindly search for an index match
@@ -846,6 +845,7 @@ AcpiDmGetResourceTag (
break;
default:
+
break;
}
diff --git a/sys/contrib/dev/acpica/common/dmtable.c b/sys/contrib/dev/acpica/common/dmtable.c
index 297a3d5..1fb9e3c 100644
--- a/sys/contrib/dev/acpica/common/dmtable.c
+++ b/sys/contrib/dev/acpica/common/dmtable.c
@@ -697,48 +697,71 @@ AcpiDmDumpTable (
case ACPI_DMT_EINJINST:
case ACPI_DMT_ERSTACT:
case ACPI_DMT_ERSTINST:
+
ByteLength = 1;
break;
+
case ACPI_DMT_UINT16:
case ACPI_DMT_DMAR:
case ACPI_DMT_HEST:
+
ByteLength = 2;
break;
+
case ACPI_DMT_UINT24:
+
ByteLength = 3;
break;
+
case ACPI_DMT_UINT32:
case ACPI_DMT_NAME4:
case ACPI_DMT_SIG:
case ACPI_DMT_SLIC:
+
ByteLength = 4;
break;
+
case ACPI_DMT_UINT40:
+
ByteLength = 5;
break;
+
case ACPI_DMT_UINT48:
case ACPI_DMT_NAME6:
+
ByteLength = 6;
break;
+
case ACPI_DMT_UINT56:
case ACPI_DMT_BUF7:
+
ByteLength = 7;
break;
+
case ACPI_DMT_UINT64:
case ACPI_DMT_NAME8:
+
ByteLength = 8;
break;
+
case ACPI_DMT_BUF16:
case ACPI_DMT_UUID:
+
ByteLength = 16;
break;
+
case ACPI_DMT_BUF128:
+
ByteLength = 128;
break;
+
case ACPI_DMT_STRING:
+
ByteLength = ACPI_STRLEN (ACPI_CAST_PTR (char, Target)) + 1;
break;
+
case ACPI_DMT_GAS:
+
if (!LastOutputBlankLine)
{
AcpiOsPrintf ("\n");
@@ -746,7 +769,9 @@ AcpiDmDumpTable (
}
ByteLength = sizeof (ACPI_GENERIC_ADDRESS);
break;
+
case ACPI_DMT_HESTNTFY:
+
if (!LastOutputBlankLine)
{
AcpiOsPrintf ("\n");
@@ -754,7 +779,9 @@ AcpiDmDumpTable (
}
ByteLength = sizeof (ACPI_HEST_NOTIFY);
break;
+
default:
+
ByteLength = 0;
break;
}
@@ -837,7 +864,6 @@ AcpiDmDumpTable (
case ACPI_DMT_BUF7:
case ACPI_DMT_BUF16:
case ACPI_DMT_BUF128:
-
/*
* Buffer: Size depends on the opcode and was set above.
* Each hex byte is separated with a space.
@@ -1146,16 +1172,19 @@ AcpiDmDumpTable (
switch (Temp8)
{
case ACPI_IVRS_TYPE_HARDWARE:
+
Name = AcpiDmIvrsSubnames[0];
break;
case ACPI_IVRS_TYPE_MEMORY1:
case ACPI_IVRS_TYPE_MEMORY2:
case ACPI_IVRS_TYPE_MEMORY3:
+
Name = AcpiDmIvrsSubnames[1];
break;
default:
+
Name = AcpiDmIvrsSubnames[2];
break;
}
@@ -1164,9 +1193,11 @@ AcpiDmDumpTable (
break;
case ACPI_DMT_EXIT:
+
return (AE_OK);
default:
+
ACPI_ERROR ((AE_INFO,
"**** Invalid table opcode [0x%X] ****\n", Info->Opcode));
return (AE_SUPPORT);
diff --git a/sys/contrib/dev/acpica/common/dmtbdump.c b/sys/contrib/dev/acpica/common/dmtbdump.c
index 7518810..6f75fa1 100644
--- a/sys/contrib/dev/acpica/common/dmtbdump.c
+++ b/sys/contrib/dev/acpica/common/dmtbdump.c
@@ -349,27 +349,33 @@ AcpiDmValidateFadtLength (
switch (Revision)
{
case 0:
+
AcpiOsPrintf ("// ACPI Warning: Invalid FADT revision: 0\n");
return;
case 1:
+
ExpectedLength = ACPI_FADT_V1_SIZE;
break;
case 2:
+
ExpectedLength = ACPI_FADT_V2_SIZE;
break;
case 3:
case 4:
+
ExpectedLength = ACPI_FADT_V3_SIZE;
break;
case 5:
+
ExpectedLength = ACPI_FADT_V5_SIZE;
break;
default:
+
return;
}
@@ -434,10 +440,12 @@ AcpiDmDumpAsf (
switch (Type)
{
case ACPI_ASF_TYPE_INFO:
+
InfoTable = AcpiDmTableInfoAsf0;
break;
case ACPI_ASF_TYPE_ALERT:
+
InfoTable = AcpiDmTableInfoAsf1;
DataInfoTable = AcpiDmTableInfoAsf1a;
DataTable = ACPI_ADD_PTR (UINT8, SubTable, sizeof (ACPI_ASF_ALERT));
@@ -447,6 +455,7 @@ AcpiDmDumpAsf (
break;
case ACPI_ASF_TYPE_CONTROL:
+
InfoTable = AcpiDmTableInfoAsf2;
DataInfoTable = AcpiDmTableInfoAsf2a;
DataTable = ACPI_ADD_PTR (UINT8, SubTable, sizeof (ACPI_ASF_REMOTE));
@@ -456,10 +465,12 @@ AcpiDmDumpAsf (
break;
case ACPI_ASF_TYPE_BOOT:
+
InfoTable = AcpiDmTableInfoAsf3;
break;
case ACPI_ASF_TYPE_ADDRESS:
+
InfoTable = AcpiDmTableInfoAsf4;
DataTable = ACPI_ADD_PTR (UINT8, SubTable, sizeof (ACPI_ASF_ADDRESS));
DataLength = ACPI_CAST_PTR (ACPI_ASF_ADDRESS, SubTable)->Devices;
@@ -467,6 +478,7 @@ AcpiDmDumpAsf (
break;
default:
+
AcpiOsPrintf ("\n**** Unknown ASF sub-table type 0x%X\n", SubTable->Header.Type);
return;
}
@@ -523,6 +535,7 @@ AcpiDmDumpAsf (
break;
default:
+
break;
}
@@ -863,22 +876,31 @@ AcpiDmDumpDmar (
switch (SubTable->Type)
{
case ACPI_DMAR_TYPE_HARDWARE_UNIT:
+
InfoTable = AcpiDmTableInfoDmar0;
ScopeOffset = sizeof (ACPI_DMAR_HARDWARE_UNIT);
break;
+
case ACPI_DMAR_TYPE_RESERVED_MEMORY:
+
InfoTable = AcpiDmTableInfoDmar1;
ScopeOffset = sizeof (ACPI_DMAR_RESERVED_MEMORY);
break;
+
case ACPI_DMAR_TYPE_ATSR:
+
InfoTable = AcpiDmTableInfoDmar2;
ScopeOffset = sizeof (ACPI_DMAR_ATSR);
break;
+
case ACPI_DMAR_HARDWARE_AFFINITY:
+
InfoTable = AcpiDmTableInfoDmar3;
ScopeOffset = sizeof (ACPI_DMAR_RHSA);
break;
+
default:
+
AcpiOsPrintf ("\n**** Unknown DMAR sub-table type 0x%X\n\n", SubTable->Type);
return;
}
@@ -1086,12 +1108,17 @@ AcpiDmDumpFpdt (
switch (SubTable->Type)
{
case ACPI_FPDT_TYPE_BOOT:
+
InfoTable = AcpiDmTableInfoFpdt0;
break;
+
case ACPI_FPDT_TYPE_S3PERF:
+
InfoTable = AcpiDmTableInfoFpdt1;
break;
+
default:
+
AcpiOsPrintf ("\n**** Unknown FPDT sub-table type 0x%X\n\n", SubTable->Type);
/* Attempt to continue */
@@ -1164,6 +1191,7 @@ AcpiDmDumpHest (
switch (SubTable->Type)
{
case ACPI_HEST_TYPE_IA32_CHECK:
+
InfoTable = AcpiDmTableInfoHest0;
SubTableLength = sizeof (ACPI_HEST_IA_MACHINE_CHECK);
BankCount = (ACPI_CAST_PTR (ACPI_HEST_IA_MACHINE_CHECK,
@@ -1171,6 +1199,7 @@ AcpiDmDumpHest (
break;
case ACPI_HEST_TYPE_IA32_CORRECTED_CHECK:
+
InfoTable = AcpiDmTableInfoHest1;
SubTableLength = sizeof (ACPI_HEST_IA_CORRECTED);
BankCount = (ACPI_CAST_PTR (ACPI_HEST_IA_CORRECTED,
@@ -1178,31 +1207,37 @@ AcpiDmDumpHest (
break;
case ACPI_HEST_TYPE_IA32_NMI:
+
InfoTable = AcpiDmTableInfoHest2;
SubTableLength = sizeof (ACPI_HEST_IA_NMI);
break;
case ACPI_HEST_TYPE_AER_ROOT_PORT:
+
InfoTable = AcpiDmTableInfoHest6;
SubTableLength = sizeof (ACPI_HEST_AER_ROOT);
break;
case ACPI_HEST_TYPE_AER_ENDPOINT:
+
InfoTable = AcpiDmTableInfoHest7;
SubTableLength = sizeof (ACPI_HEST_AER);
break;
case ACPI_HEST_TYPE_AER_BRIDGE:
+
InfoTable = AcpiDmTableInfoHest8;
SubTableLength = sizeof (ACPI_HEST_AER_BRIDGE);
break;
case ACPI_HEST_TYPE_GENERIC_ERROR:
+
InfoTable = AcpiDmTableInfoHest9;
SubTableLength = sizeof (ACPI_HEST_GENERIC);
break;
default:
+
/* Cannot continue on unknown type - no length */
AcpiOsPrintf ("\n**** Unknown HEST sub-table type 0x%X\n", SubTable->Type);
@@ -1304,14 +1339,19 @@ AcpiDmDumpIvrs (
switch (SubTable->Type)
{
case ACPI_IVRS_TYPE_HARDWARE:
+
InfoTable = AcpiDmTableInfoIvrs0;
break;
+
case ACPI_IVRS_TYPE_MEMORY1:
case ACPI_IVRS_TYPE_MEMORY2:
case ACPI_IVRS_TYPE_MEMORY3:
+
InfoTable = AcpiDmTableInfoIvrs1;
break;
+
default:
+
AcpiOsPrintf ("\n**** Unknown IVRS sub-table type 0x%X\n",
SubTable->Type);
@@ -1473,45 +1513,72 @@ AcpiDmDumpMadt (
switch (SubTable->Type)
{
case ACPI_MADT_TYPE_LOCAL_APIC:
+
InfoTable = AcpiDmTableInfoMadt0;
break;
+
case ACPI_MADT_TYPE_IO_APIC:
+
InfoTable = AcpiDmTableInfoMadt1;
break;
+
case ACPI_MADT_TYPE_INTERRUPT_OVERRIDE:
+
InfoTable = AcpiDmTableInfoMadt2;
break;
+
case ACPI_MADT_TYPE_NMI_SOURCE:
+
InfoTable = AcpiDmTableInfoMadt3;
break;
+
case ACPI_MADT_TYPE_LOCAL_APIC_NMI:
+
InfoTable = AcpiDmTableInfoMadt4;
break;
+
case ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE:
+
InfoTable = AcpiDmTableInfoMadt5;
break;
+
case ACPI_MADT_TYPE_IO_SAPIC:
+
InfoTable = AcpiDmTableInfoMadt6;
break;
+
case ACPI_MADT_TYPE_LOCAL_SAPIC:
+
InfoTable = AcpiDmTableInfoMadt7;
break;
+
case ACPI_MADT_TYPE_INTERRUPT_SOURCE:
+
InfoTable = AcpiDmTableInfoMadt8;
break;
+
case ACPI_MADT_TYPE_LOCAL_X2APIC:
+
InfoTable = AcpiDmTableInfoMadt9;
break;
+
case ACPI_MADT_TYPE_LOCAL_X2APIC_NMI:
+
InfoTable = AcpiDmTableInfoMadt10;
break;
+
case ACPI_MADT_TYPE_GENERIC_INTERRUPT:
+
InfoTable = AcpiDmTableInfoMadt11;
break;
+
case ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR:
+
InfoTable = AcpiDmTableInfoMadt12;
break;
+
default:
+
AcpiOsPrintf ("\n**** Unknown MADT sub-table type 0x%X\n\n", SubTable->Type);
/* Attempt to continue */
@@ -2152,12 +2219,17 @@ AcpiDmDumpS3pt (
switch (SubTable->Type)
{
case ACPI_S3PT_TYPE_RESUME:
+
InfoTable = AcpiDmTableInfoS3pt0;
break;
+
case ACPI_S3PT_TYPE_SUSPEND:
+
InfoTable = AcpiDmTableInfoS3pt1;
break;
+
default:
+
AcpiOsPrintf ("\n**** Unknown S3PT sub-table type 0x%X\n", SubTable->Type);
/* Attempt to continue */
@@ -2229,12 +2301,17 @@ AcpiDmDumpSlic (
switch (SubTable->Type)
{
case ACPI_SLIC_TYPE_PUBLIC_KEY:
+
InfoTable = AcpiDmTableInfoSlic0;
break;
+
case ACPI_SLIC_TYPE_WINDOWS_MARKER:
+
InfoTable = AcpiDmTableInfoSlic1;
break;
+
default:
+
AcpiOsPrintf ("\n**** Unknown SLIC sub-table type 0x%X\n", SubTable->Type);
/* Attempt to continue */
@@ -2390,14 +2467,20 @@ AcpiDmDumpSrat (
switch (SubTable->Type)
{
case ACPI_SRAT_TYPE_CPU_AFFINITY:
+
InfoTable = AcpiDmTableInfoSrat0;
break;
+
case ACPI_SRAT_TYPE_MEMORY_AFFINITY:
+
InfoTable = AcpiDmTableInfoSrat1;
break;
+
case ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY:
+
InfoTable = AcpiDmTableInfoSrat2;
break;
+
default:
AcpiOsPrintf ("\n**** Unknown SRAT sub-table type 0x%X\n", SubTable->Type);
diff --git a/sys/contrib/dev/acpica/common/getopt.c b/sys/contrib/dev/acpica/common/getopt.c
index 6bedff6..a4ad288 100644
--- a/sys/contrib/dev/acpica/common/getopt.c
+++ b/sys/contrib/dev/acpica/common/getopt.c
@@ -41,6 +41,15 @@
* POSSIBILITY OF SUCH DAMAGES.
*/
+/*
+ * ACPICA getopt() implementation
+ *
+ * Option strings:
+ * "f" - Option has no arguments
+ * "f:" - Option requires an argument
+ * "f^" - Option has optional single-char sub-options
+ * "f|" - Option has required single-char sub-options
+ */
#include <stdio.h>
#include <string.h>
@@ -52,9 +61,59 @@
if (AcpiGbl_Opterr) {fprintf (stderr, "%s%c\n", msg, badchar);}
-int AcpiGbl_Opterr = 1;
-int AcpiGbl_Optind = 1;
-char *AcpiGbl_Optarg;
+int AcpiGbl_Opterr = 1;
+int AcpiGbl_Optind = 1;
+int AcpiGbl_SubOptChar = 0;
+char *AcpiGbl_Optarg;
+
+static int CurrentCharPtr = 1;
+
+
+/*******************************************************************************
+ *
+ * FUNCTION: AcpiGetoptArgument
+ *
+ * PARAMETERS: argc, argv - from main
+ *
+ * RETURN: 0 if an argument was found, -1 otherwise. Sets AcpiGbl_Optarg
+ * to point to the next argument.
+ *
+ * DESCRIPTION: Get the next argument. Used to obtain arguments for the
+ * two-character options after the original call to AcpiGetopt.
+ * Note: Either the argument starts at the next character after
+ * the option, or it is pointed to by the next argv entry.
+ * (After call to AcpiGetopt, we need to backup to the previous
+ * argv entry).
+ *
+ ******************************************************************************/
+
+int
+AcpiGetoptArgument (
+ int argc,
+ char **argv)
+{
+ AcpiGbl_Optind--;
+ CurrentCharPtr++;
+
+ if (argv[AcpiGbl_Optind][(int) (CurrentCharPtr+1)] != '\0')
+ {
+ AcpiGbl_Optarg = &argv[AcpiGbl_Optind++][(int) (CurrentCharPtr+1)];
+ }
+ else if (++AcpiGbl_Optind >= argc)
+ {
+ ACPI_OPTION_ERROR ("Option requires an argument: -", 'v');
+
+ CurrentCharPtr = 1;
+ return (-1);
+ }
+ else
+ {
+ AcpiGbl_Optarg = argv[AcpiGbl_Optind++];
+ }
+
+ CurrentCharPtr = 1;
+ return (0);
+}
/*******************************************************************************
@@ -76,7 +135,6 @@ AcpiGetopt(
char **argv,
char *opts)
{
- static int CurrentCharPtr = 1;
int CurrentChar;
char *OptsPtr;
@@ -152,6 +210,7 @@ AcpiGetopt(
AcpiGbl_Optarg = "^";
}
+ AcpiGbl_SubOptChar = AcpiGbl_Optarg[0];
AcpiGbl_Optind++;
CurrentCharPtr = 1;
}
@@ -172,6 +231,7 @@ AcpiGetopt(
return ('?');
}
+ AcpiGbl_SubOptChar = AcpiGbl_Optarg[0];
AcpiGbl_Optind++;
CurrentCharPtr = 1;
}
OpenPOWER on IntegriCloud