1 /* SPDX-License-Identifier: GPL-2.0+ OR Apache-2.0 */ 2 /* 3 * Copyright (C), 2022, Coolpad Group Limited. 4 */ 5 #ifndef __EROFS_FRAGMENTS_H 6 #define __EROFS_FRAGMENTS_H 7 8 #ifdef __cplusplus 9 extern "C" 10 { 11 #endif 12 13 #include "erofs/internal.h" 14 15 extern const char *erofs_frags_packedname; 16 #define EROFS_PACKED_INODE erofs_frags_packedname 17 18 FILE *erofs_packedfile_init(void); 19 void erofs_packedfile_exit(void); 20 int erofs_flush_packed_inode(struct erofs_sb_info *sbi); 21 22 int z_erofs_fragments_dedupe(struct erofs_inode *inode, int fd, u32 *tofcrc); 23 int z_erofs_pack_file_from_fd(struct erofs_inode *inode, int fd, u32 tofcrc); 24 int z_erofs_pack_fragments(struct erofs_inode *inode, void *data, 25 unsigned int len, u32 tofcrc); 26 void z_erofs_fragments_commit(struct erofs_inode *inode); 27 int z_erofs_fragments_init(void); 28 void z_erofs_fragments_exit(void); 29 30 #ifdef __cplusplus 31 } 32 #endif 33 34 #endif 35