aboutsummaryrefslogtreecommitdiff
path: root/include/erofs/fragments.h
blob: 4c6f75556a10a6a8aa2f49d038e4aeeaa566e583 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/* SPDX-License-Identifier: GPL-2.0+ OR Apache-2.0 */
/*
 * Copyright (C), 2022, Coolpad Group Limited.
 */
#ifndef __EROFS_FRAGMENTS_H
#define __EROFS_FRAGMENTS_H

#ifdef __cplusplus
extern "C"
{
#endif

#include "erofs/internal.h"

extern const char *erofs_frags_packedname;
#define EROFS_PACKED_INODE	erofs_frags_packedname

FILE *erofs_packedfile_init(void);
void erofs_packedfile_exit(void);
struct erofs_inode *erofs_mkfs_build_packedfile(void);

int z_erofs_fragments_dedupe(struct erofs_inode *inode, int fd, u32 *tofcrc);
int z_erofs_pack_file_from_fd(struct erofs_inode *inode, int fd, u32 tofcrc);
int z_erofs_pack_fragments(struct erofs_inode *inode, void *data,
			   unsigned int len, u32 tofcrc);
void z_erofs_fragments_commit(struct erofs_inode *inode);
int z_erofs_fragments_init(void);
void z_erofs_fragments_exit(void);

#ifdef __cplusplus
}
#endif

#endif