summaryrefslogtreecommitdiffstats
path: root/tools/build/rtems-bin2c.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2011-05-17 20:37:15 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2011-05-17 20:37:15 +0000
commitd305d75c7eac1018c13788954b6707261b5fd176 (patch)
treed39633ece1525958431236cd462163b4bf61356b /tools/build/rtems-bin2c.c
parent2011-05-17 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-d305d75c7eac1018c13788954b6707261b5fd176.tar.bz2
2011-05-17 Joel Sherrill <joel.sherrill@oarcorp.com>
* tools/build/.cvsignore, tools/build/ChangeLog, tools/build/Makefile.am, tools/build/README, tools/build/binpatch.c, tools/build/cklength.c, tools/build/configure.ac, tools/build/cvsignore-add.sh, tools/build/doxy-filter, tools/build/eolstrip.c, tools/build/install-if-change.in, tools/build/multigen, tools/build/packhex.c, tools/build/rtems-bin2c.c, tools/build/search-id.sh, tools/build/unhex.c, tools/cpu/.cvsignore, tools/cpu/ChangeLog, tools/cpu/Makefile.am, tools/cpu/configure.ac, tools/cpu/generic/.cvsignore, tools/cpu/generic/ChangeLog, tools/cpu/generic/Makefile.am, tools/cpu/generic/configure.ac, tools/cpu/generic/size_rtems.in, tools/cpu/nios2/.cvsignore, tools/cpu/nios2/ChangeLog, tools/cpu/nios2/Makefile.am, tools/cpu/nios2/README, tools/cpu/nios2/bridges.c, tools/cpu/nios2/bridges.h, tools/cpu/nios2/clocks.c, tools/cpu/nios2/clocks.h, tools/cpu/nios2/configure.ac, tools/cpu/nios2/devices.c, tools/cpu/nios2/devices.h, tools/cpu/nios2/linkcmds.c, tools/cpu/nios2/linkcmds.h, tools/cpu/nios2/memory.c, tools/cpu/nios2/memory.h, tools/cpu/nios2/nios2gen.c, tools/cpu/nios2/output.c, tools/cpu/nios2/output.h, tools/cpu/nios2/ptf.c, tools/cpu/nios2/ptf.h, tools/cpu/nios2/sample.ptf, tools/cpu/sh/.cvsignore, tools/cpu/sh/AUTHORS, tools/cpu/sh/COPYING, tools/cpu/sh/ChangeLog, tools/cpu/sh/Makefile.am, tools/cpu/sh/TODO, tools/cpu/sh/configure.ac, tools/cpu/sh/sci.c, tools/cpu/sh/sci.h, tools/cpu/sh/shgen.c, tools/schedsim/.cvsignore, tools/schedsim/ChangeLog, tools/schedsim/Makefile.am, tools/schedsim/README, tools/schedsim/configure.ac, tools/schedsim/rtems/.cvsignore, tools/schedsim/rtems/ChangeLog, tools/schedsim/rtems/Makefile.am, tools/schedsim/rtems/interr.c, tools/schedsim/rtems/rtems_init.c, tools/schedsim/rtems/rtems_sched.h, tools/schedsim/rtems/wkspace.c, tools/schedsim/rtems/sched_cpu/cpu.c, tools/schedsim/rtems/sched_cpu/cpu_asm.c, tools/schedsim/rtems/sched_cpu/rtems/asm.h, tools/schedsim/rtems/sched_cpu/rtems/stringto.h, tools/schedsim/rtems/sched_cpu/rtems/score/cpu.h, tools/schedsim/rtems/sched_cpu/rtems/score/cpu_asm.h, tools/schedsim/rtems/sched_cpu/rtems/score/cpuopts.h, tools/schedsim/rtems/sched_cpu/rtems/score/no_cpu.h, tools/schedsim/rtems/sched_cpu/rtems/score/types.h, tools/schedsim/shell/.cvsignore, tools/schedsim/shell/ChangeLog, tools/schedsim/shell/Makefile.am, tools/schedsim/shell/schedsim_priority/.cvsignore, tools/schedsim/shell/schedsim_priority/Makefile.am, tools/schedsim/shell/schedsim_priority/config.c, tools/schedsim/shell/schedsim_priority/printheir_executing.c, tools/schedsim/shell/schedsim_priority/schedsim.cc, tools/schedsim/shell/schedsim_priority/wrap_thread_dispatch.c, tools/schedsim/shell/scripts/script01, tools/schedsim/shell/scripts/script02, tools/schedsim/shell/scripts/script03, tools/schedsim/shell/scripts/script04, tools/schedsim/shell/scripts/script05, tools/schedsim/shell/scripts/script06, tools/schedsim/shell/shared/.cvsignore, tools/schedsim/shell/shared/Makefile.am, tools/schedsim/shell/shared/commands.c, tools/schedsim/shell/shared/getopt.c, tools/schedsim/shell/shared/lookup_semaphore.c, tools/schedsim/shell/shared/lookup_task.c, tools/schedsim/shell/shared/main_clocktick.c, tools/schedsim/shell/shared/main_echo.c, tools/schedsim/shell/shared/main_executing.c, tools/schedsim/shell/shared/main_heir.c, tools/schedsim/shell/shared/main_help.c, tools/schedsim/shell/shared/main_rtemsinit.c, tools/schedsim/shell/shared/main_semcreate.c, tools/schedsim/shell/shared/main_semdelete.c, tools/schedsim/shell/shared/main_semflush.c, tools/schedsim/shell/shared/main_semobtain.c, tools/schedsim/shell/shared/main_semrelease.c, tools/schedsim/shell/shared/main_taskcreate.c, tools/schedsim/shell/shared/main_taskdelete.c, tools/schedsim/shell/shared/main_taskmode.c, tools/schedsim/shell/shared/main_taskpriority.c, tools/schedsim/shell/shared/main_taskresume.c, tools/schedsim/shell/shared/main_tasksuspend.c, tools/schedsim/shell/shared/main_taskwakeafter.c, tools/schedsim/shell/shared/schedsim_shell.h, tools/schedsim/shell/shared/shell_cmdset.c, tools/schedsim/shell/shared/shell_makeargs.c, tools/schedsim/shell/shared/include/shell.h, tools/schedsim/shell/shared/include/newlib/_ansi.h, tools/schedsim/shell/shared/include/newlib/getopt.h: Removed. * configure.ac: RTEMS Scheduler Simulator is now in its own CVS module named rtems-schedsim.
Diffstat (limited to 'tools/build/rtems-bin2c.c')
-rw-r--r--tools/build/rtems-bin2c.c291
1 files changed, 0 insertions, 291 deletions
diff --git a/tools/build/rtems-bin2c.c b/tools/build/rtems-bin2c.c
deleted file mode 100644
index 4e6796aa38..0000000000
--- a/tools/build/rtems-bin2c.c
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
- * bin2c.c
- *
- * convert a binary file into a C source array.
- *
- * THE "BEER-WARE LICENSE" (Revision 3.1415):
- * sandro AT sigala DOT it wrote this file. As long as you retain this
- * notice you can do whatever you want with this stuff. If we meet some
- * day, and you think this stuff is worth it, you can buy me a beer in
- * return. Sandro Sigala
- *
- * Subsequently modified by Joel Sherrill <joel.sherrill@oarcorp.com>
- * to add a number of capabilities not in the original.
- *
- * syntax: bin2c [-c] [-z] <input_file> <output_file>
- *
- * -c do NOT add the "const" keyword to definition
- * -s add the "static" keywork to definition
- * -v verbose
- * -z terminate the array with a zero (useful for embedded C strings)
- *
- * examples:
- * bin2c -c myimage.png myimage_png.cpp
- * bin2c -z sometext.txt sometext_txt.cpp
- *
- */
-
-#include <ctype.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <libgen.h>
-
-#ifndef PATH_MAX
-#define PATH_MAX 1024
-#endif
-
-int useconst = 1;
-int usestatic = 0;
-int verbose = 0;
-int zeroterminated = 0;
-int createC = 1;
-int createH = 1;
-
-int myfgetc(FILE *f)
-{
- int c = fgetc(f);
- if (c == EOF && zeroterminated) {
- zeroterminated = 0;
- return 0;
- }
- return c;
-}
-
-void process(const char *ifname, const char *ofname)
-{
- FILE *ifile, *ocfile, *ohfile;
- char buf[PATH_MAX], *p;
- char obasename[PATH_MAX];
- char ocname[PATH_MAX];
- char ohname[PATH_MAX];
- const char *cp;
- size_t len;
-
- /* Error check */
- if ( !ifname || !ofname ) {
- fprintf(stderr, "process has NULL filename\n");
- exit(1);
- }
-
- strncpy( obasename, ofname, PATH_MAX );
- len = strlen( obasename );
- if ( len >= 2 ) {
- if ( obasename[len-2] == '.' ) {
- if ( (obasename[len-1] == 'c') || (obasename[len-1] == 'h') )
- obasename[len-2] = '\0';
- }
- }
-
- sprintf( ocname, "%s.c", obasename );
- sprintf( ohname, "%s.h", obasename );
-
- if ( verbose ) {
- fprintf(
- stderr,
- "in file: %s\n"
- "c file: %s\n"
- "h file: %s\n",
- ifname,
- ocname,
- ohname
- );
- }
-
- /* Open input and output files */
- ifile = fopen(ifname, "rb");
- if (ifile == NULL) {
- fprintf(stderr, "cannot open %s for reading\n", ifname);
- exit(1);
- }
-
- if ( createC ) {
- ocfile = fopen(ocname, "wb");
- if (ocfile == NULL) {
- fprintf(stderr, "cannot open %s for writing\n", ocname);
- exit(1);
- }
- }
-
- if ( createH ) {
- ohfile = fopen(ohname, "wb");
- if (ohfile == NULL) {
- fprintf(stderr, "cannot open %s for writing\n", ohname);
- exit(1);
- }
- }
-
- /* find basename */
- char *ifbasename = strdup(ifname);
- ifbasename = basename(ifbasename);
-
- strcpy(buf, ifbasename);
- for (p = buf; *p != '\0'; ++p)
- if (!isalnum(*p))
- *p = '_';
-
- if ( createC ) {
- /* print C file header */
- fprintf(
- ocfile,
- "/*\n"
- " * Declarations for C structure representing binary file %s\n"
- " *\n"
- " * WARNING: Automatically generated -- do not edit!\n"
- " */\n"
- "\n"
- "#include <sys/types.h>\n"
- "\n",
- ifbasename
- );
-
- /* print structure */
- fprintf(
- ocfile,
- "%s%sunsigned char %s[] = {\n ",
- ((usestatic) ? "static " : ""),
- ((useconst) ? "const " : ""),
- buf
- );
- int c, col = 1;
- while ((c = myfgetc(ifile)) != EOF) {
- if (col >= 78 - 6) {
- fprintf(ocfile, "\n ");
- col = 1;
- }
- fprintf(ocfile, "0x%.2x, ", c);
- col += 6;
-
- }
- fprintf(ocfile, "\n};\n");
-
- /* print sizeof */
- fprintf(
- ocfile,
- "\n"
- "%s%ssize_t %s_size = sizeof(%s);\n",
- ((usestatic) ? "static " : ""),
- ((useconst) ? "const " : ""),
- buf,
- buf
- );
- } /* createC */
-
- /*****************************************************************/
- /****** END OF C FILE *****/
- /*****************************************************************/
-
- if ( createH ) {
- /* print H file header */
- fprintf(
- ohfile,
- "/*\n"
- " * Extern declarations for C structure representing binary file %s\n"
- " *\n"
- " * WARNING: Automatically generated -- do not edit!\n"
- " */\n"
- "\n"
- "#ifndef __%s_h\n"
- "#define __%s_h\n"
- "\n"
- "#include <sys/types.h>\n"
- "\n",
- ifbasename, /* header */
- obasename, /* ifndef */
- obasename /* define */
- );
-
- /* print structure */
- fprintf(
- ohfile,
- "extern %s%sunsigned char %s[];",
- ((usestatic) ? "static " : ""),
- ((useconst) ? "const " : ""),
- buf
- );
- /* print sizeof */
- fprintf(
- ohfile,
- "\n"
- "extern %s%ssize_t %s_size;\n",
- ((usestatic) ? "static " : ""),
- ((useconst) ? "const " : ""),
- buf
- );
-
- fprintf(
- ohfile,
- "\n"
- "#endif\n"
- );
- } /* createH */
-
- /*****************************************************************/
- /****** END OF H FILE *****/
- /*****************************************************************/
-
- fclose(ifile);
- if ( createC ) { fclose(ocfile); }
- if ( createH ) { fclose(ohfile); }
-}
-
-void usage(void)
-{
- fprintf(
- stderr,
- "usage: bin2c [-csvzCH] <input_file> <output_file>\n"
- " <input_file> is the binary file to convert\n"
- " <output_file> should not have a .c or .h extension\n"
- "\n"
- " -c - do NOT use const in declaration\n"
- " -s - do use static in declaration\n"
- " -v - verbose\n"
- " -z - add zero terminator\n"
- " -H - create c-header only\n"
- " -C - create c-source file only\n"
- );
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- while (argc > 3) {
- if (!strcmp(argv[1], "-c")) {
- useconst = 0;
- --argc;
- ++argv;
- } else if (!strcmp(argv[1], "-s")) {
- usestatic = 1;
- --argc;
- ++argv;
- } else if (!strcmp(argv[1], "-v")) {
- verbose = 1;
- --argc;
- ++argv;
- } else if (!strcmp(argv[1], "-z")) {
- zeroterminated = 1;
- --argc;
- ++argv;
- } else if (!strcmp(argv[1], "-C")) {
- createH = 0;
- createC = 1;
- --argc;
- ++argv;
- } else if (!strcmp(argv[1], "-H")) {
- createC = 0;
- createH = 1;
- --argc;
- ++argv;
- } else {
- usage();
- }
- }
- if (argc != 3) {
- usage();
- }
-
- /* process( input_file, output_basename ) */
- process(argv[1], argv[2]);
- return 0;
-}
-