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// SPDX-License-Identifier: 0BSD
2
4//
14//
15// Author: Lasse Collin
16//
18
19#ifndef LZMA_INDEX_H
20#define LZMA_INDEX_H
21
22
24#define UNPADDED_SIZE_MIN LZMA_VLI_C(5)
25
27#define UNPADDED_SIZE_MAX (LZMA_VLI_MAX & ~LZMA_VLI_C(3))
28
30#define INDEX_INDICATOR 0
31
32
35extern uint32_t lzma_index_padding_size(const lzma_index *i);
36
37
41extern void lzma_index_prealloc(lzma_index *i, lzma_vli records);
42
43
45static inline lzma_vli
46vli_ceil4(lzma_vli vli)
47{
49 return (vli + 3) & ~LZMA_VLI_C(3);
50}
51
52
54static inline lzma_vli
55index_size_unpadded(lzma_vli count, lzma_vli index_list_size)
56{
57 // Index Indicator + Number of Records + List of Records + CRC32
58 return 1 + lzma_vli_size(count) + index_list_size + 4;
59}
60
61
63static inline lzma_vli
64index_size(lzma_vli count, lzma_vli index_list_size)
65{
66 return vli_ceil4(index_size_unpadded(count, index_list_size));
67}
68
69
71static inline lzma_vli
72index_stream_size(lzma_vli blocks_size,
73 lzma_vli count, lzma_vli index_list_size)
74{
75 return LZMA_STREAM_HEADER_SIZE + blocks_size
76 + index_size(count, index_list_size)
78}
79
80#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
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
#define UNPADDED_SIZE_MAX
Maximum Unpadded Size.
Definition index.h:27