summaryrefslogtreecommitdiffstats
path: root/rbutil/mkamsboot/bin2c.c
diff options
context:
space:
mode:
authorRafaël Carré <rafael.carre@gmail.com>2009-05-28 18:27:08 +0000
committerRafaël Carré <rafael.carre@gmail.com>2009-05-28 18:27:08 +0000
commit96165abec2da60c466659fa0e68e06d97587d51a (patch)
tree5445bddea2ac0e706546ce972d61dacc8d0f81e2 /rbutil/mkamsboot/bin2c.c
parentbebc8587cfa7896684278d824ed5b28b2e9f9df1 (diff)
downloadrockbox-96165abec2da60c466659fa0e68e06d97587d51a.tar.gz
rockbox-96165abec2da60c466659fa0e68e06d97587d51a.tar.bz2
rockbox-96165abec2da60c466659fa0e68e06d97587d51a.zip
FS#10253 : mkamsboot v1.0mkamsboot_1.0
- Bump version to 1.0 - Add Clipv2 target - Make mkamsboot work as a library (work by domonoky : FS#10185, with a few modifications by me) . Use a macro with variadic arguments for error cases in functions which might error. . Add detailed descriptions to functions exported by the library (in the header file) - modify bin2c.c to produce only one pair of .c/.h files with several files embedded in it - move files needing to be built by an ARM cross compiler into dualboot/ - commit produced .c/.h files (containing nrv2e_d8.S and dualboot.S built for Clip, Fuze, e200v2, c200v2, m200v4, Clipv2) - Write a real README file - cosmetics: indent dualboot.S properly, remove trailing spaces, limit lines to 80 characters - comments: add/correct comments in dualboot.S and mkamsboot.c - move back extract_fw.c to utils/AMS/hacking git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21118 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/mkamsboot/bin2c.c')
-rw-r--r--rbutil/mkamsboot/bin2c.c134
1 files changed, 0 insertions, 134 deletions
diff --git a/rbutil/mkamsboot/bin2c.c b/rbutil/mkamsboot/bin2c.c
deleted file mode 100644
index dce8013c31..0000000000
--- a/rbutil/mkamsboot/bin2c.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2007 Dave Chapman
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <stdlib.h>
-
-#ifndef O_BINARY
-#define O_BINARY 0
-#endif
-
-static off_t filesize(int fd)
-{
- struct stat buf;
-
- fstat(fd,&buf);
- return buf.st_size;
-}
-
-static int write_cfile(const unsigned char* buf, off_t len, const char* cname)
-{
- char filename[256];
- FILE* fp;
- int i;
-
- snprintf(filename,256,"%s.c",cname);
-
- fp = fopen(filename,"w+");
- if (fp == NULL) {
- fprintf(stderr,"Couldn't open %s\n",filename);
- return -1;
- }
-
- fprintf(fp,"/* Generated by bin2c */\n\n");
- fprintf(fp,"unsigned char %s[%d] = {",cname,len);
-
- for (i=0;i<len;i++) {
- if ((i % 16) == 0) {
- fprintf(fp,"\n ");
- }
- if (i == (len-1)) {
- fprintf(fp,"0x%02x",buf[i]);
- } else {
- fprintf(fp,"0x%02x, ",buf[i]);
- }
- }
- fprintf(fp,"\n};\n");
-
- fclose(fp);
- return 0;
-}
-
-static int write_hfile(off_t len, const char* cname)
-{
- char filename[256];
- FILE* fp;
-
- snprintf(filename,256,"%s.h",cname);
- fp = fopen(filename,"w+");
- if (fp == NULL) {
- fprintf(stderr,"Couldn't open %s\n",filename);
- return -1;
- }
-
- fprintf(fp,"/* Generated by bin2c */\n\n");
- fprintf(fp,"extern unsigned char %s[%d];\n",cname,len);
- fclose(fp);
- return 0;
-}
-
-int main (int argc, char* argv[])
-{
- char* infile;
- char* cname;
- int fd;
- unsigned char* buf;
- int len;
- int n;
-
- if (argc != 3) {
- fprintf(stderr,"Usage: bin2c file cname\n");
- return 0;
- }
-
- infile=argv[1];
- cname=argv[2];
-
- fd = open(infile,O_RDONLY|O_BINARY);
- if (fd < 0) {
- fprintf(stderr,"Can not open %s\n",infile);
- return 0;
- }
-
- len = filesize(fd);
-
- buf = malloc(len);
- n = read(fd,buf,len);
- if (n < len) {
- fprintf(stderr,"Short read, aborting\n");
- return 0;
- }
- close(fd);
-
- if (write_cfile(buf,len,cname) < 0) {
- return -1;
- }
- if (write_hfile(len,cname) < 0) {
- return -1;
- }
-
- return 0;
-}