The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/zstd/lib/decompress/zstd_decompress_block.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    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 "../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 */

Cache object: 9a11daa9af96ac896c31331cbe994b3d


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.