diff options
author | Simon Glass <sjg@chromium.org> | 2011-07-05 12:02:49 -0700 |
---|---|---|
committer | Jon Loeliger <jdl@jdl.com> | 2011-07-17 07:42:26 -0500 |
commit | 492f9d5de7db74aeb3a905246c4efd7cb29227a8 (patch) | |
tree | b745e6929817e98d47f1e53e4260040570fa3670 /ftdump.c | |
parent | d5b3165023b1cc3914e9943b91964ec9ad4be8b2 (diff) | |
download | dtc-492f9d5de7db74aeb3a905246c4efd7cb29227a8.zip dtc-492f9d5de7db74aeb3a905246c4efd7cb29227a8.tar.gz dtc-492f9d5de7db74aeb3a905246c4efd7cb29227a8.tar.bz2 |
Split out is_printable_string() into util.c
This useful function is split out so it will be available to programs
other than ftdump.
Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'ftdump.c')
-rw-r--r-- | ftdump.c | 28 |
1 files changed, 3 insertions, 25 deletions
@@ -11,36 +11,14 @@ #include <fdt.h> #include <libfdt_env.h> +#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))) -static int is_printable_string(const void *data, int len) -{ - const char *s = data; - const char *ss; - - /* zero length is not */ - if (len == 0) - return 0; - - /* must terminate with zero */ - if (s[len - 1] != '\0') - return 0; - - ss = s; - while (*s && isprint(*s)) - s++; - - /* not zero, or not done yet */ - if (*s != '\0' || (s + 1 - ss) < len) - return 0; - - return 1; -} - static void print_data(const char *data, int len) { int i; @@ -50,7 +28,7 @@ static void print_data(const char *data, int len) if (len == 0) return; - if (is_printable_string(data, len)) { + if (util_is_printable_string(data, len)) { printf(" = \"%s\"", (const char *)data); } else if ((len % 4) == 0) { printf(" = <"); |