Parolin 0.7.9 6796
Console (soon DLLs) to do a tar like job
Loading...
Searching...
No Matches
index.h
Go to the documentation of this file.
1
2//
12//
13// Author: Lasse Collin
14//
15// This file has been put into the public domain.
16// You can do whatever you want with this file.
17//
19
20#ifndef LZMA_INDEX_H
21#define LZMA_INDEX_H
22
23
25#define UNPADDED_SIZE_MIN LZMA_VLI_C(5)
26
28#define UNPADDED_SIZE_MAX (LZMA_VLI_MAX & ~LZMA_VLI_C(3))
29
31#define INDEX_INDICATOR 0
32
33
36extern uint32_t lzma_index_padding_size(const lzma_index *i);
37
38
42extern void lzma_index_prealloc(lzma_index *i, lzma_vli records);
43
44
46static inline lzma_vli
47vli_ceil4(lzma_vli vli)
48{
49 assert(vli <= LZMA_VLI_MAX);
50 return (vli + 3) & ~LZMA_VLI_C(3);
51}
52
53
55static inline lzma_vli
56index_size_unpadded(lzma_vli count, lzma_vli index_list_size)
57{
58 // Index Indicator + Number of Records + List of Records + CRC32
59 return 1 + lzma_vli_size(count) + index_list_size + 4;
60}
61
62
64static inline lzma_vli
65index_size(lzma_vli count, lzma_vli index_list_size)
66{
67 return vli_ceil4(index_size_unpadded(count, index_list_size));
68}
69
70
72static inline lzma_vli
73index_stream_size(lzma_vli blocks_size,
74 lzma_vli count, lzma_vli index_list_size)
75{
76 return LZMA_STREAM_HEADER_SIZE + blocks_size
77 + index_size(count, index_list_size)
79}
80
81#endif
#define assert(condition)
Definition lz4.c:273
Definition index.c:145
lzma_index ** i
Definition index.h:629
#define LZMA_STREAM_HEADER_SIZE
Size of Stream Header and Stream Footer.
Definition stream_flags.h:27
uint64_t lzma_vli
Variable-length integer type.
Definition vli.h:63
#define LZMA_VLI_MAX
Maximum supported value of a variable-length integer.
Definition vli.h:34
void lzma_index_prealloc(lzma_index *i, lzma_vli records)
Definition index.c:431
uint32_t lzma_index_padding_size(const lzma_index *i)
Definition index.c:593