4 * Interface implemented by decompressors for specific formats.
7 #ifndef _WIMLIB_DECOMPRESSOR_OPS_H
8 #define _WIMLIB_DECOMPRESSOR_OPS_H
12 struct wimlib_decompressor_params_header;
14 struct decompressor_ops {
16 int (*create_decompressor)(size_t max_block_size,
17 const struct wimlib_decompressor_params_header *extra_params,
20 int (*decompress)(const void *compressed_data,
21 size_t compressed_size,
22 void *uncompressed_data,
23 size_t uncompressed_size,
26 void (*free_decompressor)(void *private);
29 extern const struct decompressor_ops lzx_decompressor_ops;
30 extern const struct decompressor_ops xpress_decompressor_ops;
31 extern const struct decompressor_ops lzms_decompressor_ops;
34 cleanup_decompressor_params(void);
36 #endif /* _WIMLIB_DECOMPRESSOR_OPS_H */