1 /** 2 * \file zstddeclib.c 3 * Single-file Zstandard decompressor. 4 * 5 * Generate using: 6 * \code 7 * python combine.py -r ../../lib -x legacy/zstd_legacy.h -o zstddeclib.c zstddeclib-in.c 8 * \endcode 9 */ 10 /* 11 * Copyright (c) Meta Platforms, Inc. and affiliates. 12 * All rights reserved. 13 * 14 * This source code is licensed under both the BSD-style license (found in the 15 * LICENSE file in the root directory of this source tree) and the GPLv2 (found 16 * in the COPYING file in the root directory of this source tree). 17 * You may select, at your option, one of the above-listed licenses. 18 */ 19 /* 20 * Settings to bake for the standalone decompressor. 21 * 22 * Note: It's important that none of these affects 'zstd.h' (only the 23 * implementation files we're amalgamating). 24 * 25 * Note: MEM_MODULE stops xxhash redefining BYTE, U16, etc., which are also 26 * defined in mem.h (breaking C99 compatibility). 27 * 28 * Note: the undefs for xxHash allow Zstd's implementation to coincide with 29 * standalone xxHash usage (with global defines). 30 * 31 * Note: if you enable ZSTD_LEGACY_SUPPORT the combine.py script will need 32 * re-running without the "-x legacy/zstd_legacy.h" option (it excludes the 33 * legacy support at the source level). 34 */ 35 #define DEBUGLEVEL 0 36 #define MEM_MODULE 37 #undef XXH_NAMESPACE 38 #define XXH_NAMESPACE ZSTD_ 39 #undef XXH_PRIVATE_API 40 #define XXH_PRIVATE_API 41 #undef XXH_INLINE_ALL 42 #define XXH_INLINE_ALL 43 #define ZSTD_LEGACY_SUPPORT 0 44 #define ZSTD_STRIP_ERROR_STRINGS 45 #define ZSTD_TRACE 0 46 /* TODO: Can't amalgamate ASM function */ 47 #define ZSTD_DISABLE_ASM 1 48 49 /* Include zstd_deps.h first with all the options we need enabled. */ 50 #define ZSTD_DEPS_NEED_MALLOC 51 #include "common/zstd_deps.h" 52 53 #include "common/debug.c" 54 #include "common/entropy_common.c" 55 #include "common/error_private.c" 56 #include "common/fse_decompress.c" 57 #include "common/zstd_common.c" 58 59 #include "decompress/huf_decompress.c" 60 #include "decompress/zstd_ddict.c" 61 #include "decompress/zstd_decompress.c" 62 #include "decompress/zstd_decompress_block.c" 63