[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