1*01826a49SYabin Cui /* 2*01826a49SYabin Cui * Copyright (c) Meta Platforms, Inc. and affiliates. 3*01826a49SYabin Cui * All rights reserved. 4*01826a49SYabin Cui * 5*01826a49SYabin Cui * This source code is licensed under both the BSD-style license (found in the 6*01826a49SYabin Cui * LICENSE file in the root directory of this source tree) and the GPLv2 (found 7*01826a49SYabin Cui * in the COPYING file in the root directory of this source tree). 8*01826a49SYabin Cui * You may select, at your option, one of the above-listed licenses. 9*01826a49SYabin Cui */ 10*01826a49SYabin Cui 11*01826a49SYabin Cui #ifndef ZSTD_OPT_H 12*01826a49SYabin Cui #define ZSTD_OPT_H 13*01826a49SYabin Cui 14*01826a49SYabin Cui #if defined (__cplusplus) 15*01826a49SYabin Cui extern "C" { 16*01826a49SYabin Cui #endif 17*01826a49SYabin Cui 18*01826a49SYabin Cui #include "zstd_compress_internal.h" 19*01826a49SYabin Cui 20*01826a49SYabin Cui #if !defined(ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR) \ 21*01826a49SYabin Cui || !defined(ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR) \ 22*01826a49SYabin Cui || !defined(ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR) 23*01826a49SYabin Cui /* used in ZSTD_loadDictionaryContent() */ 24*01826a49SYabin Cui void ZSTD_updateTree(ZSTD_matchState_t* ms, const BYTE* ip, const BYTE* iend); 25*01826a49SYabin Cui #endif 26*01826a49SYabin Cui 27*01826a49SYabin Cui #ifndef ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR 28*01826a49SYabin Cui size_t ZSTD_compressBlock_btopt( 29*01826a49SYabin Cui ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 30*01826a49SYabin Cui void const* src, size_t srcSize); 31*01826a49SYabin Cui size_t ZSTD_compressBlock_btopt_dictMatchState( 32*01826a49SYabin Cui ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 33*01826a49SYabin Cui void const* src, size_t srcSize); 34*01826a49SYabin Cui size_t ZSTD_compressBlock_btopt_extDict( 35*01826a49SYabin Cui ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 36*01826a49SYabin Cui void const* src, size_t srcSize); 37*01826a49SYabin Cui 38*01826a49SYabin Cui #define ZSTD_COMPRESSBLOCK_BTOPT ZSTD_compressBlock_btopt 39*01826a49SYabin Cui #define ZSTD_COMPRESSBLOCK_BTOPT_DICTMATCHSTATE ZSTD_compressBlock_btopt_dictMatchState 40*01826a49SYabin Cui #define ZSTD_COMPRESSBLOCK_BTOPT_EXTDICT ZSTD_compressBlock_btopt_extDict 41*01826a49SYabin Cui #else 42*01826a49SYabin Cui #define ZSTD_COMPRESSBLOCK_BTOPT NULL 43*01826a49SYabin Cui #define ZSTD_COMPRESSBLOCK_BTOPT_DICTMATCHSTATE NULL 44*01826a49SYabin Cui #define ZSTD_COMPRESSBLOCK_BTOPT_EXTDICT NULL 45*01826a49SYabin Cui #endif 46*01826a49SYabin Cui 47*01826a49SYabin Cui #ifndef ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR 48*01826a49SYabin Cui size_t ZSTD_compressBlock_btultra( 49*01826a49SYabin Cui ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 50*01826a49SYabin Cui void const* src, size_t srcSize); 51*01826a49SYabin Cui size_t ZSTD_compressBlock_btultra_dictMatchState( 52*01826a49SYabin Cui ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 53*01826a49SYabin Cui void const* src, size_t srcSize); 54*01826a49SYabin Cui size_t ZSTD_compressBlock_btultra_extDict( 55*01826a49SYabin Cui ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 56*01826a49SYabin Cui void const* src, size_t srcSize); 57*01826a49SYabin Cui 58*01826a49SYabin Cui /* note : no btultra2 variant for extDict nor dictMatchState, 59*01826a49SYabin Cui * because btultra2 is not meant to work with dictionaries 60*01826a49SYabin Cui * and is only specific for the first block (no prefix) */ 61*01826a49SYabin Cui size_t ZSTD_compressBlock_btultra2( 62*01826a49SYabin Cui ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 63*01826a49SYabin Cui void const* src, size_t srcSize); 64*01826a49SYabin Cui 65*01826a49SYabin Cui #define ZSTD_COMPRESSBLOCK_BTULTRA ZSTD_compressBlock_btultra 66*01826a49SYabin Cui #define ZSTD_COMPRESSBLOCK_BTULTRA_DICTMATCHSTATE ZSTD_compressBlock_btultra_dictMatchState 67*01826a49SYabin Cui #define ZSTD_COMPRESSBLOCK_BTULTRA_EXTDICT ZSTD_compressBlock_btultra_extDict 68*01826a49SYabin Cui #define ZSTD_COMPRESSBLOCK_BTULTRA2 ZSTD_compressBlock_btultra2 69*01826a49SYabin Cui #else 70*01826a49SYabin Cui #define ZSTD_COMPRESSBLOCK_BTULTRA NULL 71*01826a49SYabin Cui #define ZSTD_COMPRESSBLOCK_BTULTRA_DICTMATCHSTATE NULL 72*01826a49SYabin Cui #define ZSTD_COMPRESSBLOCK_BTULTRA_EXTDICT NULL 73*01826a49SYabin Cui #define ZSTD_COMPRESSBLOCK_BTULTRA2 NULL 74*01826a49SYabin Cui #endif 75*01826a49SYabin Cui 76*01826a49SYabin Cui #if defined (__cplusplus) 77*01826a49SYabin Cui } 78*01826a49SYabin Cui #endif 79*01826a49SYabin Cui 80*01826a49SYabin Cui #endif /* ZSTD_OPT_H */ 81