diff options
Diffstat (limited to 'fs/squashfs/decompressor.h')
| -rw-r--r-- | fs/squashfs/decompressor.h | 40 | 
1 files changed, 21 insertions, 19 deletions
diff --git a/fs/squashfs/decompressor.h b/fs/squashfs/decompressor.h index 7425f80783f..af098532180 100644 --- a/fs/squashfs/decompressor.h +++ b/fs/squashfs/decompressor.h @@ -4,7 +4,7 @@   * Squashfs - a compressed read only filesystem for Linux   *   * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 - * Phillip Lougher <phillip@lougher.demon.co.uk> + * Phillip Lougher <phillip@squashfs.org.uk>   *   * This program is free software; you can redistribute it and/or   * modify it under the terms of the GNU General Public License @@ -24,32 +24,34 @@   */  struct squashfs_decompressor { -	void	*(*init)(struct squashfs_sb_info *); +	void	*(*init)(struct squashfs_sb_info *, void *); +	void	*(*comp_opts)(struct squashfs_sb_info *, void *, int);  	void	(*free)(void *); -	int	(*decompress)(struct squashfs_sb_info *, void **, -		struct buffer_head **, int, int, int, int, int); +	int	(*decompress)(struct squashfs_sb_info *, void *, +		struct buffer_head **, int, int, int, +		struct squashfs_page_actor *);  	int	id;  	char	*name;  	int	supported;  }; -static inline void *squashfs_decompressor_init(struct squashfs_sb_info *msblk) +static inline void *squashfs_comp_opts(struct squashfs_sb_info *msblk, +							void *buff, int length)  { -	return msblk->decompressor->init(msblk); +	return msblk->decompressor->comp_opts ? +		msblk->decompressor->comp_opts(msblk, buff, length) : NULL;  } -static inline void squashfs_decompressor_free(struct squashfs_sb_info *msblk, -	void *s) -{ -	if (msblk->decompressor) -		msblk->decompressor->free(s); -} +#ifdef CONFIG_SQUASHFS_XZ +extern const struct squashfs_decompressor squashfs_xz_comp_ops; +#endif + +#ifdef CONFIG_SQUASHFS_LZO +extern const struct squashfs_decompressor squashfs_lzo_comp_ops; +#endif + +#ifdef CONFIG_SQUASHFS_ZLIB +extern const struct squashfs_decompressor squashfs_zlib_comp_ops; +#endif -static inline int squashfs_decompress(struct squashfs_sb_info *msblk, -	void **buffer, struct buffer_head **bh, int b, int offset, int length, -	int srclength, int pages) -{ -	return msblk->decompressor->decompress(msblk, buffer, bh, b, offset, -		length, srclength, pages); -}  #endif  | 
