aboutsummaryrefslogtreecommitdiff
path: root/source/tools/acpibin
diff options
context:
space:
mode:
Diffstat (limited to 'source/tools/acpibin')
-rw-r--r--source/tools/acpibin/abcompare.c9
-rw-r--r--source/tools/acpibin/abmain.c17
-rw-r--r--source/tools/acpibin/acpibin.h2
3 files changed, 25 insertions, 3 deletions
diff --git a/source/tools/acpibin/abcompare.c b/source/tools/acpibin/abcompare.c
index e21e29d852f4..3d99c602ba49 100644
--- a/source/tools/acpibin/abcompare.c
+++ b/source/tools/acpibin/abcompare.c
@@ -414,6 +414,7 @@ AbCompareAmlFiles (
{
/* Display header information */
+ printf ("Comparing %s to %s\n", File1Path, File2Path);
AbPrintHeadersInfo (&Header1, &Header2);
}
@@ -425,6 +426,12 @@ AbCompareAmlFiles (
/* Do the byte-by-byte compare */
+ printf ("Compare offset: %u\n", AbGbl_CompareOffset);
+ if (AbGbl_CompareOffset)
+ {
+ fseek (File2, AbGbl_CompareOffset, SEEK_CUR);
+ }
+
Actual1 = fread (&Char1, 1, 1, File1);
Actual2 = fread (&Char2, 1, 1, File2);
Offset = sizeof (ACPI_TABLE_HEADER);
@@ -436,7 +443,7 @@ AbCompareAmlFiles (
printf ("Error - Byte mismatch at offset %8.4X: 0x%2.2X 0x%2.2X\n",
Offset, Char1, Char2);
Mismatches++;
- if (Mismatches > 100)
+ if ((Mismatches > 100) && (!AbGbl_DisplayAllMiscompares))
{
printf ("100 Mismatches: Too many mismatches\n");
goto Exit2;
diff --git a/source/tools/acpibin/abmain.c b/source/tools/acpibin/abmain.c
index 5334bc002a3a..ccc355c56c56 100644
--- a/source/tools/acpibin/abmain.c
+++ b/source/tools/acpibin/abmain.c
@@ -52,7 +52,7 @@ AbDisplayUsage (
#define AB_UTILITY_NAME "ACPI Binary Table Dump Utility"
-#define AB_SUPPORTED_OPTIONS "c:d:h:s:tv"
+#define AB_SUPPORTED_OPTIONS "a:c:d:h:o:s:tv"
/******************************************************************************
@@ -75,9 +75,11 @@ AbDisplayUsage (
ACPI_USAGE_HEADER ("acpibin [options]");
- ACPI_OPTION ("-c <File1> <File2>", "Compare two binary AML files");
+ ACPI_OPTION ("-a <File1> <File2>", "Compare two binary AML files, dump all mismatches");
+ ACPI_OPTION ("-c <File1> <File2>", "Compare two binary AML files, dump first 100 mismatches");
ACPI_OPTION ("-d <In> <Out>", "Dump AML binary to text file");
ACPI_OPTION ("-e <Sig> <In> <Out>", "Extract binary AML table from acpidump file");
+ ACPI_OPTION ("-o <Value>", "Start comparison at this offset into second file");
ACPI_OPTION ("-h <File>", "Display table header for binary AML file");
ACPI_OPTION ("-s <File>", "Update checksum for binary AML file");
ACPI_OPTION ("-t", "Terse mode");
@@ -120,6 +122,12 @@ main (
while ((j = AcpiGetopt (argc, argv, AB_SUPPORTED_OPTIONS)) != ACPI_OPT_END) switch(j)
{
+ case 'a': /* Compare Files, display all differences */
+
+ AbGbl_DisplayAllMiscompares = TRUE;
+
+ /* Fallthrough */
+
case 'c': /* Compare Files */
if (argc < 4)
@@ -153,6 +161,11 @@ main (
AbDisplayHeader (AcpiGbl_Optarg);
return (0);
+ case 'o':
+
+ AbGbl_CompareOffset = atoi (AcpiGbl_Optarg);
+ continue;
+
case 's': /* Compute/update checksum */
if (argc < 3)
diff --git a/source/tools/acpibin/acpibin.h b/source/tools/acpibin/acpibin.h
index 679f1a5538bc..dd5940f8c1fd 100644
--- a/source/tools/acpibin/acpibin.h
+++ b/source/tools/acpibin/acpibin.h
@@ -63,6 +63,8 @@
/* Globals */
EXTERN BOOLEAN INIT_GLOBAL (Gbl_TerseMode, FALSE);
+EXTERN BOOLEAN INIT_GLOBAL (AbGbl_DisplayAllMiscompares, FALSE);
+EXTERN UINT32 INIT_GLOBAL (AbGbl_CompareOffset, 0);
/* Prototypes */