Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Kitware
GitHub Repository: Kitware/CMake
Path: blob/master/Utilities/cmzstd/lib/compress/zstd_lazy.h
5020 views
1
/*
2
* Copyright (c) Meta Platforms, Inc. and affiliates.
3
* All rights reserved.
4
*
5
* This source code is licensed under both the BSD-style license (found in the
6
* LICENSE file in the root directory of this source tree) and the GPLv2 (found
7
* in the COPYING file in the root directory of this source tree).
8
* You may select, at your option, one of the above-listed licenses.
9
*/
10
11
#ifndef ZSTD_LAZY_H
12
#define ZSTD_LAZY_H
13
14
#include "zstd_compress_internal.h"
15
16
/**
17
* Dedicated Dictionary Search Structure bucket log. In the
18
* ZSTD_dedicatedDictSearch mode, the hashTable has
19
* 2 ** ZSTD_LAZY_DDSS_BUCKET_LOG entries in each bucket, rather than just
20
* one.
21
*/
22
#define ZSTD_LAZY_DDSS_BUCKET_LOG 2
23
24
#define ZSTD_ROW_HASH_TAG_BITS 8 /* nb bits to use for the tag */
25
26
#if !defined(ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR) \
27
|| !defined(ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR) \
28
|| !defined(ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR) \
29
|| !defined(ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR)
30
U32 ZSTD_insertAndFindFirstIndex(ZSTD_MatchState_t* ms, const BYTE* ip);
31
void ZSTD_row_update(ZSTD_MatchState_t* const ms, const BYTE* ip);
32
33
void ZSTD_dedicatedDictSearch_lazy_loadDictionary(ZSTD_MatchState_t* ms, const BYTE* const ip);
34
35
void ZSTD_preserveUnsortedMark (U32* const table, U32 const size, U32 const reducerValue); /*! used in ZSTD_reduceIndex(). preemptively increase value of ZSTD_DUBT_UNSORTED_MARK */
36
#endif
37
38
#ifndef ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR
39
size_t ZSTD_compressBlock_greedy(
40
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
41
void const* src, size_t srcSize);
42
size_t ZSTD_compressBlock_greedy_row(
43
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
44
void const* src, size_t srcSize);
45
size_t ZSTD_compressBlock_greedy_dictMatchState(
46
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
47
void const* src, size_t srcSize);
48
size_t ZSTD_compressBlock_greedy_dictMatchState_row(
49
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
50
void const* src, size_t srcSize);
51
size_t ZSTD_compressBlock_greedy_dedicatedDictSearch(
52
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
53
void const* src, size_t srcSize);
54
size_t ZSTD_compressBlock_greedy_dedicatedDictSearch_row(
55
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
56
void const* src, size_t srcSize);
57
size_t ZSTD_compressBlock_greedy_extDict(
58
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
59
void const* src, size_t srcSize);
60
size_t ZSTD_compressBlock_greedy_extDict_row(
61
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
62
void const* src, size_t srcSize);
63
64
#define ZSTD_COMPRESSBLOCK_GREEDY ZSTD_compressBlock_greedy
65
#define ZSTD_COMPRESSBLOCK_GREEDY_ROW ZSTD_compressBlock_greedy_row
66
#define ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE ZSTD_compressBlock_greedy_dictMatchState
67
#define ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE_ROW ZSTD_compressBlock_greedy_dictMatchState_row
68
#define ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH ZSTD_compressBlock_greedy_dedicatedDictSearch
69
#define ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH_ROW ZSTD_compressBlock_greedy_dedicatedDictSearch_row
70
#define ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT ZSTD_compressBlock_greedy_extDict
71
#define ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT_ROW ZSTD_compressBlock_greedy_extDict_row
72
#else
73
#define ZSTD_COMPRESSBLOCK_GREEDY NULL
74
#define ZSTD_COMPRESSBLOCK_GREEDY_ROW NULL
75
#define ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE NULL
76
#define ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE_ROW NULL
77
#define ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH NULL
78
#define ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH_ROW NULL
79
#define ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT NULL
80
#define ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT_ROW NULL
81
#endif
82
83
#ifndef ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR
84
size_t ZSTD_compressBlock_lazy(
85
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
86
void const* src, size_t srcSize);
87
size_t ZSTD_compressBlock_lazy_row(
88
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
89
void const* src, size_t srcSize);
90
size_t ZSTD_compressBlock_lazy_dictMatchState(
91
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
92
void const* src, size_t srcSize);
93
size_t ZSTD_compressBlock_lazy_dictMatchState_row(
94
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
95
void const* src, size_t srcSize);
96
size_t ZSTD_compressBlock_lazy_dedicatedDictSearch(
97
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
98
void const* src, size_t srcSize);
99
size_t ZSTD_compressBlock_lazy_dedicatedDictSearch_row(
100
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
101
void const* src, size_t srcSize);
102
size_t ZSTD_compressBlock_lazy_extDict(
103
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
104
void const* src, size_t srcSize);
105
size_t ZSTD_compressBlock_lazy_extDict_row(
106
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
107
void const* src, size_t srcSize);
108
109
#define ZSTD_COMPRESSBLOCK_LAZY ZSTD_compressBlock_lazy
110
#define ZSTD_COMPRESSBLOCK_LAZY_ROW ZSTD_compressBlock_lazy_row
111
#define ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE ZSTD_compressBlock_lazy_dictMatchState
112
#define ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE_ROW ZSTD_compressBlock_lazy_dictMatchState_row
113
#define ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH ZSTD_compressBlock_lazy_dedicatedDictSearch
114
#define ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH_ROW ZSTD_compressBlock_lazy_dedicatedDictSearch_row
115
#define ZSTD_COMPRESSBLOCK_LAZY_EXTDICT ZSTD_compressBlock_lazy_extDict
116
#define ZSTD_COMPRESSBLOCK_LAZY_EXTDICT_ROW ZSTD_compressBlock_lazy_extDict_row
117
#else
118
#define ZSTD_COMPRESSBLOCK_LAZY NULL
119
#define ZSTD_COMPRESSBLOCK_LAZY_ROW NULL
120
#define ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE NULL
121
#define ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE_ROW NULL
122
#define ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH NULL
123
#define ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH_ROW NULL
124
#define ZSTD_COMPRESSBLOCK_LAZY_EXTDICT NULL
125
#define ZSTD_COMPRESSBLOCK_LAZY_EXTDICT_ROW NULL
126
#endif
127
128
#ifndef ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR
129
size_t ZSTD_compressBlock_lazy2(
130
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
131
void const* src, size_t srcSize);
132
size_t ZSTD_compressBlock_lazy2_row(
133
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
134
void const* src, size_t srcSize);
135
size_t ZSTD_compressBlock_lazy2_dictMatchState(
136
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
137
void const* src, size_t srcSize);
138
size_t ZSTD_compressBlock_lazy2_dictMatchState_row(
139
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
140
void const* src, size_t srcSize);
141
size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch(
142
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
143
void const* src, size_t srcSize);
144
size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch_row(
145
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
146
void const* src, size_t srcSize);
147
size_t ZSTD_compressBlock_lazy2_extDict(
148
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
149
void const* src, size_t srcSize);
150
size_t ZSTD_compressBlock_lazy2_extDict_row(
151
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
152
void const* src, size_t srcSize);
153
154
#define ZSTD_COMPRESSBLOCK_LAZY2 ZSTD_compressBlock_lazy2
155
#define ZSTD_COMPRESSBLOCK_LAZY2_ROW ZSTD_compressBlock_lazy2_row
156
#define ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE ZSTD_compressBlock_lazy2_dictMatchState
157
#define ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE_ROW ZSTD_compressBlock_lazy2_dictMatchState_row
158
#define ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH ZSTD_compressBlock_lazy2_dedicatedDictSearch
159
#define ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH_ROW ZSTD_compressBlock_lazy2_dedicatedDictSearch_row
160
#define ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT ZSTD_compressBlock_lazy2_extDict
161
#define ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT_ROW ZSTD_compressBlock_lazy2_extDict_row
162
#else
163
#define ZSTD_COMPRESSBLOCK_LAZY2 NULL
164
#define ZSTD_COMPRESSBLOCK_LAZY2_ROW NULL
165
#define ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE NULL
166
#define ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE_ROW NULL
167
#define ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH NULL
168
#define ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH_ROW NULL
169
#define ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT NULL
170
#define ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT_ROW NULL
171
#endif
172
173
#ifndef ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR
174
size_t ZSTD_compressBlock_btlazy2(
175
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
176
void const* src, size_t srcSize);
177
size_t ZSTD_compressBlock_btlazy2_dictMatchState(
178
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
179
void const* src, size_t srcSize);
180
size_t ZSTD_compressBlock_btlazy2_extDict(
181
ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
182
void const* src, size_t srcSize);
183
184
#define ZSTD_COMPRESSBLOCK_BTLAZY2 ZSTD_compressBlock_btlazy2
185
#define ZSTD_COMPRESSBLOCK_BTLAZY2_DICTMATCHSTATE ZSTD_compressBlock_btlazy2_dictMatchState
186
#define ZSTD_COMPRESSBLOCK_BTLAZY2_EXTDICT ZSTD_compressBlock_btlazy2_extDict
187
#else
188
#define ZSTD_COMPRESSBLOCK_BTLAZY2 NULL
189
#define ZSTD_COMPRESSBLOCK_BTLAZY2_DICTMATCHSTATE NULL
190
#define ZSTD_COMPRESSBLOCK_BTLAZY2_EXTDICT NULL
191
#endif
192
193
#endif /* ZSTD_LAZY_H */
194
195