scripts: import bin2c.c from Linux 4.10-rc6
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Mon, 30 Jan 2017 02:12:06 +0000 (11:12 +0900)
committerTom Rini <trini@konsulko.com>
Wed, 8 Feb 2017 20:56:19 +0000 (15:56 -0500)
Import scripts/basic/bin2c.c of Linux.

In Linux Kernel, this file was moved to scripts/basic directory by
commit 8370edea81e3 ("bin2c: move bin2c in scripts/basic").

In U-Boot, we do not need to follow that commit.  Just put it in the
original directory "scripts".

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
scripts/bin2c.c [new file with mode: 0644]

diff --git a/scripts/bin2c.c b/scripts/bin2c.c
new file mode 100644 (file)
index 0000000..c3d7eef
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Unloved program to convert a binary on stdin to a C include on stdout
+ *
+ * Jan 1999 Matt Mackall <mpm@selenic.com>
+ *
+ * This software may be used and distributed according to the terms
+ * of the GNU General Public License, incorporated herein by reference.
+ */
+
+#include <stdio.h>
+
+int main(int argc, char *argv[])
+{
+       int ch, total = 0;
+
+       if (argc > 1)
+               printf("const char %s[] %s=\n",
+                       argv[1], argc > 2 ? argv[2] : "");
+
+       do {
+               printf("\t\"");
+               while ((ch = getchar()) != EOF) {
+                       total++;
+                       printf("\\x%02x", ch);
+                       if (total % 16 == 0)
+                               break;
+               }
+               printf("\"\n");
+       } while (ch != EOF);
+
+       if (argc > 1)
+               printf("\t;\n\n#include <linux/types.h>\n\nconst size_t %s_size = %d;\n",
+                      argv[1], total);
+
+       return 0;
+}