X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;ds=sidebyside;f=fs%2Fsquashfs%2Fdecompressor.h;h=6cdb20a3878af22414d2f94233e198c02bb82fe5;hb=9508c6b90b3f57ecea4e7a896cf8325400fc0c6e;hp=330073e29029950238da75d90fbd86a9dc8c881a;hpb=959f58544b7f20c92d5eb43d1232c96c15c01bfb;p=~andy%2Flinux diff --git a/fs/squashfs/decompressor.h b/fs/squashfs/decompressor.h index 330073e2902..6cdb20a3878 100644 --- a/fs/squashfs/decompressor.h +++ b/fs/squashfs/decompressor.h @@ -24,28 +24,21 @@ */ struct squashfs_decompressor { - void *(*init)(struct squashfs_sb_info *, void *, int); + 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 **, + int (*decompress)(struct squashfs_sb_info *, void *, void **, struct buffer_head **, int, int, int, int, int); int id; char *name; int supported; }; -static inline void squashfs_decompressor_free(struct squashfs_sb_info *msblk, - void *s) +static inline void *squashfs_comp_opts(struct squashfs_sb_info *msblk, + void *buff, int length) { - if (msblk->decompressor) - msblk->decompressor->free(s); -} - -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); + return msblk->decompressor->comp_opts ? + msblk->decompressor->comp_opts(msblk, buff, length) : NULL; } #ifdef CONFIG_SQUASHFS_XZ