Module Name:    src
Committed By:   jmcneill
Date:           Thu Feb 17 10:18:05 UTC 2011

Modified Files:
        src/usr.sbin/acpitools/acpidump: acpi.c acpidump.c acpidump.h

Log Message:
- when dumping table bytes, make sure to dump our header and not the next one
- also dump tables with bad checksums, unless the -s flag is specified


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/usr.sbin/acpitools/acpidump/acpi.c
cvs rdiff -u -r1.3 -r1.4 src/usr.sbin/acpitools/acpidump/acpidump.c \
    src/usr.sbin/acpitools/acpidump/acpidump.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.sbin/acpitools/acpidump/acpi.c
diff -u src/usr.sbin/acpitools/acpidump/acpi.c:1.7 src/usr.sbin/acpitools/acpidump/acpi.c:1.8
--- src/usr.sbin/acpitools/acpidump/acpi.c:1.7	Thu Feb 17 02:55:16 2011
+++ src/usr.sbin/acpitools/acpidump/acpi.c	Thu Feb 17 10:18:05 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: acpi.c,v 1.7 2011/02/17 02:55:16 jmcneill Exp $ */
+/* $NetBSD: acpi.c,v 1.8 2011/02/17 10:18:05 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 1998 Doug Rabson
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: acpi.c,v 1.7 2011/02/17 02:55:16 jmcneill Exp $");
+__RCSID("$NetBSD: acpi.c,v 1.8 2011/02/17 10:18:05 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/endian.h>
@@ -1884,9 +1884,11 @@
 {
 	printf("  ");
 	acpi_print_string(sdp->Signature, ACPI_NAME_SIZE);
-	printf(": Length=%d, Revision=%d, Checksum=%d,\n",
+	printf(": Length=%d, Revision=%d, Checksum=%d",
 	       sdp->Length, sdp->Revision, sdp->Checksum);
-	printf("\tOEMID=");
+	if (acpi_checksum(sdp, sdp->Length))
+		printf(" (Incorrect)");
+	printf(",\n\tOEMID=");
 	acpi_print_string(sdp->OemId, ACPI_OEM_ID_SIZE);
 	printf(", OEM Table ID=");
 	acpi_print_string(sdp->OemTableId, ACPI_OEM_TABLE_ID_SIZE);
@@ -1902,7 +1904,7 @@
 	unsigned int i;
 	uint8_t *p;
 
-	p = (uint8_t *)sdp + sizeof(*sdp);
+	p = (uint8_t *)sdp;
 	printf("\n\tData={");
 	for (i = 0; i < sdp->Length; i++) {
 		if (cflag) {
@@ -2221,7 +2223,8 @@
 		if (acpi_checksum(sdp, sdp->Length)) {
 			warnx("RSDT entry %d (sig %.4s) is corrupt", i,
 			    sdp->Signature);
-			continue;
+			if (sflag)
+				continue;
 		}
 		if (!memcmp(sdp->Signature, ACPI_SIG_FADT, 4))
 			acpi_handle_fadt(sdp);

Index: src/usr.sbin/acpitools/acpidump/acpidump.c
diff -u src/usr.sbin/acpitools/acpidump/acpidump.c:1.3 src/usr.sbin/acpitools/acpidump/acpidump.c:1.4
--- src/usr.sbin/acpitools/acpidump/acpidump.c:1.3	Thu Feb 17 02:55:16 2011
+++ src/usr.sbin/acpitools/acpidump/acpidump.c	Thu Feb 17 10:18:05 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: acpidump.c,v 1.3 2011/02/17 02:55:16 jmcneill Exp $ */
+/* $NetBSD: acpidump.c,v 1.4 2011/02/17 10:18:05 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2000 Mitsuru IWASAKI <iwas...@freebsd.org>
@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: acpidump.c,v 1.3 2011/02/17 02:55:16 jmcneill Exp $");
+__RCSID("$NetBSD: acpidump.c,v 1.4 2011/02/17 10:18:05 jmcneill Exp $");
 
 
 #include <sys/param.h>
@@ -42,18 +42,19 @@
 
 #include "acpidump.h"
 
+int	cflag;	/* Dump unknown table data as characters */
 int	dflag;	/* Disassemble AML using iasl(8) */
+int	sflag;	/* Skip tables with bad checksums */
 int	tflag;	/* Dump contents of SDT tables */
 int	vflag;	/* Use verbose messages */
-int	cflag;	/* Dump unknown table data as characters */
 
 static void
 usage(void)
 {
 	const char *progname = getprogname();
 
-	fprintf(stderr, "usage: %s [-c] [-d] [-t] [-h] [-v] [-f dsdt_input] "
-			"[-o dsdt_output]\n", progname);
+	fprintf(stderr, "usage: %s [-c] [-d] [-s] [-t] [-h] [-v] "
+			"[-f dsdt_input] [-o dsdt_output]\n", progname);
 	fprintf(stderr, "To send ASL:\n\t%s -dt | gzip -c9 > foo.asl.gz\n",
 	    progname);
 	exit(EXIT_FAILURE);
@@ -79,6 +80,9 @@
 		case 'd':
 			dflag = 1;
 			break;
+		case 's':
+			sflag = 1;
+			break;
 		case 't':
 			tflag = 1;
 			break;
Index: src/usr.sbin/acpitools/acpidump/acpidump.h
diff -u src/usr.sbin/acpitools/acpidump/acpidump.h:1.3 src/usr.sbin/acpitools/acpidump/acpidump.h:1.4
--- src/usr.sbin/acpitools/acpidump/acpidump.h:1.3	Thu Feb 17 02:55:16 2011
+++ src/usr.sbin/acpitools/acpidump/acpidump.h	Thu Feb 17 10:18:05 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: acpidump.h,v 1.3 2011/02/17 02:55:16 jmcneill Exp $ */
+/* $NetBSD: acpidump.h,v 1.4 2011/02/17 10:18:05 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 1999 Doug Rabson
@@ -83,6 +83,7 @@
 /* Command line flags */
 extern int	cflag;
 extern int	dflag;
+extern int	sflag;
 extern int	tflag;
 extern int	vflag;
 

Reply via email to