~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/lib/zstd/decompress/zstd_decompress_block.h

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * Copyright (c) Yann Collet, Facebook, Inc.
  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 
 12 #ifndef ZSTD_DEC_BLOCK_H
 13 #define ZSTD_DEC_BLOCK_H
 14 
 15 /*-*******************************************************
 16  *  Dependencies
 17  *********************************************************/
 18 #include "../common/zstd_deps.h"   /* size_t */
 19 #include <linux/zstd.h>    /* DCtx, and some public functions */
 20 #include "../common/zstd_internal.h"  /* blockProperties_t, and some public functions */
 21 #include "zstd_decompress_internal.h"  /* ZSTD_seqSymbol */
 22 
 23 
 24 /* ===   Prototypes   === */
 25 
 26 /* note: prototypes already published within `zstd.h` :
 27  * ZSTD_decompressBlock()
 28  */
 29 
 30 /* note: prototypes already published within `zstd_internal.h` :
 31  * ZSTD_getcBlockSize()
 32  * ZSTD_decodeSeqHeaders()
 33  */
 34 
 35 
 36  /* Streaming state is used to inform allocation of the literal buffer */
 37 typedef enum {
 38     not_streaming = 0,
 39     is_streaming = 1
 40 } streaming_operation;
 41 
 42 /* ZSTD_decompressBlock_internal() :
 43  * decompress block, starting at `src`,
 44  * into destination buffer `dst`.
 45  * @return : decompressed block size,
 46  *           or an error code (which can be tested using ZSTD_isError())
 47  */
 48 size_t ZSTD_decompressBlock_internal(ZSTD_DCtx* dctx,
 49                                void* dst, size_t dstCapacity,
 50                          const void* src, size_t srcSize, const int frame, const streaming_operation streaming);
 51 
 52 /* ZSTD_buildFSETable() :
 53  * generate FSE decoding table for one symbol (ll, ml or off)
 54  * this function must be called with valid parameters only
 55  * (dt is large enough, normalizedCounter distribution total is a power of 2, max is within range, etc.)
 56  * in which case it cannot fail.
 57  * The workspace must be 4-byte aligned and at least ZSTD_BUILD_FSE_TABLE_WKSP_SIZE bytes, which is
 58  * defined in zstd_decompress_internal.h.
 59  * Internal use only.
 60  */
 61 void ZSTD_buildFSETable(ZSTD_seqSymbol* dt,
 62              const short* normalizedCounter, unsigned maxSymbolValue,
 63              const U32* baseValue, const U8* nbAdditionalBits,
 64                    unsigned tableLog, void* wksp, size_t wkspSize,
 65                    int bmi2);
 66 
 67 
 68 #endif /* ZSTD_DEC_BLOCK_H */
 69 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php