Files
2026-08-18 09:38:06 +02:00

35 lines
998 B
C

/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef __EROFS_FS_COMPRESS_H
#define __EROFS_FS_COMPRESS_H
#include "internal.h"
struct z_erofs_decompress_req {
struct erofs_sb_info *sbi;
const struct erofs_map_blocks *map;
const void *in;
size_t inputsize;
void *out;
size_t outputsize;
bool partial_decoding;
};
struct z_erofs_decompressor {
/* Callbacks return zero or a positive FreeBSD errno. */
int (*config)(struct erofs_sb_info *, const struct erofs_super_block *,
const void *, size_t);
int (*decompress)(const struct z_erofs_decompress_req *);
bool supports_subextent;
const char *name;
};
bool z_erofs_decompress_supports_subextent(
const struct erofs_map_blocks *map);
int z_erofs_lz4_decompress(const struct z_erofs_decompress_req *rq);
extern const struct z_erofs_decompressor z_erofs_lzma_decomp;
extern const struct z_erofs_decompressor z_erofs_deflate_decomp;
extern const struct z_erofs_decompressor z_erofs_zstd_decomp;
#endif /* __EROFS_FS_COMPRESS_H */