15 #ifndef ZSTD_DECOMPRESS_INTERNAL_H
16 #define ZSTD_DECOMPRESS_INTERNAL_H
31 0, 1, 2, 3, 4, 5, 6, 7,
32 8, 9, 10, 11, 12, 13, 14, 15,
33 16, 18, 20, 22, 24, 28, 32, 40,
34 48, 64, 0x80, 0x100, 0x200, 0x400, 0x800, 0x1000,
35 0x2000, 0x4000, 0x8000, 0x10000 };
38 0, 1, 1, 5, 0xD, 0x1D, 0x3D, 0x7D,
39 0xFD, 0x1FD, 0x3FD, 0x7FD, 0xFFD, 0x1FFD, 0x3FFD, 0x7FFD,
40 0xFFFD, 0x1FFFD, 0x3FFFD, 0x7FFFD, 0xFFFFD, 0x1FFFFD, 0x3FFFFD, 0x7FFFFD,
41 0xFFFFFD, 0x1FFFFFD, 0x3FFFFFD, 0x7FFFFFD, 0xFFFFFFD, 0x1FFFFFFD, 0x3FFFFFFD, 0x7FFFFFFD };
44 0, 1, 2, 3, 4, 5, 6, 7,
45 8, 9, 10, 11, 12, 13, 14, 15,
46 16, 17, 18, 19, 20, 21, 22, 23,
47 24, 25, 26, 27, 28, 29, 30, 31 };
50 3, 4, 5, 6, 7, 8, 9, 10,
51 11, 12, 13, 14, 15, 16, 17, 18,
52 19, 20, 21, 22, 23, 24, 25, 26,
53 27, 28, 29, 30, 31, 32, 33, 34,
54 35, 37, 39, 41, 43, 47, 51, 59,
55 67, 83, 99, 0x83, 0x103, 0x203, 0x403, 0x803,
56 0x1003, 0x2003, 0x4003, 0x8003, 0x10003 };
69 BYTE nbAdditionalBits;
74 #define SEQSYMBOL_TABLE_SIZE(log) (1 + (1 << (log)))
76#define ZSTD_BUILD_FSE_TABLE_WKSP_SIZE (sizeof(S16) * (MaxSeq + 1) + (1u << MaxFSELog) + sizeof(U64))
77#define ZSTD_BUILD_FSE_TABLE_WKSP_SIZE_U32 ((ZSTD_BUILD_FSE_TABLE_WKSP_SIZE + sizeof(U32) - 1) / sizeof(U32))
78#define ZSTD_HUFFDTABLE_CAPACITY_LOG 12
106 size_t ddictPtrTableSize;
107 size_t ddictPtrCount;
110#ifndef ZSTD_DECODER_INTERNAL_BUFFER
111# define ZSTD_DECODER_INTERNAL_BUFFER (1 << 16)
115#define ZSTD_LBMAX (128 << 10)
118#define ZSTD_LITBUFFEREXTRASIZE BOUNDED(ZSTD_LBMIN, ZSTD_DECODER_INTERNAL_BUFFER, ZSTD_LBMAX)
181#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1)
183 U32 previousLegacyVersion;
200#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
201 void const* dictContentBeginForFuzzing;
202 void const* dictContentEndForFuzzing;
207 ZSTD_TraceCtx traceCtx;
struct XXH64_state_s XXH64_state_t
The opaque state struct for the XXH64 streaming API.
Definition xxhash.h:229
unsigned long long U64
Definition lz4.c:318
unsigned char BYTE
Definition lz4.c:314
unsigned int U32
Definition lz4.c:316
unsigned short U16
Definition lz4.c:315
char * dst
Definition lz4.h:833
Definition zstd_decompress_internal.h:126
U32 dictID
Definition zstd_decompress_internal.h:162
ZSTD_dStage stage
Definition zstd_decompress_internal.h:142
U32 litEntropy
Definition zstd_decompress_internal.h:143
size_t outEnd
Definition zstd_decompress_internal.h:177
const BYTE * litPtr
Definition zstd_decompress_internal.h:150
size_t rleSize
Definition zstd_decompress_internal.h:153
size_t oversizedDuration
Definition zstd_decompress_internal.h:196
int ddictIsCold
Definition zstd_decompress_internal.h:163
const void * prefixStart
Definition zstd_decompress_internal.h:134
ZSTD_format_e format
Definition zstd_decompress_internal.h:147
ZSTD_dStreamStage streamStage
Definition zstd_decompress_internal.h:169
size_t inPos
Definition zstd_decompress_internal.h:172
char * outBuff
Definition zstd_decompress_internal.h:174
U32 fseEntropy
Definition zstd_decompress_internal.h:144
int disableHufAsm
Definition zstd_decompress_internal.h:168
BYTE headerBuffer[ZSTD_FRAMEHEADERSIZE_MAX]
Definition zstd_decompress_internal.h:194
ZSTD_customMem customMem
Definition zstd_decompress_internal.h:151
size_t headerSize
Definition zstd_decompress_internal.h:146
ZSTD_outBuffer expectedOutBuffer
Definition zstd_decompress_internal.h:187
const void * dictEnd
Definition zstd_decompress_internal.h:136
size_t outStart
Definition zstd_decompress_internal.h:176
const BYTE * litBufferEnd
Definition zstd_decompress_internal.h:191
char * inBuff
Definition zstd_decompress_internal.h:170
const HUF_DTable * HUFptr
Definition zstd_decompress_internal.h:130
size_t litSize
Definition zstd_decompress_internal.h:152
size_t expected
Definition zstd_decompress_internal.h:137
ZSTD_DDictHashSet * ddictSet
Definition zstd_decompress_internal.h:165
const void * previousDstEnd
Definition zstd_decompress_internal.h:133
size_t staticSize
Definition zstd_decompress_internal.h:154
U64 decodedSize
Definition zstd_decompress_internal.h:140
ZSTD_entropyDTables_t entropy
Definition zstd_decompress_internal.h:131
ZSTD_frameHeader fParams
Definition zstd_decompress_internal.h:138
ZSTD_litLocation_e litBufferLocation
Definition zstd_decompress_internal.h:192
blockType_e bType
Definition zstd_decompress_internal.h:141
size_t maxWindowSize
Definition zstd_decompress_internal.h:173
const ZSTD_seqSymbol * LLTptr
Definition zstd_decompress_internal.h:127
U64 processedCSize
Definition zstd_decompress_internal.h:139
ZSTD_forceIgnoreChecksum_e forceIgnoreChecksum
Definition zstd_decompress_internal.h:148
ZSTD_refMultipleDDicts_e refMultipleDDicts
Definition zstd_decompress_internal.h:166
ZSTD_DDict * ddictLocal
Definition zstd_decompress_internal.h:160
ZSTD_dictUses_e dictUses
Definition zstd_decompress_internal.h:164
size_t lhSize
Definition zstd_decompress_internal.h:178
const ZSTD_seqSymbol * OFTptr
Definition zstd_decompress_internal.h:129
const ZSTD_seqSymbol * MLTptr
Definition zstd_decompress_internal.h:128
size_t outBuffSize
Definition zstd_decompress_internal.h:175
U32 workspace[HUF_DECOMPRESS_WORKSPACE_SIZE_U32]
Definition zstd_decompress_internal.h:132
const ZSTD_DDict * ddict
Definition zstd_decompress_internal.h:161
size_t inBuffSize
Definition zstd_decompress_internal.h:171
XXH64_state_t xxhState
Definition zstd_decompress_internal.h:145
BYTE litExtraBuffer[ZSTD_LITBUFFEREXTRASIZE+WILDCOPY_OVERLENGTH]
Definition zstd_decompress_internal.h:193
U32 hostageByte
Definition zstd_decompress_internal.h:184
const void * virtualStart
Definition zstd_decompress_internal.h:135
BYTE * litBuffer
Definition zstd_decompress_internal.h:190
ZSTD_bufferMode_e outBufferMode
Definition zstd_decompress_internal.h:186
int noForwardProgress
Definition zstd_decompress_internal.h:185
U32 validateChecksum
Definition zstd_decompress_internal.h:149
Definition zstd_ddict.c:36
Definition zstd_decompress_internal.h:103
Definition zstd_decompress_internal.h:79
Definition zstd_decompress_internal.h:67
#define UNUSED_ATTR
Definition compiler.h:81
uint8_t U8
Definition mem.h:33
#define MEM_STATIC
Definition mem.h:27
#define MaxLL
Definition zstd_internal.h:108
#define WILDCOPY_OVERLENGTH
Definition zstd_internal.h:201
#define MaxML
Definition zstd_internal.h:107
#define MLFSELog
Definition zstd_internal.h:112
blockType_e
Definition zstd_internal.h:91
#define MaxOff
Definition zstd_internal.h:110
#define LLFSELog
Definition zstd_internal.h:113
#define ZSTD_REP_NUM
Definition zstd_internal.h:69
#define OffFSELog
Definition zstd_internal.h:114
ZSTD_bufferMode_e
Definition zstd_internal.h:277
ZSTD_dStreamStage
Definition zstd_decompress_internal.h:93
@ zdss_read
Definition zstd_decompress_internal.h:94
@ zdss_init
Definition zstd_decompress_internal.h:93
@ zdss_flush
Definition zstd_decompress_internal.h:94
@ zdss_load
Definition zstd_decompress_internal.h:94
@ zdss_loadHeader
Definition zstd_decompress_internal.h:93
#define ZSTD_BUILD_FSE_TABLE_WKSP_SIZE_U32
Definition zstd_decompress_internal.h:77
#define SEQSYMBOL_TABLE_SIZE(log)
Definition zstd_decompress_internal.h:74
ZSTD_dictUses_e
Definition zstd_decompress_internal.h:96
@ ZSTD_dont_use
Definition zstd_decompress_internal.h:98
@ ZSTD_use_once
Definition zstd_decompress_internal.h:99
@ ZSTD_use_indefinitely
Definition zstd_decompress_internal.h:97
MEM_STATIC int ZSTD_DCtx_get_bmi2(const struct ZSTD_DCtx_s *dctx)
Definition zstd_decompress_internal.h:209
size_t ZSTD_loadDEntropy(ZSTD_entropyDTables_t *entropy, const void *const dict, size_t const dictSize)
Definition zstd_decompress.c:1330
void ZSTD_checkContinuity(ZSTD_DCtx *dctx, const void *dst, size_t dstSize)
Definition zstd_decompress_block.c:2052
ZSTD_dStage
Definition zstd_decompress_internal.h:88
@ ZSTDds_getFrameHeaderSize
Definition zstd_decompress_internal.h:88
@ ZSTDds_skipFrame
Definition zstd_decompress_internal.h:91
@ ZSTDds_checkChecksum
Definition zstd_decompress_internal.h:90
@ ZSTDds_decodeBlockHeader
Definition zstd_decompress_internal.h:89
@ ZSTDds_decompressLastBlock
Definition zstd_decompress_internal.h:90
@ ZSTDds_decodeFrameHeader
Definition zstd_decompress_internal.h:88
@ ZSTDds_decompressBlock
Definition zstd_decompress_internal.h:89
@ ZSTDds_decodeSkippableHeader
Definition zstd_decompress_internal.h:91
ZSTD_litLocation_e
Definition zstd_decompress_internal.h:119
@ ZSTD_not_in_dst
Definition zstd_decompress_internal.h:120
@ ZSTD_in_dst
Definition zstd_decompress_internal.h:121
@ ZSTD_split
Definition zstd_decompress_internal.h:122
const void * dict
Definition zbuff.h:76
const void size_t dictSize
Definition zbuff.h:76
#define HUF_DTABLE_SIZE(maxTableLog)
Definition zstd_v02.c:799
#define HUF_DECOMPRESS_WORKSPACE_SIZE_U32
Definition huf.h:228
U32 HUF_DTable
Definition huf.h:69
#define ZSTD_HUFFDTABLE_CAPACITY_LOG
Definition zstd_decompress_internal.h:78
ZSTD_dStreamStage
Definition zstd_decompress_internal.h:94
#define ZSTD_LITBUFFEREXTRASIZE
Definition zstd_decompress_internal.h:118
ZSTD_litLocation_e
Definition zstd_decompress_internal.h:120