blob: b5951a8bb3d196ba339b835fa223df2671099fb5 [file] [log] [blame]
b.liuced8dd02024-06-28 13:28:29 +08001#ifndef SPARSE_FILE_H
2#define SPARSE_FILE_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8#include "sparse_format.h"
9
10#define SPARSE_FILE_HEADER_SIZE \
11 (sizeof(sparse_header_t) + 2 * sizeof(chunk_header_t))
12
13#define SPARSE_FILE_FOOTER_SIZE (sizeof(chunk_header_t))
14
15#define SPARSE_BLOCK_SZ 4096
16
17typedef struct {
18 char header[SPARSE_FILE_HEADER_SIZE];
19 char footer[SPARSE_FILE_FOOTER_SIZE];
20 size_t header_size;
21 size_t data_size;
22 size_t fill_size;
23 size_t footer_size;
24} sparse_file_t;
25
26int sparse_file_new(sparse_file_t *sparse_file, size_t offset,
27 size_t size, size_t file_size);
28
29#ifdef __cplusplus
30} /* extern "C" */
31#endif
32
33#endif /* SPARSE_FILE_H */