diff options
author | Simon Glass <sjg@chromium.org> | 2011-09-22 10:11:04 -0700 |
---|---|---|
committer | Jon Loeliger <jdl@jdl.com> | 2011-09-22 13:50:50 -0500 |
commit | 07a8691fbbeb2a7e0cff85fb24435e2dc71facaf (patch) | |
tree | f587a2eeada6fe8b963681007f3321abb4ea286f | |
parent | 1c25c0d520dee58bfd86626a07036fe9febfebe6 (diff) | |
download | dtc-07a8691fbbeb2a7e0cff85fb24435e2dc71facaf.zip dtc-07a8691fbbeb2a7e0cff85fb24435e2dc71facaf.tar.gz dtc-07a8691fbbeb2a7e0cff85fb24435e2dc71facaf.tar.bz2 |
ftdump: use utilfdt to read blob
Now that we have utilfdt_read(), ftdump should use it too.
Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r-- | ftdump.c | 32 |
1 files changed, 4 insertions, 28 deletions
@@ -13,8 +13,6 @@ #include "util.h" -#define FTDUMP_BUF_SIZE 65536 - #define ALIGN(x, a) (((x) + ((a) - 1)) & ~((a) - 1)) #define PALIGN(p, a) ((void *)(ALIGN((unsigned long)(p), (a)))) #define GET_CELL(p) (p += 4, *((const uint32_t *)(p-4))) @@ -147,40 +145,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; } |