Path: blob/master/Utilities/cmzstd/lib/compress/zstd_lazy.h
5020 views
/*1* Copyright (c) Meta Platforms, Inc. and affiliates.2* All rights reserved.3*4* This source code is licensed under both the BSD-style license (found in the5* LICENSE file in the root directory of this source tree) and the GPLv2 (found6* in the COPYING file in the root directory of this source tree).7* You may select, at your option, one of the above-listed licenses.8*/910#ifndef ZSTD_LAZY_H11#define ZSTD_LAZY_H1213#include "zstd_compress_internal.h"1415/**16* Dedicated Dictionary Search Structure bucket log. In the17* ZSTD_dedicatedDictSearch mode, the hashTable has18* 2 ** ZSTD_LAZY_DDSS_BUCKET_LOG entries in each bucket, rather than just19* one.20*/21#define ZSTD_LAZY_DDSS_BUCKET_LOG 22223#define ZSTD_ROW_HASH_TAG_BITS 8 /* nb bits to use for the tag */2425#if !defined(ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR) \26|| !defined(ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR) \27|| !defined(ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR) \28|| !defined(ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR)29U32 ZSTD_insertAndFindFirstIndex(ZSTD_MatchState_t* ms, const BYTE* ip);30void ZSTD_row_update(ZSTD_MatchState_t* const ms, const BYTE* ip);3132void ZSTD_dedicatedDictSearch_lazy_loadDictionary(ZSTD_MatchState_t* ms, const BYTE* const ip);3334void ZSTD_preserveUnsortedMark (U32* const table, U32 const size, U32 const reducerValue); /*! used in ZSTD_reduceIndex(). preemptively increase value of ZSTD_DUBT_UNSORTED_MARK */35#endif3637#ifndef ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR38size_t ZSTD_compressBlock_greedy(39ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],40void const* src, size_t srcSize);41size_t ZSTD_compressBlock_greedy_row(42ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],43void const* src, size_t srcSize);44size_t ZSTD_compressBlock_greedy_dictMatchState(45ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],46void const* src, size_t srcSize);47size_t ZSTD_compressBlock_greedy_dictMatchState_row(48ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],49void const* src, size_t srcSize);50size_t ZSTD_compressBlock_greedy_dedicatedDictSearch(51ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],52void const* src, size_t srcSize);53size_t ZSTD_compressBlock_greedy_dedicatedDictSearch_row(54ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],55void const* src, size_t srcSize);56size_t ZSTD_compressBlock_greedy_extDict(57ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],58void const* src, size_t srcSize);59size_t ZSTD_compressBlock_greedy_extDict_row(60ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],61void const* src, size_t srcSize);6263#define ZSTD_COMPRESSBLOCK_GREEDY ZSTD_compressBlock_greedy64#define ZSTD_COMPRESSBLOCK_GREEDY_ROW ZSTD_compressBlock_greedy_row65#define ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE ZSTD_compressBlock_greedy_dictMatchState66#define ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE_ROW ZSTD_compressBlock_greedy_dictMatchState_row67#define ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH ZSTD_compressBlock_greedy_dedicatedDictSearch68#define ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH_ROW ZSTD_compressBlock_greedy_dedicatedDictSearch_row69#define ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT ZSTD_compressBlock_greedy_extDict70#define ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT_ROW ZSTD_compressBlock_greedy_extDict_row71#else72#define ZSTD_COMPRESSBLOCK_GREEDY NULL73#define ZSTD_COMPRESSBLOCK_GREEDY_ROW NULL74#define ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE NULL75#define ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE_ROW NULL76#define ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH NULL77#define ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH_ROW NULL78#define ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT NULL79#define ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT_ROW NULL80#endif8182#ifndef ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR83size_t ZSTD_compressBlock_lazy(84ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],85void const* src, size_t srcSize);86size_t ZSTD_compressBlock_lazy_row(87ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],88void const* src, size_t srcSize);89size_t ZSTD_compressBlock_lazy_dictMatchState(90ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],91void const* src, size_t srcSize);92size_t ZSTD_compressBlock_lazy_dictMatchState_row(93ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],94void const* src, size_t srcSize);95size_t ZSTD_compressBlock_lazy_dedicatedDictSearch(96ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],97void const* src, size_t srcSize);98size_t ZSTD_compressBlock_lazy_dedicatedDictSearch_row(99ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],100void const* src, size_t srcSize);101size_t ZSTD_compressBlock_lazy_extDict(102ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],103void const* src, size_t srcSize);104size_t ZSTD_compressBlock_lazy_extDict_row(105ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],106void const* src, size_t srcSize);107108#define ZSTD_COMPRESSBLOCK_LAZY ZSTD_compressBlock_lazy109#define ZSTD_COMPRESSBLOCK_LAZY_ROW ZSTD_compressBlock_lazy_row110#define ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE ZSTD_compressBlock_lazy_dictMatchState111#define ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE_ROW ZSTD_compressBlock_lazy_dictMatchState_row112#define ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH ZSTD_compressBlock_lazy_dedicatedDictSearch113#define ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH_ROW ZSTD_compressBlock_lazy_dedicatedDictSearch_row114#define ZSTD_COMPRESSBLOCK_LAZY_EXTDICT ZSTD_compressBlock_lazy_extDict115#define ZSTD_COMPRESSBLOCK_LAZY_EXTDICT_ROW ZSTD_compressBlock_lazy_extDict_row116#else117#define ZSTD_COMPRESSBLOCK_LAZY NULL118#define ZSTD_COMPRESSBLOCK_LAZY_ROW NULL119#define ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE NULL120#define ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE_ROW NULL121#define ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH NULL122#define ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH_ROW NULL123#define ZSTD_COMPRESSBLOCK_LAZY_EXTDICT NULL124#define ZSTD_COMPRESSBLOCK_LAZY_EXTDICT_ROW NULL125#endif126127#ifndef ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR128size_t ZSTD_compressBlock_lazy2(129ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],130void const* src, size_t srcSize);131size_t ZSTD_compressBlock_lazy2_row(132ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],133void const* src, size_t srcSize);134size_t ZSTD_compressBlock_lazy2_dictMatchState(135ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],136void const* src, size_t srcSize);137size_t ZSTD_compressBlock_lazy2_dictMatchState_row(138ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],139void const* src, size_t srcSize);140size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch(141ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],142void const* src, size_t srcSize);143size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch_row(144ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],145void const* src, size_t srcSize);146size_t ZSTD_compressBlock_lazy2_extDict(147ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],148void const* src, size_t srcSize);149size_t ZSTD_compressBlock_lazy2_extDict_row(150ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],151void const* src, size_t srcSize);152153#define ZSTD_COMPRESSBLOCK_LAZY2 ZSTD_compressBlock_lazy2154#define ZSTD_COMPRESSBLOCK_LAZY2_ROW ZSTD_compressBlock_lazy2_row155#define ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE ZSTD_compressBlock_lazy2_dictMatchState156#define ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE_ROW ZSTD_compressBlock_lazy2_dictMatchState_row157#define ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH ZSTD_compressBlock_lazy2_dedicatedDictSearch158#define ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH_ROW ZSTD_compressBlock_lazy2_dedicatedDictSearch_row159#define ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT ZSTD_compressBlock_lazy2_extDict160#define ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT_ROW ZSTD_compressBlock_lazy2_extDict_row161#else162#define ZSTD_COMPRESSBLOCK_LAZY2 NULL163#define ZSTD_COMPRESSBLOCK_LAZY2_ROW NULL164#define ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE NULL165#define ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE_ROW NULL166#define ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH NULL167#define ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH_ROW NULL168#define ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT NULL169#define ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT_ROW NULL170#endif171172#ifndef ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR173size_t ZSTD_compressBlock_btlazy2(174ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],175void const* src, size_t srcSize);176size_t ZSTD_compressBlock_btlazy2_dictMatchState(177ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],178void const* src, size_t srcSize);179size_t ZSTD_compressBlock_btlazy2_extDict(180ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],181void const* src, size_t srcSize);182183#define ZSTD_COMPRESSBLOCK_BTLAZY2 ZSTD_compressBlock_btlazy2184#define ZSTD_COMPRESSBLOCK_BTLAZY2_DICTMATCHSTATE ZSTD_compressBlock_btlazy2_dictMatchState185#define ZSTD_COMPRESSBLOCK_BTLAZY2_EXTDICT ZSTD_compressBlock_btlazy2_extDict186#else187#define ZSTD_COMPRESSBLOCK_BTLAZY2 NULL188#define ZSTD_COMPRESSBLOCK_BTLAZY2_DICTMATCHSTATE NULL189#define ZSTD_COMPRESSBLOCK_BTLAZY2_EXTDICT NULL190#endif191192#endif /* ZSTD_LAZY_H */193194195