1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef __COW_H__ 3*4882a593Smuzhiyun #define __COW_H__ 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <asm/types.h> 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun extern int init_cow_file(int fd, char *cow_file, char *backing_file, 8*4882a593Smuzhiyun int sectorsize, int alignment, int *bitmap_offset_out, 9*4882a593Smuzhiyun unsigned long *bitmap_len_out, int *data_offset_out); 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun extern int file_reader(__u64 offset, char *buf, int len, void *arg); 12*4882a593Smuzhiyun extern int read_cow_header(int (*reader)(__u64, char *, int, void *), 13*4882a593Smuzhiyun void *arg, __u32 *version_out, 14*4882a593Smuzhiyun char **backing_file_out, long long *mtime_out, 15*4882a593Smuzhiyun unsigned long long *size_out, int *sectorsize_out, 16*4882a593Smuzhiyun __u32 *align_out, int *bitmap_offset_out); 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun extern int write_cow_header(char *cow_file, int fd, char *backing_file, 19*4882a593Smuzhiyun int sectorsize, int alignment, 20*4882a593Smuzhiyun unsigned long long *size); 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun extern void cow_sizes(int version, __u64 size, int sectorsize, int align, 23*4882a593Smuzhiyun int bitmap_offset, unsigned long *bitmap_len_out, 24*4882a593Smuzhiyun int *data_offset_out); 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun #endif 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun /* 29*4882a593Smuzhiyun * --------------------------------------------------------------------------- 30*4882a593Smuzhiyun * Local variables: 31*4882a593Smuzhiyun * c-file-style: "linux" 32*4882a593Smuzhiyun * End: 33*4882a593Smuzhiyun */ 34