6 #if defined(__KERNEL__)
8 # include <asm/byteorder.h>
10 # if defined(__BIG_ENDIAN)
11 # define ntohll(x) (x)
12 # define htonll(x) (x)
13 # elif defined(__LITTLE_ENDIAN)
14 # define ntohll(x) be64_to_cpu(x)
15 # define htonll(x) cpu_to_be64(x)
17 # error "Could not determine byte order"
21 /* For the definition of ntohl, htonl and __BYTE_ORDER */
23 #include <netinet/in.h>
24 #if defined(__BYTE_ORDER)
26 # if __BYTE_ORDER == __BIG_ENDIAN
27 # define ntohll(x) (x)
28 # define htonll(x) (x)
29 # elif __BYTE_ORDER == __LITTLE_ENDIAN
30 # define ntohll(x) bswap_64(x)
31 # define htonll(x) bswap_64(x)
33 # error "Could not determine byte order: __BYTE_ORDER uncorrectly defined"
36 #else /* ! defined(__BYTE_ORDER) */
37 # error "Could not determine byte order: __BYTE_ORDER not defined"
39 #endif /* ! defined(__KERNEL__) */
41 extern int init_cow_file(int fd
, char *cow_file
, char *backing_file
,
42 int sectorsize
, int alignment
, int *bitmap_offset_out
,
43 unsigned long *bitmap_len_out
, int *data_offset_out
);
45 extern int file_reader(__u64 offset
, char *buf
, int len
, void *arg
);
46 extern int read_cow_header(int (*reader
)(__u64
, char *, int, void *),
47 void *arg
, __u32
*version_out
,
48 char **backing_file_out
, time_t *mtime_out
,
49 unsigned long long *size_out
, int *sectorsize_out
,
50 __u32
*align_out
, int *bitmap_offset_out
);
52 extern int write_cow_header(char *cow_file
, int fd
, char *backing_file
,
53 int sectorsize
, int alignment
,
54 unsigned long long *size
);
56 extern void cow_sizes(int version
, __u64 size
, int sectorsize
, int align
,
57 int bitmap_offset
, unsigned long *bitmap_len_out
,
58 int *data_offset_out
);
63 * ---------------------------------------------------------------------------
65 * c-file-style: "linux"