]> git.zerfleddert.de Git - proxmark3-svn/commitdiff
Tailor zlib to our needs:
authorpwpiwi <pwpiwi@users.noreply.github.com>
Thu, 30 Apr 2015 15:57:26 +0000 (17:57 +0200)
committerpwpiwi <pwpiwi@users.noreply.github.com>
Tue, 26 May 2015 06:31:30 +0000 (08:31 +0200)
- disable support for fixed code blocks. Saves 2KByte code tables in ARM Flash memory

armsrc/Makefile
zlib/inflate.c

index b1ce4e4d707e66a2a3844cbb6d7012c1c468f07d..1771c8c4919156f1ad578782ba29b07f5830c2c6 100644 (file)
@@ -28,7 +28,7 @@ FPGA_BITSTREAMS = fpga_lf.bit fpga_hf.bit
 #the zlib source files required for decompressing the fpga config at run time
 SRC_ZLIB = inflate.c inffast.c inftrees.c adler32.c zutil.c
 #additional defines required to compile zlib
-ZLIB_CFLAGS = -DZ_SOLO -DZ_PREFIX -DNO_GZIP
+ZLIB_CFLAGS = -DZ_SOLO -DZ_PREFIX -DNO_GZIP -DZLIB_PM3_TUNED
 APP_CFLAGS += $(ZLIB_CFLAGS)
 # zlib includes:
 APP_CFLAGS += -I../zlib
index 870f89bb4d3646684bf37e2144c4b83c808ab84d..d2c666b0345244b70281de85eac7b0733909a66e 100644 (file)
 #endif
 
 /* function prototypes */
+#ifdef ZLIB_PM3_TUNED
+extern void Dbprintf(const char *fmt, ...);
+#else
 local void fixedtables OF((struct inflate_state FAR *state));
+#endif
 local int updatewindow OF((z_streamp strm, const unsigned char FAR *end,
                            unsigned copy));
 #ifdef BUILDFIXED
@@ -258,6 +262,7 @@ int value;
    used for threaded applications, since the rewriting of the tables and virgin
    may not be thread-safe.
  */
+#ifndef ZLIB_PM3_TUNED
 local void fixedtables(state)
 struct inflate_state FAR *state;
 {
@@ -361,7 +366,7 @@ void makefixed()
     puts("\n    };");
 }
 #endif /* MAKEFIXED */
-
+#endif /* ZLIB_PM3_TUNED */
 /*
    Update the window with the last wsize (normally 32K) bytes written before
    returning.  If window does not exist yet, create it.  This is only called
@@ -841,6 +846,10 @@ int flush;
                 state->mode = STORED;
                 break;
             case 1:                             /* fixed block */
+#ifdef ZLIB_PM3_TUNED
+                               Dbprintf("FATAL error. Compressed FPGA files with fixed code blocks are not supported!");
+                               for(;;);
+#else                          
                 fixedtables(state);
                 Tracev((stderr, "inflate:     fixed codes block%s\n",
                         state->last ? " (last)" : ""));
@@ -849,6 +858,7 @@ int flush;
                     DROPBITS(2);
                     goto inf_leave;
                 }
+#endif
                 break;
             case 2:                             /* dynamic block */
                 Tracev((stderr, "inflate:     dynamic codes block%s\n",
Impressum, Datenschutz