[PATCH v3 5/7] ftdump: use utilfdt to read blob

Simon Glass sjg at chromium.org
Tue Sep 13 06:04:05 EST 2011


Now that we have utilfdt_read(), ftdump should use it too.

Signed-off-by: Simon Glass <sjg at chromium.org>
---
 Makefile |    2 +-
 ftdump.c |   33 +++++----------------------------
 2 files changed, 6 insertions(+), 29 deletions(-)

diff --git a/Makefile b/Makefile
index 4f5ccdd..6238541 100644
--- a/Makefile
+++ b/Makefile
@@ -207,7 +207,7 @@ convert-dtsv0: $(CONVERT_OBJS)
 	@$(VECHO) LD $@
 	$(LINK.c) -o $@ $^
 
-ftdump:	$(FTDUMP_OBJS)
+ftdump:	$(FTDUMP_OBJS) $(ALL_LIBS)
 
 
 #
diff --git a/ftdump.c b/ftdump.c
index db932e3..d1e3b08 100644
--- a/ftdump.c
+++ b/ftdump.c
@@ -12,8 +12,7 @@
 #include <libfdt_env.h>
 
 #include "util.h"
-
-#define FTDUMP_BUF_SIZE	65536
+#include "utilfdt.h"
 
 #define ALIGN(x, a)	(((x) + ((a) - 1)) & ~((a) - 1))
 #define PALIGN(p, a)	((void *)(ALIGN((unsigned long)(p), (a))))
@@ -147,40 +146,18 @@ static void dump_blob(void *blob)
 
 int main(int argc, char *argv[])
 {
-	FILE *fp;
 	char *buf;
-	int size;
 
 	if (argc < 2) {
 		fprintf(stderr, "supply input filename\n");
 		return 5;
 	}
 
-	if (strcmp(argv[1], "-") == 0) {
-		fp = stdin;
-	} else {
-		fp = fopen(argv[1], "rb");
-		if (fp == NULL) {
-			fprintf(stderr, "unable to open %s\n", argv[1]);
-			return 10;
-		}
-	}
-
-	buf = malloc(FTDUMP_BUF_SIZE);
-	if (!buf) {
-		fprintf(stderr, "Couldn't allocate %d byte buffer\n", FTDUMP_BUF_SIZE);
+	buf = utilfdt_read(argv[1]);
+	if (buf)
+		dump_blob(buf);
+	else
 		return 10;
-	}
-
-	size = fread(buf, 1, FTDUMP_BUF_SIZE, fp);
-	if (size == FTDUMP_BUF_SIZE) {
-		fprintf(stderr, "file too large (maximum is %d bytes)\n", FTDUMP_BUF_SIZE);
-		return 10;
-	}
-
-	dump_blob(buf);
-
-	fclose(fp);
 
 	return 0;
 }
-- 
1.7.3.1



More information about the devicetree-discuss mailing list