1
2
3
4
5
6
7
8
9
10 #ifndef XZ_STREAM_H
11 #define XZ_STREAM_H
12
13 #if defined(__KERNEL__) && !XZ_INTERNAL_CRC32
14 # include <linux/crc32.h>
15 # undef crc32
16 # define xz_crc32(buf, size, crc) \
17 (~crc32_le(~(uint32_t)(crc), buf, size))
18 #endif
19
20
21
22
23
24
25
26 #define STREAM_HEADER_SIZE 12
27
28 #define HEADER_MAGIC "\3757zXZ"
29 #define HEADER_MAGIC_SIZE 6
30
31 #define FOOTER_MAGIC "YZ"
32 #define FOOTER_MAGIC_SIZE 2
33
34
35
36
37
38
39
40
41
42
43 typedef uint64_t vli_type;
44
45 #define VLI_MAX ((vli_type)-1 / 2)
46 #define VLI_UNKNOWN ((vli_type)-1)
47
48
49 #define VLI_BYTES_MAX (sizeof(vli_type) * 8 / 7)
50
51
52 enum xz_check {
53 XZ_CHECK_NONE = 0,
54 XZ_CHECK_CRC32 = 1,
55 XZ_CHECK_CRC64 = 4,
56 XZ_CHECK_SHA256 = 10
57 };
58
59
60 #define XZ_CHECK_MAX 15
61
62 #endif