summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLei Wen <adrian.wenl@gmail.com>2012-09-28 04:26:44 +0000
committerTom Rini <trini@ti.com>2012-09-29 07:26:08 -0700
commit7a32b98dacfa2da6dace2ae1d9eff08932eec61a (patch)
tree2a3b21801bfed546dcfdb8b3c3417ed5348b184d
parente9a128d8e907071d45f08c878ddacc6362554eee (diff)
downloadu-boot-imx-7a32b98dacfa2da6dace2ae1d9eff08932eec61a.zip
u-boot-imx-7a32b98dacfa2da6dace2ae1d9eff08932eec61a.tar.gz
u-boot-imx-7a32b98dacfa2da6dace2ae1d9eff08932eec61a.tar.bz2
lib: zlib: include deflate into zlib build
Add a new config CONFIG_GZIP_ENABLED, if enabled, the uboot bin would include zlib's deflate method which could be used for compressing. Signed-off-by: Lei Wen <leiwen@marvell.com>
-rw-r--r--include/u-boot/zlib.h40
-rw-r--r--lib/zlib/trees.c8
-rw-r--r--lib/zlib/zlib.c8
-rw-r--r--lib/zlib/zutil.h4
4 files changed, 51 insertions, 9 deletions
diff --git a/include/u-boot/zlib.h b/include/u-boot/zlib.h
index fbb08a3..b611fe7 100644
--- a/include/u-boot/zlib.h
+++ b/include/u-boot/zlib.h
@@ -513,11 +513,41 @@ typedef gz_header FAR *gz_headerp;
If the first character differs, the library code actually used is
not compatible with the zlib.h header file used by the application.
This check is automatically made by deflateInit and inflateInit.
- */
-
-ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, const char *version,
- int stream_size));
-
+ */
+
+ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
+ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level,
+ const char *version, int stream_size));
+ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm));
+ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method,
+ int windowBits, int memLevel,
+ int strategy, const char *version,
+ int stream_size));
+ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm));
+ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm,
+ const Bytef *dictionary,
+ uInt dictLength));
+ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm,
+ gz_headerp head));
+ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm,
+ int bits,
+ int value));
+ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm,
+ int level,
+ int strategy));
+ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm,
+ int good_length,
+ int max_lazy,
+ int nice_length,
+ int max_chain));
+ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm,
+ uLong sourceLen));
+ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest,
+ z_streamp source));
+
+
+ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm,
+ const char *version, int stream_size));
ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush));
/*
inflate decompresses as much data as possible, and stops when the input
diff --git a/lib/zlib/trees.c b/lib/zlib/trees.c
index 56e9bb1..a0078d0 100644
--- a/lib/zlib/trees.c
+++ b/lib/zlib/trees.c
@@ -1168,14 +1168,14 @@ local int detect_data_type(s)
* method would use a table)
* IN assertion: 1 <= len <= 15
*/
-local unsigned bi_reverse(code, len)
- unsigned code; /* the value to invert */
+local unsigned bi_reverse(value, len)
+ unsigned value; /* the value to invert */
int len; /* its bit length */
{
register unsigned res = 0;
do {
- res |= code & 1;
- code >>= 1, res <<= 1;
+ res |= value & 1;
+ value >>= 1, res <<= 1;
} while (--len > 0);
return res >> 1;
}
diff --git a/lib/zlib/zlib.c b/lib/zlib/zlib.c
index 230d0df..7e15702 100644
--- a/lib/zlib/zlib.c
+++ b/lib/zlib/zlib.c
@@ -12,6 +12,14 @@
* - added inflateIncomp
*/
+#include <common.h>
+
+#ifdef CONFIG_GZIP_COMPRESSED
+#define NO_DUMMY_DECL
+#include "deflate.c"
+#include "trees.c"
+#endif
+
#include "zutil.h"
#include "inftrees.h"
#include "inflate.h"
diff --git a/lib/zlib/zutil.h b/lib/zlib/zutil.h
index 114cb74..7e05c3b 100644
--- a/lib/zlib/zutil.h
+++ b/lib/zlib/zutil.h
@@ -83,6 +83,10 @@ extern const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
/* The minimum and maximum match lengths */
/* functions */
+#ifdef CONFIG_GZIP_COMPRESSED
+#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */
+# define OS_CODE 0x03 /* assume Unix */
+#endif
#include <linux/string.h>
#define zmemcpy memcpy