diff options
Diffstat (limited to 'sys/contrib/dev/acpica/common')
-rw-r--r-- | sys/contrib/dev/acpica/common/adisasm.c | 3 | ||||
-rw-r--r-- | sys/contrib/dev/acpica/common/adwalk.c | 7 | ||||
-rw-r--r-- | sys/contrib/dev/acpica/common/dmextern.c | 1 | ||||
-rw-r--r-- | sys/contrib/dev/acpica/common/dmrestag.c | 2 | ||||
-rw-r--r-- | sys/contrib/dev/acpica/common/dmtable.c | 33 | ||||
-rw-r--r-- | sys/contrib/dev/acpica/common/dmtbdump.c | 83 | ||||
-rw-r--r-- | sys/contrib/dev/acpica/common/getopt.c | 68 |
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; } |