Squashfs: Add XZ compression configuration option

Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
This commit is contained in:
Phillip Lougher 2010-12-09 02:08:31 +00:00
parent 81bb8debd0
commit 7a43ae5237
4 changed files with 28 additions and 0 deletions

View File

@ -53,6 +53,21 @@ config SQUASHFS_LZO
If unsure, say N.
config SQUASHFS_XZ
bool "Include support for XZ compressed file systems"
depends on SQUASHFS
select XZ_DEC
help
Saying Y here includes support for reading Squashfs file systems
compressed with XZ compresssion. XZ gives better compression than
the default zlib compression, at the expense of greater CPU and
memory overhead.
XZ 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_EMBEDDED
bool "Additional option for memory-constrained systems"
depends on SQUASHFS

View File

@ -7,3 +7,4 @@ squashfs-y += block.o cache.o dir.o export.o file.o fragment.o id.o inode.o
squashfs-y += namei.o super.o symlink.o zlib_wrapper.o decompressor.o
squashfs-$(CONFIG_SQUASHFS_XATTR) += xattr.o xattr_id.o
squashfs-$(CONFIG_SQUASHFS_LZO) += lzo_wrapper.o
squashfs-$(CONFIG_SQUASHFS_XZ) += xz_wrapper.o

View File

@ -46,6 +46,12 @@ static const struct squashfs_decompressor squashfs_lzo_unsupported_comp_ops = {
};
#endif
#ifndef CONFIG_SQUASHFS_XZ
static const struct squashfs_decompressor squashfs_xz_comp_ops = {
NULL, NULL, NULL, XZ_COMPRESSION, "xz", 0
};
#endif
static const struct squashfs_decompressor squashfs_unknown_comp_ops = {
NULL, NULL, NULL, 0, "unknown", 0
};
@ -58,6 +64,7 @@ static const struct squashfs_decompressor *decompressor[] = {
#else
&squashfs_lzo_unsupported_comp_ops,
#endif
&squashfs_xz_comp_ops,
&squashfs_unknown_comp_ops
};

View File

@ -52,4 +52,9 @@ static inline int squashfs_decompress(struct squashfs_sb_info *msblk,
return msblk->decompressor->decompress(msblk, buffer, bh, b, offset,
length, srclength, pages);
}
#ifdef CONFIG_SQUASHFS_XZ
extern const struct squashfs_decompressor squashfs_xz_comp_ops;
#endif
#endif