[zaptel-commits] file: branch 1.2 r1458 -
/branches/1.2/wct4xxp/fw2h.c
zaptel-commits at lists.digium.com
zaptel-commits at lists.digium.com
Sat Sep 9 12:29:32 MST 2006
Author: file
Date: Sat Sep 9 14:29:31 2006
New Revision: 1458
URL: http://svn.digium.com/view/zaptel?rev=3D1458&view=3Drev
Log:
Update firmware header generation tool to support paths being supplied with=
the filename (reported internally by Spiceland)
Modified:
branches/1.2/wct4xxp/fw2h.c
Modified: branches/1.2/wct4xxp/fw2h.c
URL: http://svn.digium.com/view/zaptel/branches/1.2/wct4xxp/fw2h.c?rev=3D14=
58&r1=3D1457&r2=3D1458&view=3Ddiff
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/1.2/wct4xxp/fw2h.c (original)
+++ branches/1.2/wct4xxp/fw2h.c Sat Sep 9 14:29:31 2006
@@ -4,31 +4,46 @@
#include <unistd.h>
#include <string.h>
#include <errno.h>
+
int main(int argc, char *argv[])
{
- char *c;
- int fd;
- FILE *f;
- int res;
- int x;
+ char *c =3D NULL, *fw_hdr_name =3D NULL;
+ int fd, res, x;
+ FILE *f =3D NULL;
unsigned char buf[1024];
+
+ /* Make sure we have the right amount of arguments */
if (argc !=3D 3) {
- fprintf(stderr, "Usage: fw2h <infile> <outfile>");
+ fprintf(stderr, "Usage: fw2h <infile> <outfile>\n");
exit(1);
}
- fd =3D open(argv[1], O_RDONLY);
- if (fd < 0) {
+
+ /* Make sure we can open the firmware in file */
+ if ((fd =3D open(argv[1], O_RDONLY)) < 0) {
fprintf(stderr, "Unable to open '%s': %s\n", argv[1], strerror(errno));
exit(1);
}
- f =3D fopen(argv[2], "w+");
- if (!f) {
+
+ /* Make sure we can write out the firmware header file */
+ if (!(f =3D fopen(argv[2], "w+"))) {
fprintf(stderr, "Unable to open '%s' for writing: %s\n", argv[2], strerr=
or(errno));
exit(1);
}
+
+ /* Strip file extension */
c =3D strrchr(argv[2], '.');
- if (c) *c =3D '\0';
- fprintf(f, "static unsigned char %s[] =3D {\t", argv[2]);
+ if (c)
+ *c =3D '\0';
+
+ /* Now determine the firmware header name */
+ c =3D strrchr(argv[2], '/');
+ if (c)
+ fw_hdr_name =3D ++c;
+ else
+ fw_hdr_name =3D argv[2];
+
+ /* Write out the firmware as a header file */
+ fprintf(f, "static unsigned char %s[] =3D {\t", fw_hdr_name);
while ((res =3D read(fd, buf, sizeof(buf))) > 0) {
for (x =3D 0; x < res; x++) {
if (!(x % 16))
@@ -37,10 +52,12 @@
}
}
fprintf(f, "\n};\n");
+
if (res < 0) {
fprintf(stderr, "Error reading file: %s\n", strerror(errno));
exit(1);
}
+
fclose(f);
close(fd);
exit(0);
More information about the zaptel-commits
mailing list