[coreboot-gerrit] Patch set updated for coreboot: 739105c libpayload: Add simple hexdump function
Stefan Reinauer (stefan.reinauer@coreboot.org)
gerrit at coreboot.org
Thu Dec 12 22:18:33 CET 2013
Stefan Reinauer (stefan.reinauer at coreboot.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/4393
-gerrit
commit 739105cc98957d127175dad811a2c6d530906a50
Author: Stefan Reinauer <reinauer at chromium.org>
Date: Mon Jul 29 16:23:06 2013 -0700
libpayload: Add simple hexdump function
- prints hex and ascii
- detects duplicate all zero lines
Change-Id: I084b3072bc05725b23c5c3ca0dbf1533f164a08c
Signed-off-by: Stefan Reinauer <reinauer at google.com>
Reviewed-on: https://gerrit.chromium.org/gerrit/63660
Reviewed-by: David Hendricks <dhendrix at chromium.org>
Commit-Queue: Stefan Reinauer <reinauer at chromium.org>
---
payloads/libpayload/include/libpayload.h | 1 +
payloads/libpayload/libc/hexdump.c | 58 ++++++++++++++++++++++++++++++++
2 files changed, 59 insertions(+)
diff --git a/payloads/libpayload/include/libpayload.h b/payloads/libpayload/include/libpayload.h
index f23fb87..33af971 100644
--- a/payloads/libpayload/include/libpayload.h
+++ b/payloads/libpayload/include/libpayload.h
@@ -293,6 +293,7 @@ long int labs(long int j);
long long int llabs(long long int j);
u8 bin2hex(u8 b);
u8 hex2bin(u8 h);
+void hexdump(unsigned long memory, int length);
void fatal(const char *msg) __attribute__ ((noreturn));
/** @} */
diff --git a/payloads/libpayload/libc/hexdump.c b/payloads/libpayload/libc/hexdump.c
new file mode 100644
index 0000000..9fbb7ef
--- /dev/null
+++ b/payloads/libpayload/libc/hexdump.c
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2013 Google Inc.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but without any warranty; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <libpayload.h>
+
+void hexdump(unsigned long memory, int length)
+{
+ int i;
+ uint8_t *m;
+ int all_zero = 0;
+
+ m = (uint8_t *)memory;
+
+ for (i = 0; i < length; i += 16) {
+ int j;
+
+ all_zero++;
+ for (j = 0; j < 16; j++) {
+ if(m[i+j] != 0) {
+ all_zero = 0;
+ break;
+ }
+ }
+
+ if (all_zero < 2) {
+ printf("%08lx:", memory + i);
+ for (j = 0; j < 16; j++)
+ printf(" %02x", m[i+j]);
+ printf(" ");
+ for (j = 0; j < 16; j++)
+ printf("%c", isprint(m[i+j]) ? m[i+j] : '.');
+ printf("\n");
+ } else if (all_zero == 2) {
+ printf("...\n");
+ }
+ }
+}
+
+
More information about the coreboot-gerrit
mailing list