648db22b |
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 | #if defined (__cplusplus) |
15 | extern "C" { |
16 | #endif |
17 | |
18 | #include "zstd_compress_internal.h" |
19 | |
20 | /** |
21 | * Dedicated Dictionary Search Structure bucket log. In the |
22 | * ZSTD_dedicatedDictSearch mode, the hashTable has |
23 | * 2 ** ZSTD_LAZY_DDSS_BUCKET_LOG entries in each bucket, rather than just |
24 | * one. |
25 | */ |
26 | #define ZSTD_LAZY_DDSS_BUCKET_LOG 2 |
27 | |
28 | #define ZSTD_ROW_HASH_TAG_BITS 8 /* nb bits to use for the tag */ |
29 | |
f535537f |
30 | #if !defined(ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR) \ |
31 | || !defined(ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR) \ |
32 | || !defined(ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR) \ |
33 | || !defined(ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR) |
648db22b |
34 | U32 ZSTD_insertAndFindFirstIndex(ZSTD_matchState_t* ms, const BYTE* ip); |
35 | void ZSTD_row_update(ZSTD_matchState_t* const ms, const BYTE* ip); |
36 | |
37 | void ZSTD_dedicatedDictSearch_lazy_loadDictionary(ZSTD_matchState_t* ms, const BYTE* const ip); |
38 | |
39 | void ZSTD_preserveUnsortedMark (U32* const table, U32 const size, U32 const reducerValue); /*! used in ZSTD_reduceIndex(). preemptively increase value of ZSTD_DUBT_UNSORTED_MARK */ |
f535537f |
40 | #endif |
648db22b |
41 | |
f535537f |
42 | #ifndef ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR |
43 | size_t ZSTD_compressBlock_greedy( |
648db22b |
44 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
45 | void const* src, size_t srcSize); |
f535537f |
46 | size_t ZSTD_compressBlock_greedy_row( |
648db22b |
47 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
48 | void const* src, size_t srcSize); |
f535537f |
49 | size_t ZSTD_compressBlock_greedy_dictMatchState( |
648db22b |
50 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
51 | void const* src, size_t srcSize); |
f535537f |
52 | size_t ZSTD_compressBlock_greedy_dictMatchState_row( |
648db22b |
53 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
54 | void const* src, size_t srcSize); |
f535537f |
55 | size_t ZSTD_compressBlock_greedy_dedicatedDictSearch( |
648db22b |
56 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
57 | void const* src, size_t srcSize); |
f535537f |
58 | size_t ZSTD_compressBlock_greedy_dedicatedDictSearch_row( |
648db22b |
59 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
60 | void const* src, size_t srcSize); |
f535537f |
61 | size_t ZSTD_compressBlock_greedy_extDict( |
648db22b |
62 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
63 | void const* src, size_t srcSize); |
f535537f |
64 | size_t ZSTD_compressBlock_greedy_extDict_row( |
648db22b |
65 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
66 | void const* src, size_t srcSize); |
f535537f |
67 | |
68 | #define ZSTD_COMPRESSBLOCK_GREEDY ZSTD_compressBlock_greedy |
69 | #define ZSTD_COMPRESSBLOCK_GREEDY_ROW ZSTD_compressBlock_greedy_row |
70 | #define ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE ZSTD_compressBlock_greedy_dictMatchState |
71 | #define ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE_ROW ZSTD_compressBlock_greedy_dictMatchState_row |
72 | #define ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH ZSTD_compressBlock_greedy_dedicatedDictSearch |
73 | #define ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH_ROW ZSTD_compressBlock_greedy_dedicatedDictSearch_row |
74 | #define ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT ZSTD_compressBlock_greedy_extDict |
75 | #define ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT_ROW ZSTD_compressBlock_greedy_extDict_row |
76 | #else |
77 | #define ZSTD_COMPRESSBLOCK_GREEDY NULL |
78 | #define ZSTD_COMPRESSBLOCK_GREEDY_ROW NULL |
79 | #define ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE NULL |
80 | #define ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE_ROW NULL |
81 | #define ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH NULL |
82 | #define ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH_ROW NULL |
83 | #define ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT NULL |
84 | #define ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT_ROW NULL |
85 | #endif |
86 | |
87 | #ifndef ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR |
88 | size_t ZSTD_compressBlock_lazy( |
648db22b |
89 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
90 | void const* src, size_t srcSize); |
f535537f |
91 | size_t ZSTD_compressBlock_lazy_row( |
648db22b |
92 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
93 | void const* src, size_t srcSize); |
f535537f |
94 | size_t ZSTD_compressBlock_lazy_dictMatchState( |
648db22b |
95 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
96 | void const* src, size_t srcSize); |
f535537f |
97 | size_t ZSTD_compressBlock_lazy_dictMatchState_row( |
648db22b |
98 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
99 | void const* src, size_t srcSize); |
f535537f |
100 | size_t ZSTD_compressBlock_lazy_dedicatedDictSearch( |
648db22b |
101 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
102 | void const* src, size_t srcSize); |
f535537f |
103 | size_t ZSTD_compressBlock_lazy_dedicatedDictSearch_row( |
648db22b |
104 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
105 | void const* src, size_t srcSize); |
f535537f |
106 | size_t ZSTD_compressBlock_lazy_extDict( |
648db22b |
107 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
108 | void const* src, size_t srcSize); |
f535537f |
109 | size_t ZSTD_compressBlock_lazy_extDict_row( |
648db22b |
110 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
111 | void const* src, size_t srcSize); |
f535537f |
112 | |
113 | #define ZSTD_COMPRESSBLOCK_LAZY ZSTD_compressBlock_lazy |
114 | #define ZSTD_COMPRESSBLOCK_LAZY_ROW ZSTD_compressBlock_lazy_row |
115 | #define ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE ZSTD_compressBlock_lazy_dictMatchState |
116 | #define ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE_ROW ZSTD_compressBlock_lazy_dictMatchState_row |
117 | #define ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH ZSTD_compressBlock_lazy_dedicatedDictSearch |
118 | #define ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH_ROW ZSTD_compressBlock_lazy_dedicatedDictSearch_row |
119 | #define ZSTD_COMPRESSBLOCK_LAZY_EXTDICT ZSTD_compressBlock_lazy_extDict |
120 | #define ZSTD_COMPRESSBLOCK_LAZY_EXTDICT_ROW ZSTD_compressBlock_lazy_extDict_row |
121 | #else |
122 | #define ZSTD_COMPRESSBLOCK_LAZY NULL |
123 | #define ZSTD_COMPRESSBLOCK_LAZY_ROW NULL |
124 | #define ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE NULL |
125 | #define ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE_ROW NULL |
126 | #define ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH NULL |
127 | #define ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH_ROW NULL |
128 | #define ZSTD_COMPRESSBLOCK_LAZY_EXTDICT NULL |
129 | #define ZSTD_COMPRESSBLOCK_LAZY_EXTDICT_ROW NULL |
130 | #endif |
131 | |
132 | #ifndef ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR |
133 | size_t ZSTD_compressBlock_lazy2( |
648db22b |
134 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
135 | void const* src, size_t srcSize); |
f535537f |
136 | size_t ZSTD_compressBlock_lazy2_row( |
648db22b |
137 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
138 | void const* src, size_t srcSize); |
f535537f |
139 | size_t ZSTD_compressBlock_lazy2_dictMatchState( |
648db22b |
140 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
141 | void const* src, size_t srcSize); |
f535537f |
142 | size_t ZSTD_compressBlock_lazy2_dictMatchState_row( |
648db22b |
143 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
144 | void const* src, size_t srcSize); |
f535537f |
145 | size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch( |
648db22b |
146 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
147 | void const* src, size_t srcSize); |
f535537f |
148 | size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch_row( |
648db22b |
149 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
150 | void const* src, size_t srcSize); |
151 | size_t ZSTD_compressBlock_lazy2_extDict( |
152 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
153 | void const* src, size_t srcSize); |
f535537f |
154 | size_t ZSTD_compressBlock_lazy2_extDict_row( |
648db22b |
155 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
156 | void const* src, size_t srcSize); |
f535537f |
157 | |
158 | #define ZSTD_COMPRESSBLOCK_LAZY2 ZSTD_compressBlock_lazy2 |
159 | #define ZSTD_COMPRESSBLOCK_LAZY2_ROW ZSTD_compressBlock_lazy2_row |
160 | #define ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE ZSTD_compressBlock_lazy2_dictMatchState |
161 | #define ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE_ROW ZSTD_compressBlock_lazy2_dictMatchState_row |
162 | #define ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH ZSTD_compressBlock_lazy2_dedicatedDictSearch |
163 | #define ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH_ROW ZSTD_compressBlock_lazy2_dedicatedDictSearch_row |
164 | #define ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT ZSTD_compressBlock_lazy2_extDict |
165 | #define ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT_ROW ZSTD_compressBlock_lazy2_extDict_row |
166 | #else |
167 | #define ZSTD_COMPRESSBLOCK_LAZY2 NULL |
168 | #define ZSTD_COMPRESSBLOCK_LAZY2_ROW NULL |
169 | #define ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE NULL |
170 | #define ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE_ROW NULL |
171 | #define ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH NULL |
172 | #define ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH_ROW NULL |
173 | #define ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT NULL |
174 | #define ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT_ROW NULL |
175 | #endif |
176 | |
177 | #ifndef ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR |
178 | size_t ZSTD_compressBlock_btlazy2( |
648db22b |
179 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
180 | void const* src, size_t srcSize); |
f535537f |
181 | size_t ZSTD_compressBlock_btlazy2_dictMatchState( |
648db22b |
182 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
183 | void const* src, size_t srcSize); |
184 | size_t ZSTD_compressBlock_btlazy2_extDict( |
185 | ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], |
186 | void const* src, size_t srcSize); |
187 | |
f535537f |
188 | #define ZSTD_COMPRESSBLOCK_BTLAZY2 ZSTD_compressBlock_btlazy2 |
189 | #define ZSTD_COMPRESSBLOCK_BTLAZY2_DICTMATCHSTATE ZSTD_compressBlock_btlazy2_dictMatchState |
190 | #define ZSTD_COMPRESSBLOCK_BTLAZY2_EXTDICT ZSTD_compressBlock_btlazy2_extDict |
191 | #else |
192 | #define ZSTD_COMPRESSBLOCK_BTLAZY2 NULL |
193 | #define ZSTD_COMPRESSBLOCK_BTLAZY2_DICTMATCHSTATE NULL |
194 | #define ZSTD_COMPRESSBLOCK_BTLAZY2_EXTDICT NULL |
195 | #endif |
196 | |
648db22b |
197 | |
198 | #if defined (__cplusplus) |
199 | } |
200 | #endif |
201 | |
202 | #endif /* ZSTD_LAZY_H */ |