summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPeter Korsgaard <jacmet@sunsite.dk>2009-11-19 11:37:51 +0100
committerWolfgang Denk <wd@denx.de>2009-12-05 01:30:23 +0100
commit20dde48bcadd856c86a91d5463831a10be46db83 (patch)
tree0fd8ab398d563f05aa1eec30fae6e4493af91928 /include
parent3eb90bad651fab39cffba750ec4421a9c01d60e7 (diff)
downloadu-boot-imx-20dde48bcadd856c86a91d5463831a10be46db83.zip
u-boot-imx-20dde48bcadd856c86a91d5463831a10be46db83.tar.gz
u-boot-imx-20dde48bcadd856c86a91d5463831a10be46db83.tar.bz2
add lzop decompression support
Add lzop decompression support to the existing lzo bitstream handling (think gzip versus zlib), and support it for uImage decompression if CONFIG_LZO is enabled. Lzop doesn't compress as good as gzip (~10% worse), but decompression is very fast (~0.7s faster here on a slow ppc). The lzop decompression code is based on Albin Tonnerre's recent ARM Linux lzo support patch. Cc: albin.tonnerre@free-electrons.com Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'include')
-rw-r--r--include/image.h1
-rw-r--r--include/linux/lzo.h4
2 files changed, 5 insertions, 0 deletions
diff --git a/include/image.h b/include/image.h
index 5a424e6..cc38eae 100644
--- a/include/image.h
+++ b/include/image.h
@@ -164,6 +164,7 @@
#define IH_COMP_GZIP 1 /* gzip Compression Used */
#define IH_COMP_BZIP2 2 /* bzip2 Compression Used */
#define IH_COMP_LZMA 3 /* lzma Compression Used */
+#define IH_COMP_LZO 4 /* lzo Compression Used */
#define IH_MAGIC 0x27051956 /* Image Magic Number */
#define IH_NMLEN 32 /* Image Name Length */
diff --git a/include/linux/lzo.h b/include/linux/lzo.h
index d793497..88687fa 100644
--- a/include/linux/lzo.h
+++ b/include/linux/lzo.h
@@ -27,6 +27,10 @@ int lzo1x_1_compress(const unsigned char *src, size_t src_len,
int lzo1x_decompress_safe(const unsigned char *src, size_t src_len,
unsigned char *dst, size_t *dst_len);
+/* decompress lzop format */
+int lzop_decompress(const unsigned char *src, size_t src_len,
+ unsigned char *dst, size_t *dst_len);
+
/*
* Return values (< 0 = Error)
*/