Squashfs: Add LZ4 compression configuration option
Add the glue code, and also update the documentation. Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk> Git-commit: 163b9ffb69cea2390525aa64e85a089967b2bd61 Git-repo: https://android.googlesource.com/kernel/common.git Signed-off-by: Kaushal Kumar <kaushalk@codeaurora.org>
This commit is contained in:
parent
5092c63cc0
commit
428c9fad78
|
@ -2,10 +2,10 @@ SQUASHFS 4.0 FILESYSTEM
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
Squashfs is a compressed read-only filesystem for Linux.
|
Squashfs is a compressed read-only filesystem for Linux.
|
||||||
It uses zlib/lzo/xz compression to compress files, inodes and directories.
|
It uses zlib, lz4, lzo, or xz compression to compress files, inodes and
|
||||||
Inodes in the system are very small and all blocks are packed to minimise
|
directories. Inodes in the system are very small and all blocks are packed to
|
||||||
data overhead. Block sizes greater than 4K are supported up to a maximum
|
minimise data overhead. Block sizes greater than 4K are supported up to a
|
||||||
of 1Mbytes (default block size 128K).
|
maximum of 1Mbytes (default block size 128K).
|
||||||
|
|
||||||
Squashfs is intended for general read-only filesystem use, for archival
|
Squashfs is intended for general read-only filesystem use, for archival
|
||||||
use (i.e. in cases where a .tar.gz file may be used), and in constrained
|
use (i.e. in cases where a .tar.gz file may be used), and in constrained
|
||||||
|
|
|
@ -120,6 +120,21 @@ config SQUASHFS_ZLIB
|
||||||
|
|
||||||
If unsure, say Y.
|
If unsure, say Y.
|
||||||
|
|
||||||
|
config SQUASHFS_LZ4
|
||||||
|
bool "Include support for LZ4 compressed file systems"
|
||||||
|
depends on SQUASHFS
|
||||||
|
select LZ4_DECOMPRESS
|
||||||
|
help
|
||||||
|
Saying Y here includes support for reading Squashfs file systems
|
||||||
|
compressed with LZ4 compression. LZ4 compression is mainly
|
||||||
|
aimed at embedded systems with slower CPUs where the overheads
|
||||||
|
of zlib are too high.
|
||||||
|
|
||||||
|
LZ4 is not the standard compression used in Squashfs and so most
|
||||||
|
file systems will be readable without selecting this option.
|
||||||
|
|
||||||
|
If unsure, say N.
|
||||||
|
|
||||||
config SQUASHFS_LZO
|
config SQUASHFS_LZO
|
||||||
bool "Include support for LZO compressed file systems"
|
bool "Include support for LZO compressed file systems"
|
||||||
depends on SQUASHFS
|
depends on SQUASHFS
|
||||||
|
|
|
@ -11,6 +11,7 @@ squashfs-$(CONFIG_SQUASHFS_DECOMP_SINGLE) += decompressor_single.o
|
||||||
squashfs-$(CONFIG_SQUASHFS_DECOMP_MULTI) += decompressor_multi.o
|
squashfs-$(CONFIG_SQUASHFS_DECOMP_MULTI) += decompressor_multi.o
|
||||||
squashfs-$(CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU) += decompressor_multi_percpu.o
|
squashfs-$(CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU) += decompressor_multi_percpu.o
|
||||||
squashfs-$(CONFIG_SQUASHFS_XATTR) += xattr.o xattr_id.o
|
squashfs-$(CONFIG_SQUASHFS_XATTR) += xattr.o xattr_id.o
|
||||||
|
squashfs-$(CONFIG_SQUASHFS_LZ4) += lz4_wrapper.o
|
||||||
squashfs-$(CONFIG_SQUASHFS_LZO) += lzo_wrapper.o
|
squashfs-$(CONFIG_SQUASHFS_LZO) += lzo_wrapper.o
|
||||||
squashfs-$(CONFIG_SQUASHFS_XZ) += xz_wrapper.o
|
squashfs-$(CONFIG_SQUASHFS_XZ) += xz_wrapper.o
|
||||||
squashfs-$(CONFIG_SQUASHFS_ZLIB) += zlib_wrapper.o
|
squashfs-$(CONFIG_SQUASHFS_ZLIB) += zlib_wrapper.o
|
||||||
|
|
|
@ -41,6 +41,12 @@ static const struct squashfs_decompressor squashfs_lzma_unsupported_comp_ops = {
|
||||||
NULL, NULL, NULL, NULL, LZMA_COMPRESSION, "lzma", 0
|
NULL, NULL, NULL, NULL, LZMA_COMPRESSION, "lzma", 0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifndef CONFIG_SQUASHFS_LZ4
|
||||||
|
static const struct squashfs_decompressor squashfs_lz4_comp_ops = {
|
||||||
|
NULL, NULL, NULL, NULL, LZ4_COMPRESSION, "lz4", 0
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef CONFIG_SQUASHFS_LZO
|
#ifndef CONFIG_SQUASHFS_LZO
|
||||||
static const struct squashfs_decompressor squashfs_lzo_comp_ops = {
|
static const struct squashfs_decompressor squashfs_lzo_comp_ops = {
|
||||||
NULL, NULL, NULL, NULL, LZO_COMPRESSION, "lzo", 0
|
NULL, NULL, NULL, NULL, LZO_COMPRESSION, "lzo", 0
|
||||||
|
@ -65,6 +71,7 @@ static const struct squashfs_decompressor squashfs_unknown_comp_ops = {
|
||||||
|
|
||||||
static const struct squashfs_decompressor *decompressor[] = {
|
static const struct squashfs_decompressor *decompressor[] = {
|
||||||
&squashfs_zlib_comp_ops,
|
&squashfs_zlib_comp_ops,
|
||||||
|
&squashfs_lz4_comp_ops,
|
||||||
&squashfs_lzo_comp_ops,
|
&squashfs_lzo_comp_ops,
|
||||||
&squashfs_xz_comp_ops,
|
&squashfs_xz_comp_ops,
|
||||||
&squashfs_lzma_unsupported_comp_ops,
|
&squashfs_lzma_unsupported_comp_ops,
|
||||||
|
|
|
@ -46,6 +46,10 @@ static inline void *squashfs_comp_opts(struct squashfs_sb_info *msblk,
|
||||||
extern const struct squashfs_decompressor squashfs_xz_comp_ops;
|
extern const struct squashfs_decompressor squashfs_xz_comp_ops;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_SQUASHFS_LZ4
|
||||||
|
extern const struct squashfs_decompressor squashfs_lz4_comp_ops;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_SQUASHFS_LZO
|
#ifdef CONFIG_SQUASHFS_LZO
|
||||||
extern const struct squashfs_decompressor squashfs_lzo_comp_ops;
|
extern const struct squashfs_decompressor squashfs_lzo_comp_ops;
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue