aboutsummaryrefslogtreecommitdiff
path: root/ftdump.c
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2011-07-05 12:02:49 -0700
committerJon Loeliger <jdl@jdl.com>2011-07-17 07:42:26 -0500
commit492f9d5de7db74aeb3a905246c4efd7cb29227a8 (patch)
treeb745e6929817e98d47f1e53e4260040570fa3670 /ftdump.c
parentd5b3165023b1cc3914e9943b91964ec9ad4be8b2 (diff)
downloaddtc-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.c28
1 files changed, 3 insertions, 25 deletions
diff --git a/ftdump.c b/ftdump.c
index bce6535..db932e3 100644
--- a/ftdump.c
+++ b/ftdump.c
@@ -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(" = <");