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//
5//
6// Author: Lasse Collin
7//
8// This file has been put into the public domain.
9// You can do whatever you want with this file.
10//
12
13#ifndef LZMA_INDEX_H
14#define LZMA_INDEX_H
15
16#include "common.h"
17
18
20#define UNPADDED_SIZE_MIN LZMA_VLI_C(5)
21
23#define UNPADDED_SIZE_MAX (LZMA_VLI_MAX & ~LZMA_VLI_C(3))
24
25
28extern uint32_t lzma_index_padding_size(const lzma_index *i);
29
30
34extern void lzma_index_prealloc(lzma_index *i, lzma_vli records);
35
36
38static inline lzma_vli
39vli_ceil4(lzma_vli vli)
40{
41 assert(vli <= LZMA_VLI_MAX);
42 return (vli + 3) & ~LZMA_VLI_C(3);
43}
44
45
47static inline lzma_vli
48index_size_unpadded(lzma_vli count, lzma_vli index_list_size)
49{
50 // Index Indicator + Number of Records + List of Records + CRC32
51 return 1 + lzma_vli_size(count) + index_list_size + 4;
52}
53
54
56static inline lzma_vli
57index_size(lzma_vli count, lzma_vli index_list_size)
58{
59 return vli_ceil4(index_size_unpadded(count, index_list_size));
60}
61
62
64static inline lzma_vli
65index_stream_size(lzma_vli blocks_size,
66 lzma_vli count, lzma_vli index_list_size)
67{
68 return LZMA_STREAM_HEADER_SIZE + blocks_size
69 + index_size(count, index_list_size)
71}
72
73#endif
#define assert(condition)
Definition lz4.c:273
Definition index.c:145
Definitions common to the whole liblzma library.
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