xref: /aosp_15_r20/external/erofs-utils/include/erofs/fragments.h (revision 33b1fccf6a0fada2c2875d400ed01119b7676ee5)
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