multi_compress 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +13 -0
- data/LICENSE.txt +21 -0
- data/README.md +116 -0
- data/ext/multi_compress/extconf.rb +171 -0
- data/ext/multi_compress/multi_compress.c +1534 -0
- data/ext/multi_compress/vendor/brotli/c/common/constants.c +15 -0
- data/ext/multi_compress/vendor/brotli/c/common/constants.h +201 -0
- data/ext/multi_compress/vendor/brotli/c/common/context.c +156 -0
- data/ext/multi_compress/vendor/brotli/c/common/context.h +113 -0
- data/ext/multi_compress/vendor/brotli/c/common/dictionary.c +5916 -0
- data/ext/multi_compress/vendor/brotli/c/common/dictionary.h +64 -0
- data/ext/multi_compress/vendor/brotli/c/common/platform.c +23 -0
- data/ext/multi_compress/vendor/brotli/c/common/platform.h +541 -0
- data/ext/multi_compress/vendor/brotli/c/common/shared_dictionary.c +521 -0
- data/ext/multi_compress/vendor/brotli/c/common/shared_dictionary_internal.h +75 -0
- data/ext/multi_compress/vendor/brotli/c/common/transform.c +291 -0
- data/ext/multi_compress/vendor/brotli/c/common/transform.h +85 -0
- data/ext/multi_compress/vendor/brotli/c/common/version.h +51 -0
- data/ext/multi_compress/vendor/brotli/c/dec/bit_reader.c +78 -0
- data/ext/multi_compress/vendor/brotli/c/dec/bit_reader.h +423 -0
- data/ext/multi_compress/vendor/brotli/c/dec/decode.c +2875 -0
- data/ext/multi_compress/vendor/brotli/c/dec/huffman.c +342 -0
- data/ext/multi_compress/vendor/brotli/c/dec/huffman.h +122 -0
- data/ext/multi_compress/vendor/brotli/c/dec/prefix.h +733 -0
- data/ext/multi_compress/vendor/brotli/c/dec/state.c +183 -0
- data/ext/multi_compress/vendor/brotli/c/dec/state.h +400 -0
- data/ext/multi_compress/vendor/brotli/c/enc/backward_references.c +207 -0
- data/ext/multi_compress/vendor/brotli/c/enc/backward_references.h +40 -0
- data/ext/multi_compress/vendor/brotli/c/enc/backward_references_hq.c +939 -0
- data/ext/multi_compress/vendor/brotli/c/enc/backward_references_hq.h +96 -0
- data/ext/multi_compress/vendor/brotli/c/enc/backward_references_inc.h +189 -0
- data/ext/multi_compress/vendor/brotli/c/enc/bit_cost.c +36 -0
- data/ext/multi_compress/vendor/brotli/c/enc/bit_cost.h +64 -0
- data/ext/multi_compress/vendor/brotli/c/enc/bit_cost_inc.h +127 -0
- data/ext/multi_compress/vendor/brotli/c/enc/block_encoder_inc.h +34 -0
- data/ext/multi_compress/vendor/brotli/c/enc/block_splitter.c +217 -0
- data/ext/multi_compress/vendor/brotli/c/enc/block_splitter.h +52 -0
- data/ext/multi_compress/vendor/brotli/c/enc/block_splitter_inc.h +481 -0
- data/ext/multi_compress/vendor/brotli/c/enc/brotli_bit_stream.c +1336 -0
- data/ext/multi_compress/vendor/brotli/c/enc/brotli_bit_stream.h +89 -0
- data/ext/multi_compress/vendor/brotli/c/enc/cluster.c +57 -0
- data/ext/multi_compress/vendor/brotli/c/enc/cluster.h +49 -0
- data/ext/multi_compress/vendor/brotli/c/enc/cluster_inc.h +325 -0
- data/ext/multi_compress/vendor/brotli/c/enc/command.c +28 -0
- data/ext/multi_compress/vendor/brotli/c/enc/command.h +191 -0
- data/ext/multi_compress/vendor/brotli/c/enc/compound_dictionary.c +207 -0
- data/ext/multi_compress/vendor/brotli/c/enc/compound_dictionary.h +74 -0
- data/ext/multi_compress/vendor/brotli/c/enc/compress_fragment.c +800 -0
- data/ext/multi_compress/vendor/brotli/c/enc/compress_fragment.h +86 -0
- data/ext/multi_compress/vendor/brotli/c/enc/compress_fragment_two_pass.c +657 -0
- data/ext/multi_compress/vendor/brotli/c/enc/compress_fragment_two_pass.h +72 -0
- data/ext/multi_compress/vendor/brotli/c/enc/dictionary_hash.c +1848 -0
- data/ext/multi_compress/vendor/brotli/c/enc/dictionary_hash.h +25 -0
- data/ext/multi_compress/vendor/brotli/c/enc/encode.c +1996 -0
- data/ext/multi_compress/vendor/brotli/c/enc/encoder_dict.c +640 -0
- data/ext/multi_compress/vendor/brotli/c/enc/encoder_dict.h +157 -0
- data/ext/multi_compress/vendor/brotli/c/enc/entropy_encode.c +504 -0
- data/ext/multi_compress/vendor/brotli/c/enc/entropy_encode.h +123 -0
- data/ext/multi_compress/vendor/brotli/c/enc/entropy_encode_static.h +542 -0
- data/ext/multi_compress/vendor/brotli/c/enc/fast_log.c +105 -0
- data/ext/multi_compress/vendor/brotli/c/enc/fast_log.h +67 -0
- data/ext/multi_compress/vendor/brotli/c/enc/find_match_length.h +72 -0
- data/ext/multi_compress/vendor/brotli/c/enc/hash.h +728 -0
- data/ext/multi_compress/vendor/brotli/c/enc/hash_composite_inc.h +140 -0
- data/ext/multi_compress/vendor/brotli/c/enc/hash_forgetful_chain_inc.h +295 -0
- data/ext/multi_compress/vendor/brotli/c/enc/hash_longest_match64_inc.h +262 -0
- data/ext/multi_compress/vendor/brotli/c/enc/hash_longest_match_inc.h +258 -0
- data/ext/multi_compress/vendor/brotli/c/enc/hash_longest_match_quickly_inc.h +266 -0
- data/ext/multi_compress/vendor/brotli/c/enc/hash_rolling_inc.h +212 -0
- data/ext/multi_compress/vendor/brotli/c/enc/hash_to_binary_tree_inc.h +330 -0
- data/ext/multi_compress/vendor/brotli/c/enc/histogram.c +100 -0
- data/ext/multi_compress/vendor/brotli/c/enc/histogram.h +64 -0
- data/ext/multi_compress/vendor/brotli/c/enc/histogram_inc.h +51 -0
- data/ext/multi_compress/vendor/brotli/c/enc/literal_cost.c +180 -0
- data/ext/multi_compress/vendor/brotli/c/enc/literal_cost.h +32 -0
- data/ext/multi_compress/vendor/brotli/c/enc/memory.c +194 -0
- data/ext/multi_compress/vendor/brotli/c/enc/memory.h +131 -0
- data/ext/multi_compress/vendor/brotli/c/enc/metablock.c +677 -0
- data/ext/multi_compress/vendor/brotli/c/enc/metablock.h +106 -0
- data/ext/multi_compress/vendor/brotli/c/enc/metablock_inc.h +185 -0
- data/ext/multi_compress/vendor/brotli/c/enc/params.h +47 -0
- data/ext/multi_compress/vendor/brotli/c/enc/prefix.h +54 -0
- data/ext/multi_compress/vendor/brotli/c/enc/quality.h +202 -0
- data/ext/multi_compress/vendor/brotli/c/enc/ringbuffer.h +168 -0
- data/ext/multi_compress/vendor/brotli/c/enc/state.h +104 -0
- data/ext/multi_compress/vendor/brotli/c/enc/static_dict.c +542 -0
- data/ext/multi_compress/vendor/brotli/c/enc/static_dict.h +41 -0
- data/ext/multi_compress/vendor/brotli/c/enc/static_dict_lut.h +5866 -0
- data/ext/multi_compress/vendor/brotli/c/enc/utf8_util.c +85 -0
- data/ext/multi_compress/vendor/brotli/c/enc/utf8_util.h +33 -0
- data/ext/multi_compress/vendor/brotli/c/enc/write_bits.h +88 -0
- data/ext/multi_compress/vendor/brotli/c/include/brotli/decode.h +409 -0
- data/ext/multi_compress/vendor/brotli/c/include/brotli/encode.h +501 -0
- data/ext/multi_compress/vendor/brotli/c/include/brotli/port.h +305 -0
- data/ext/multi_compress/vendor/brotli/c/include/brotli/shared_dictionary.h +100 -0
- data/ext/multi_compress/vendor/brotli/c/include/brotli/types.h +83 -0
- data/ext/multi_compress/vendor/lz4/lib/LICENSE +24 -0
- data/ext/multi_compress/vendor/lz4/lib/Makefile +244 -0
- data/ext/multi_compress/vendor/lz4/lib/README.md +193 -0
- data/ext/multi_compress/vendor/lz4/lib/dll/example/Makefile +63 -0
- data/ext/multi_compress/vendor/lz4/lib/dll/example/README.md +69 -0
- data/ext/multi_compress/vendor/lz4/lib/dll/example/fullbench-dll.sln +25 -0
- data/ext/multi_compress/vendor/lz4/lib/dll/example/fullbench-dll.vcxproj +182 -0
- data/ext/multi_compress/vendor/lz4/lib/liblz4-dll.rc.in +35 -0
- data/ext/multi_compress/vendor/lz4/lib/liblz4.pc.in +14 -0
- data/ext/multi_compress/vendor/lz4/lib/lz4.c +2829 -0
- data/ext/multi_compress/vendor/lz4/lib/lz4.h +884 -0
- data/ext/multi_compress/vendor/lz4/lib/lz4file.c +341 -0
- data/ext/multi_compress/vendor/lz4/lib/lz4file.h +93 -0
- data/ext/multi_compress/vendor/lz4/lib/lz4frame.c +2136 -0
- data/ext/multi_compress/vendor/lz4/lib/lz4frame.h +751 -0
- data/ext/multi_compress/vendor/lz4/lib/lz4frame_static.h +47 -0
- data/ext/multi_compress/vendor/lz4/lib/lz4hc.c +2192 -0
- data/ext/multi_compress/vendor/lz4/lib/lz4hc.h +414 -0
- data/ext/multi_compress/vendor/lz4/lib/xxhash.c +1030 -0
- data/ext/multi_compress/vendor/lz4/lib/xxhash.h +328 -0
- data/ext/multi_compress/vendor/zstd/lib/BUCK +232 -0
- data/ext/multi_compress/vendor/zstd/lib/Makefile +369 -0
- data/ext/multi_compress/vendor/zstd/lib/README.md +237 -0
- data/ext/multi_compress/vendor/zstd/lib/common/allocations.h +55 -0
- data/ext/multi_compress/vendor/zstd/lib/common/bits.h +200 -0
- data/ext/multi_compress/vendor/zstd/lib/common/bitstream.h +457 -0
- data/ext/multi_compress/vendor/zstd/lib/common/compiler.h +450 -0
- data/ext/multi_compress/vendor/zstd/lib/common/cpu.h +249 -0
- data/ext/multi_compress/vendor/zstd/lib/common/debug.c +30 -0
- data/ext/multi_compress/vendor/zstd/lib/common/debug.h +116 -0
- data/ext/multi_compress/vendor/zstd/lib/common/entropy_common.c +340 -0
- data/ext/multi_compress/vendor/zstd/lib/common/error_private.c +63 -0
- data/ext/multi_compress/vendor/zstd/lib/common/error_private.h +168 -0
- data/ext/multi_compress/vendor/zstd/lib/common/fse.h +640 -0
- data/ext/multi_compress/vendor/zstd/lib/common/fse_decompress.c +313 -0
- data/ext/multi_compress/vendor/zstd/lib/common/huf.h +286 -0
- data/ext/multi_compress/vendor/zstd/lib/common/mem.h +426 -0
- data/ext/multi_compress/vendor/zstd/lib/common/pool.c +371 -0
- data/ext/multi_compress/vendor/zstd/lib/common/pool.h +90 -0
- data/ext/multi_compress/vendor/zstd/lib/common/portability_macros.h +158 -0
- data/ext/multi_compress/vendor/zstd/lib/common/threading.c +182 -0
- data/ext/multi_compress/vendor/zstd/lib/common/threading.h +150 -0
- data/ext/multi_compress/vendor/zstd/lib/common/xxhash.c +18 -0
- data/ext/multi_compress/vendor/zstd/lib/common/xxhash.h +7020 -0
- data/ext/multi_compress/vendor/zstd/lib/common/zstd_common.c +48 -0
- data/ext/multi_compress/vendor/zstd/lib/common/zstd_deps.h +111 -0
- data/ext/multi_compress/vendor/zstd/lib/common/zstd_internal.h +392 -0
- data/ext/multi_compress/vendor/zstd/lib/common/zstd_trace.h +163 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/clevels.h +134 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/fse_compress.c +625 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/hist.c +181 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/hist.h +75 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/huf_compress.c +1464 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress.c +7153 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_internal.h +1534 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_literals.c +235 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_literals.h +39 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_sequences.c +442 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_sequences.h +54 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_superblock.c +688 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_superblock.h +32 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_cwksp.h +748 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_double_fast.c +770 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_double_fast.h +50 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_fast.c +968 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_fast.h +38 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_lazy.c +2199 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_lazy.h +202 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_ldm.c +730 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_ldm.h +117 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_ldm_geartab.h +106 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_opt.c +1576 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_opt.h +80 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstdmt_compress.c +1882 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstdmt_compress.h +113 -0
- data/ext/multi_compress/vendor/zstd/lib/decompress/huf_decompress.c +1944 -0
- data/ext/multi_compress/vendor/zstd/lib/decompress/huf_decompress_amd64.S +595 -0
- data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_ddict.c +244 -0
- data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_ddict.h +44 -0
- data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_decompress.c +2407 -0
- data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_decompress_block.c +2215 -0
- data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_decompress_block.h +73 -0
- data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_decompress_internal.h +240 -0
- data/ext/multi_compress/vendor/zstd/lib/deprecated/zbuff.h +214 -0
- data/ext/multi_compress/vendor/zstd/lib/deprecated/zbuff_common.c +26 -0
- data/ext/multi_compress/vendor/zstd/lib/deprecated/zbuff_compress.c +167 -0
- data/ext/multi_compress/vendor/zstd/lib/deprecated/zbuff_decompress.c +77 -0
- data/ext/multi_compress/vendor/zstd/lib/dictBuilder/cover.c +1261 -0
- data/ext/multi_compress/vendor/zstd/lib/dictBuilder/cover.h +152 -0
- data/ext/multi_compress/vendor/zstd/lib/dictBuilder/divsufsort.c +1913 -0
- data/ext/multi_compress/vendor/zstd/lib/dictBuilder/divsufsort.h +67 -0
- data/ext/multi_compress/vendor/zstd/lib/dictBuilder/fastcover.c +766 -0
- data/ext/multi_compress/vendor/zstd/lib/dictBuilder/zdict.c +1133 -0
- data/ext/multi_compress/vendor/zstd/lib/dll/example/Makefile +48 -0
- data/ext/multi_compress/vendor/zstd/lib/dll/example/README.md +63 -0
- data/ext/multi_compress/vendor/zstd/lib/dll/example/build_package.bat +20 -0
- data/ext/multi_compress/vendor/zstd/lib/dll/example/fullbench-dll.sln +25 -0
- data/ext/multi_compress/vendor/zstd/lib/dll/example/fullbench-dll.vcxproj +181 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_legacy.h +452 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v01.c +2127 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v01.h +94 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v02.c +3465 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v02.h +93 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v03.c +3105 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v03.h +93 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v04.c +3598 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v04.h +142 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v05.c +4005 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v05.h +162 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v06.c +4106 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v06.h +172 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v07.c +4490 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v07.h +187 -0
- data/ext/multi_compress/vendor/zstd/lib/libzstd.mk +237 -0
- data/ext/multi_compress/vendor/zstd/lib/libzstd.pc.in +16 -0
- data/ext/multi_compress/vendor/zstd/lib/module.modulemap +35 -0
- data/ext/multi_compress/vendor/zstd/lib/zdict.h +474 -0
- data/ext/multi_compress/vendor/zstd/lib/zstd.h +3089 -0
- data/ext/multi_compress/vendor/zstd/lib/zstd_errors.h +114 -0
- data/lib/multi_compress/version.rb +5 -0
- data/lib/multi_compress.rb +329 -0
- metadata +322 -0
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
/* Copyright 2016 Google Inc. All Rights Reserved.
|
|
2
|
+
|
|
3
|
+
Distributed under MIT license.
|
|
4
|
+
See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* Macros for compiler / platform specific API declarations. */
|
|
8
|
+
|
|
9
|
+
#ifndef BROTLI_COMMON_PORT_H_
|
|
10
|
+
#define BROTLI_COMMON_PORT_H_
|
|
11
|
+
|
|
12
|
+
/* The following macros were borrowed from https://github.com/nemequ/hedley
|
|
13
|
+
* with permission of original author - Evan Nemerson <evan@nemerson.com> */
|
|
14
|
+
|
|
15
|
+
/* >>> >>> >>> hedley macros */
|
|
16
|
+
|
|
17
|
+
#define BROTLI_MAKE_VERSION(major, minor, revision) \
|
|
18
|
+
(((major) * 1000000) + ((minor) * 1000) + (revision))
|
|
19
|
+
|
|
20
|
+
#if defined(__GNUC__) && defined(__GNUC_PATCHLEVEL__)
|
|
21
|
+
#define BROTLI_GNUC_VERSION \
|
|
22
|
+
BROTLI_MAKE_VERSION(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__)
|
|
23
|
+
#elif defined(__GNUC__)
|
|
24
|
+
#define BROTLI_GNUC_VERSION BROTLI_MAKE_VERSION(__GNUC__, __GNUC_MINOR__, 0)
|
|
25
|
+
#endif
|
|
26
|
+
|
|
27
|
+
#if defined(BROTLI_GNUC_VERSION)
|
|
28
|
+
#define BROTLI_GNUC_VERSION_CHECK(major, minor, patch) \
|
|
29
|
+
(BROTLI_GNUC_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
|
|
30
|
+
#else
|
|
31
|
+
#define BROTLI_GNUC_VERSION_CHECK(major, minor, patch) (0)
|
|
32
|
+
#endif
|
|
33
|
+
|
|
34
|
+
#if defined(_MSC_FULL_VER) && (_MSC_FULL_VER >= 140000000)
|
|
35
|
+
#define BROTLI_MSVC_VERSION \
|
|
36
|
+
BROTLI_MAKE_VERSION((_MSC_FULL_VER / 10000000), \
|
|
37
|
+
(_MSC_FULL_VER % 10000000) / 100000, \
|
|
38
|
+
(_MSC_FULL_VER % 100000) / 100)
|
|
39
|
+
#elif defined(_MSC_FULL_VER)
|
|
40
|
+
#define BROTLI_MSVC_VERSION \
|
|
41
|
+
BROTLI_MAKE_VERSION((_MSC_FULL_VER / 1000000), \
|
|
42
|
+
(_MSC_FULL_VER % 1000000) / 10000, \
|
|
43
|
+
(_MSC_FULL_VER % 10000) / 10)
|
|
44
|
+
#elif defined(_MSC_VER)
|
|
45
|
+
#define BROTLI_MSVC_VERSION \
|
|
46
|
+
BROTLI_MAKE_VERSION(_MSC_VER / 100, _MSC_VER % 100, 0)
|
|
47
|
+
#endif
|
|
48
|
+
|
|
49
|
+
#if !defined(_MSC_VER)
|
|
50
|
+
#define BROTLI_MSVC_VERSION_CHECK(major, minor, patch) (0)
|
|
51
|
+
#elif defined(_MSC_VER) && (_MSC_VER >= 1400)
|
|
52
|
+
#define BROTLI_MSVC_VERSION_CHECK(major, minor, patch) \
|
|
53
|
+
(_MSC_FULL_VER >= ((major * 10000000) + (minor * 100000) + (patch)))
|
|
54
|
+
#elif defined(_MSC_VER) && (_MSC_VER >= 1200)
|
|
55
|
+
#define BROTLI_MSVC_VERSION_CHECK(major, minor, patch) \
|
|
56
|
+
(_MSC_FULL_VER >= ((major * 1000000) + (minor * 10000) + (patch)))
|
|
57
|
+
#else
|
|
58
|
+
#define BROTLI_MSVC_VERSION_CHECK(major, minor, patch) \
|
|
59
|
+
(_MSC_VER >= ((major * 100) + (minor)))
|
|
60
|
+
#endif
|
|
61
|
+
|
|
62
|
+
#if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE)
|
|
63
|
+
#define BROTLI_INTEL_VERSION \
|
|
64
|
+
BROTLI_MAKE_VERSION(__INTEL_COMPILER / 100, \
|
|
65
|
+
__INTEL_COMPILER % 100, \
|
|
66
|
+
__INTEL_COMPILER_UPDATE)
|
|
67
|
+
#elif defined(__INTEL_COMPILER)
|
|
68
|
+
#define BROTLI_INTEL_VERSION \
|
|
69
|
+
BROTLI_MAKE_VERSION(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, 0)
|
|
70
|
+
#endif
|
|
71
|
+
|
|
72
|
+
#if defined(BROTLI_INTEL_VERSION)
|
|
73
|
+
#define BROTLI_INTEL_VERSION_CHECK(major, minor, patch) \
|
|
74
|
+
(BROTLI_INTEL_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
|
|
75
|
+
#else
|
|
76
|
+
#define BROTLI_INTEL_VERSION_CHECK(major, minor, patch) (0)
|
|
77
|
+
#endif
|
|
78
|
+
|
|
79
|
+
#if defined(__PGI) && \
|
|
80
|
+
defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__)
|
|
81
|
+
#define BROTLI_PGI_VERSION \
|
|
82
|
+
BROTLI_MAKE_VERSION(__PGIC__, __PGIC_MINOR__, __PGIC_PATCHLEVEL__)
|
|
83
|
+
#endif
|
|
84
|
+
|
|
85
|
+
#if defined(BROTLI_PGI_VERSION)
|
|
86
|
+
#define BROTLI_PGI_VERSION_CHECK(major, minor, patch) \
|
|
87
|
+
(BROTLI_PGI_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
|
|
88
|
+
#else
|
|
89
|
+
#define BROTLI_PGI_VERSION_CHECK(major, minor, patch) (0)
|
|
90
|
+
#endif
|
|
91
|
+
|
|
92
|
+
#if defined(__SUNPRO_C) && (__SUNPRO_C > 0x1000)
|
|
93
|
+
#define BROTLI_SUNPRO_VERSION \
|
|
94
|
+
BROTLI_MAKE_VERSION( \
|
|
95
|
+
(((__SUNPRO_C >> 16) & 0xf) * 10) + ((__SUNPRO_C >> 12) & 0xf), \
|
|
96
|
+
(((__SUNPRO_C >> 8) & 0xf) * 10) + ((__SUNPRO_C >> 4) & 0xf), \
|
|
97
|
+
(__SUNPRO_C & 0xf) * 10)
|
|
98
|
+
#elif defined(__SUNPRO_C)
|
|
99
|
+
#define BROTLI_SUNPRO_VERSION \
|
|
100
|
+
BROTLI_MAKE_VERSION((__SUNPRO_C >> 8) & 0xf, \
|
|
101
|
+
(__SUNPRO_C >> 4) & 0xf, \
|
|
102
|
+
(__SUNPRO_C) & 0xf)
|
|
103
|
+
#elif defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x1000)
|
|
104
|
+
#define BROTLI_SUNPRO_VERSION \
|
|
105
|
+
BROTLI_MAKE_VERSION( \
|
|
106
|
+
(((__SUNPRO_CC >> 16) & 0xf) * 10) + ((__SUNPRO_CC >> 12) & 0xf), \
|
|
107
|
+
(((__SUNPRO_CC >> 8) & 0xf) * 10) + ((__SUNPRO_CC >> 4) & 0xf), \
|
|
108
|
+
(__SUNPRO_CC & 0xf) * 10)
|
|
109
|
+
#elif defined(__SUNPRO_CC)
|
|
110
|
+
#define BROTLI_SUNPRO_VERSION \
|
|
111
|
+
BROTLI_MAKE_VERSION((__SUNPRO_CC >> 8) & 0xf, \
|
|
112
|
+
(__SUNPRO_CC >> 4) & 0xf, \
|
|
113
|
+
(__SUNPRO_CC) & 0xf)
|
|
114
|
+
#endif
|
|
115
|
+
|
|
116
|
+
#if defined(BROTLI_SUNPRO_VERSION)
|
|
117
|
+
#define BROTLI_SUNPRO_VERSION_CHECK(major, minor, patch) \
|
|
118
|
+
(BROTLI_SUNPRO_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
|
|
119
|
+
#else
|
|
120
|
+
#define BROTLI_SUNPRO_VERSION_CHECK(major, minor, patch) (0)
|
|
121
|
+
#endif
|
|
122
|
+
|
|
123
|
+
#if defined(__CC_ARM) && defined(__ARMCOMPILER_VERSION)
|
|
124
|
+
#define BROTLI_ARM_VERSION \
|
|
125
|
+
BROTLI_MAKE_VERSION((__ARMCOMPILER_VERSION / 1000000), \
|
|
126
|
+
(__ARMCOMPILER_VERSION % 1000000) / 10000, \
|
|
127
|
+
(__ARMCOMPILER_VERSION % 10000) / 100)
|
|
128
|
+
#elif defined(__CC_ARM) && defined(__ARMCC_VERSION)
|
|
129
|
+
#define BROTLI_ARM_VERSION \
|
|
130
|
+
BROTLI_MAKE_VERSION((__ARMCC_VERSION / 1000000), \
|
|
131
|
+
(__ARMCC_VERSION % 1000000) / 10000, \
|
|
132
|
+
(__ARMCC_VERSION % 10000) / 100)
|
|
133
|
+
#endif
|
|
134
|
+
|
|
135
|
+
#if defined(BROTLI_ARM_VERSION)
|
|
136
|
+
#define BROTLI_ARM_VERSION_CHECK(major, minor, patch) \
|
|
137
|
+
(BROTLI_ARM_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
|
|
138
|
+
#else
|
|
139
|
+
#define BROTLI_ARM_VERSION_CHECK(major, minor, patch) (0)
|
|
140
|
+
#endif
|
|
141
|
+
|
|
142
|
+
#if defined(__ibmxl__)
|
|
143
|
+
#define BROTLI_IBM_VERSION \
|
|
144
|
+
BROTLI_MAKE_VERSION(__ibmxl_version__, \
|
|
145
|
+
__ibmxl_release__, \
|
|
146
|
+
__ibmxl_modification__)
|
|
147
|
+
#elif defined(__xlC__) && defined(__xlC_ver__)
|
|
148
|
+
#define BROTLI_IBM_VERSION \
|
|
149
|
+
BROTLI_MAKE_VERSION(__xlC__ >> 8, __xlC__ & 0xff, (__xlC_ver__ >> 8) & 0xff)
|
|
150
|
+
#elif defined(__xlC__)
|
|
151
|
+
#define BROTLI_IBM_VERSION BROTLI_MAKE_VERSION(__xlC__ >> 8, __xlC__ & 0xff, 0)
|
|
152
|
+
#endif
|
|
153
|
+
|
|
154
|
+
#if defined(BROTLI_IBM_VERSION)
|
|
155
|
+
#define BROTLI_IBM_VERSION_CHECK(major, minor, patch) \
|
|
156
|
+
(BROTLI_IBM_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
|
|
157
|
+
#else
|
|
158
|
+
#define BROTLI_IBM_VERSION_CHECK(major, minor, patch) (0)
|
|
159
|
+
#endif
|
|
160
|
+
|
|
161
|
+
#if defined(__TI_COMPILER_VERSION__)
|
|
162
|
+
#define BROTLI_TI_VERSION \
|
|
163
|
+
BROTLI_MAKE_VERSION((__TI_COMPILER_VERSION__ / 1000000), \
|
|
164
|
+
(__TI_COMPILER_VERSION__ % 1000000) / 1000, \
|
|
165
|
+
(__TI_COMPILER_VERSION__ % 1000))
|
|
166
|
+
#endif
|
|
167
|
+
|
|
168
|
+
#if defined(BROTLI_TI_VERSION)
|
|
169
|
+
#define BROTLI_TI_VERSION_CHECK(major, minor, patch) \
|
|
170
|
+
(BROTLI_TI_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
|
|
171
|
+
#else
|
|
172
|
+
#define BROTLI_TI_VERSION_CHECK(major, minor, patch) (0)
|
|
173
|
+
#endif
|
|
174
|
+
|
|
175
|
+
#if defined(__IAR_SYSTEMS_ICC__)
|
|
176
|
+
#if __VER__ > 1000
|
|
177
|
+
#define BROTLI_IAR_VERSION \
|
|
178
|
+
BROTLI_MAKE_VERSION((__VER__ / 1000000), \
|
|
179
|
+
(__VER__ / 1000) % 1000, \
|
|
180
|
+
(__VER__ % 1000))
|
|
181
|
+
#else
|
|
182
|
+
#define BROTLI_IAR_VERSION BROTLI_MAKE_VERSION(VER / 100, __VER__ % 100, 0)
|
|
183
|
+
#endif
|
|
184
|
+
#endif
|
|
185
|
+
|
|
186
|
+
#if defined(BROTLI_IAR_VERSION)
|
|
187
|
+
#define BROTLI_IAR_VERSION_CHECK(major, minor, patch) \
|
|
188
|
+
(BROTLI_IAR_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
|
|
189
|
+
#else
|
|
190
|
+
#define BROTLI_IAR_VERSION_CHECK(major, minor, patch) (0)
|
|
191
|
+
#endif
|
|
192
|
+
|
|
193
|
+
#if defined(__TINYC__)
|
|
194
|
+
#define BROTLI_TINYC_VERSION \
|
|
195
|
+
BROTLI_MAKE_VERSION(__TINYC__ / 1000, (__TINYC__ / 100) % 10, __TINYC__ % 100)
|
|
196
|
+
#endif
|
|
197
|
+
|
|
198
|
+
#if defined(BROTLI_TINYC_VERSION)
|
|
199
|
+
#define BROTLI_TINYC_VERSION_CHECK(major, minor, patch) \
|
|
200
|
+
(BROTLI_TINYC_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
|
|
201
|
+
#else
|
|
202
|
+
#define BROTLI_TINYC_VERSION_CHECK(major, minor, patch) (0)
|
|
203
|
+
#endif
|
|
204
|
+
|
|
205
|
+
#if defined(__has_attribute)
|
|
206
|
+
#define BROTLI_GNUC_HAS_ATTRIBUTE(attribute, major, minor, patch) \
|
|
207
|
+
__has_attribute(attribute)
|
|
208
|
+
#else
|
|
209
|
+
#define BROTLI_GNUC_HAS_ATTRIBUTE(attribute, major, minor, patch) \
|
|
210
|
+
BROTLI_GNUC_VERSION_CHECK(major, minor, patch)
|
|
211
|
+
#endif
|
|
212
|
+
|
|
213
|
+
#if defined(__has_builtin)
|
|
214
|
+
#define BROTLI_GNUC_HAS_BUILTIN(builtin, major, minor, patch) \
|
|
215
|
+
__has_builtin(builtin)
|
|
216
|
+
#else
|
|
217
|
+
#define BROTLI_GNUC_HAS_BUILTIN(builtin, major, minor, patch) \
|
|
218
|
+
BROTLI_GNUC_VERSION_CHECK(major, minor, patch)
|
|
219
|
+
#endif
|
|
220
|
+
|
|
221
|
+
#if defined(__has_feature)
|
|
222
|
+
#define BROTLI_HAS_FEATURE(feature) __has_feature(feature)
|
|
223
|
+
#else
|
|
224
|
+
#define BROTLI_HAS_FEATURE(feature) (0)
|
|
225
|
+
#endif
|
|
226
|
+
|
|
227
|
+
#if defined(_WIN32) || defined(__CYGWIN__)
|
|
228
|
+
#define BROTLI_PUBLIC
|
|
229
|
+
#elif BROTLI_GNUC_VERSION_CHECK(3, 3, 0) || \
|
|
230
|
+
BROTLI_TI_VERSION_CHECK(8, 0, 0) || \
|
|
231
|
+
BROTLI_INTEL_VERSION_CHECK(16, 0, 0) || \
|
|
232
|
+
BROTLI_ARM_VERSION_CHECK(4, 1, 0) || \
|
|
233
|
+
BROTLI_IBM_VERSION_CHECK(13, 1, 0) || \
|
|
234
|
+
BROTLI_SUNPRO_VERSION_CHECK(5, 11, 0) || \
|
|
235
|
+
(BROTLI_TI_VERSION_CHECK(7, 3, 0) && \
|
|
236
|
+
defined(__TI_GNU_ATTRIBUTE_SUPPORT__) && defined(__TI_EABI__))
|
|
237
|
+
#define BROTLI_PUBLIC __attribute__ ((visibility ("default")))
|
|
238
|
+
#else
|
|
239
|
+
#define BROTLI_PUBLIC
|
|
240
|
+
#endif
|
|
241
|
+
|
|
242
|
+
/* BROTLI_INTERNAL could be defined to override visibility, e.g. for tests. */
|
|
243
|
+
#if !defined(BROTLI_INTERNAL)
|
|
244
|
+
#if defined(_WIN32) || defined(__CYGWIN__)
|
|
245
|
+
#define BROTLI_INTERNAL
|
|
246
|
+
#elif BROTLI_GNUC_VERSION_CHECK(3, 3, 0) || \
|
|
247
|
+
BROTLI_TI_VERSION_CHECK(8, 0, 0) || \
|
|
248
|
+
BROTLI_INTEL_VERSION_CHECK(16, 0, 0) || \
|
|
249
|
+
BROTLI_ARM_VERSION_CHECK(4, 1, 0) || \
|
|
250
|
+
BROTLI_IBM_VERSION_CHECK(13, 1, 0) || \
|
|
251
|
+
BROTLI_SUNPRO_VERSION_CHECK(5, 11, 0) || \
|
|
252
|
+
(BROTLI_TI_VERSION_CHECK(7, 3, 0) && \
|
|
253
|
+
defined(__TI_GNU_ATTRIBUTE_SUPPORT__) && defined(__TI_EABI__))
|
|
254
|
+
#define BROTLI_INTERNAL __attribute__ ((visibility ("hidden")))
|
|
255
|
+
#else
|
|
256
|
+
#define BROTLI_INTERNAL
|
|
257
|
+
#endif
|
|
258
|
+
#endif
|
|
259
|
+
|
|
260
|
+
#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && \
|
|
261
|
+
!defined(__STDC_NO_VLA__) && !defined(__cplusplus) && \
|
|
262
|
+
!defined(__PGI) && !defined(__PGIC__) && !defined(__TINYC__) && \
|
|
263
|
+
!defined(__clang__)
|
|
264
|
+
#define BROTLI_ARRAY_PARAM(name) (name)
|
|
265
|
+
#else
|
|
266
|
+
#define BROTLI_ARRAY_PARAM(name)
|
|
267
|
+
#endif
|
|
268
|
+
|
|
269
|
+
/* <<< <<< <<< end of hedley macros. */
|
|
270
|
+
|
|
271
|
+
#if defined(BROTLI_SHARED_COMPILATION)
|
|
272
|
+
#if defined(_WIN32)
|
|
273
|
+
#if defined(BROTLICOMMON_SHARED_COMPILATION)
|
|
274
|
+
#define BROTLI_COMMON_API __declspec(dllexport)
|
|
275
|
+
#else
|
|
276
|
+
#define BROTLI_COMMON_API __declspec(dllimport)
|
|
277
|
+
#endif /* BROTLICOMMON_SHARED_COMPILATION */
|
|
278
|
+
#if defined(BROTLIDEC_SHARED_COMPILATION)
|
|
279
|
+
#define BROTLI_DEC_API __declspec(dllexport)
|
|
280
|
+
#else
|
|
281
|
+
#define BROTLI_DEC_API __declspec(dllimport)
|
|
282
|
+
#endif /* BROTLIDEC_SHARED_COMPILATION */
|
|
283
|
+
#if defined(BROTLIENC_SHARED_COMPILATION)
|
|
284
|
+
#define BROTLI_ENC_API __declspec(dllexport)
|
|
285
|
+
#else
|
|
286
|
+
#define BROTLI_ENC_API __declspec(dllimport)
|
|
287
|
+
#endif /* BROTLIENC_SHARED_COMPILATION */
|
|
288
|
+
#else /* _WIN32 */
|
|
289
|
+
#define BROTLI_COMMON_API BROTLI_PUBLIC
|
|
290
|
+
#define BROTLI_DEC_API BROTLI_PUBLIC
|
|
291
|
+
#define BROTLI_ENC_API BROTLI_PUBLIC
|
|
292
|
+
#endif /* _WIN32 */
|
|
293
|
+
#else /* BROTLI_SHARED_COMPILATION */
|
|
294
|
+
#define BROTLI_COMMON_API
|
|
295
|
+
#define BROTLI_DEC_API
|
|
296
|
+
#define BROTLI_ENC_API
|
|
297
|
+
#endif
|
|
298
|
+
|
|
299
|
+
#if defined(BROTLI_BUILD_ENC_EXTRA_API)
|
|
300
|
+
#define BROTLI_ENC_EXTRA_API BROTLI_ENC_API
|
|
301
|
+
#else
|
|
302
|
+
#define BROTLI_ENC_EXTRA_API BROTLI_INTERNAL
|
|
303
|
+
#endif
|
|
304
|
+
|
|
305
|
+
#endif /* BROTLI_COMMON_PORT_H_ */
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/* Copyright 2017 Google Inc. All Rights Reserved.
|
|
2
|
+
|
|
3
|
+
Distributed under MIT license.
|
|
4
|
+
See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* (Opaque) Shared Dictionary definition and utilities. */
|
|
8
|
+
|
|
9
|
+
#ifndef BROTLI_COMMON_SHARED_DICTIONARY_H_
|
|
10
|
+
#define BROTLI_COMMON_SHARED_DICTIONARY_H_
|
|
11
|
+
|
|
12
|
+
#include <brotli/port.h>
|
|
13
|
+
#include <brotli/types.h>
|
|
14
|
+
|
|
15
|
+
#if defined(__cplusplus) || defined(c_plusplus)
|
|
16
|
+
extern "C" {
|
|
17
|
+
#endif
|
|
18
|
+
|
|
19
|
+
#define SHARED_BROTLI_MIN_DICTIONARY_WORD_LENGTH 4
|
|
20
|
+
#define SHARED_BROTLI_MAX_DICTIONARY_WORD_LENGTH 31
|
|
21
|
+
#define SHARED_BROTLI_NUM_DICTIONARY_CONTEXTS 64
|
|
22
|
+
#define SHARED_BROTLI_MAX_COMPOUND_DICTS 15
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Opaque structure that holds shared dictionary data.
|
|
26
|
+
*
|
|
27
|
+
* Allocated and initialized with ::BrotliSharedDictionaryCreateInstance.
|
|
28
|
+
* Cleaned up and deallocated with ::BrotliSharedDictionaryDestroyInstance.
|
|
29
|
+
*/
|
|
30
|
+
typedef struct BrotliSharedDictionaryStruct BrotliSharedDictionary;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Input data type for ::BrotliSharedDictionaryAttach.
|
|
34
|
+
*/
|
|
35
|
+
typedef enum BrotliSharedDictionaryType {
|
|
36
|
+
/** Raw LZ77 prefix dictionary. */
|
|
37
|
+
BROTLI_SHARED_DICTIONARY_RAW = 0,
|
|
38
|
+
/** Serialized shared dictionary.
|
|
39
|
+
*
|
|
40
|
+
* DO NOT USE: methods accepting this value will fail.
|
|
41
|
+
*/
|
|
42
|
+
BROTLI_SHARED_DICTIONARY_SERIALIZED = 1
|
|
43
|
+
} BrotliSharedDictionaryType;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Creates an instance of ::BrotliSharedDictionary.
|
|
47
|
+
*
|
|
48
|
+
* Fresh instance has default word dictionary and transforms
|
|
49
|
+
* and no LZ77 prefix dictionary.
|
|
50
|
+
*
|
|
51
|
+
* @p alloc_func and @p free_func @b MUST be both zero or both non-zero. In the
|
|
52
|
+
* case they are both zero, default memory allocators are used. @p opaque is
|
|
53
|
+
* passed to @p alloc_func and @p free_func when they are called. @p free_func
|
|
54
|
+
* has to return without doing anything when asked to free a NULL pointer.
|
|
55
|
+
*
|
|
56
|
+
* @param alloc_func custom memory allocation function
|
|
57
|
+
* @param free_func custom memory free function
|
|
58
|
+
* @param opaque custom memory manager handle
|
|
59
|
+
* @returns @c 0 if instance can not be allocated or initialized
|
|
60
|
+
* @returns pointer to initialized ::BrotliSharedDictionary otherwise
|
|
61
|
+
*/
|
|
62
|
+
BROTLI_COMMON_API BrotliSharedDictionary* BrotliSharedDictionaryCreateInstance(
|
|
63
|
+
brotli_alloc_func alloc_func, brotli_free_func free_func, void* opaque);
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Deinitializes and frees ::BrotliSharedDictionary instance.
|
|
67
|
+
*
|
|
68
|
+
* @param dict shared dictionary instance to be cleaned up and deallocated
|
|
69
|
+
*/
|
|
70
|
+
BROTLI_COMMON_API void BrotliSharedDictionaryDestroyInstance(
|
|
71
|
+
BrotliSharedDictionary* dict);
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Attaches dictionary to a given instance of ::BrotliSharedDictionary.
|
|
75
|
+
*
|
|
76
|
+
* Dictionary to be attached is represented in a serialized format as a region
|
|
77
|
+
* of memory.
|
|
78
|
+
*
|
|
79
|
+
* Provided data it partially referenced by a resulting (compound) dictionary,
|
|
80
|
+
* and should be kept untouched, while at least one compound dictionary uses it.
|
|
81
|
+
* This way memory overhead is kept minimal by the cost of additional resource
|
|
82
|
+
* management.
|
|
83
|
+
*
|
|
84
|
+
* @param dict dictionary to extend
|
|
85
|
+
* @param type type of dictionary to attach
|
|
86
|
+
* @param data_size size of @p data
|
|
87
|
+
* @param data serialized dictionary of type @p type, with at least @p data_size
|
|
88
|
+
* addressable bytes
|
|
89
|
+
* @returns ::BROTLI_TRUE if provided dictionary is successfully attached
|
|
90
|
+
* @returns ::BROTLI_FALSE otherwise
|
|
91
|
+
*/
|
|
92
|
+
BROTLI_COMMON_API BROTLI_BOOL BrotliSharedDictionaryAttach(
|
|
93
|
+
BrotliSharedDictionary* dict, BrotliSharedDictionaryType type,
|
|
94
|
+
size_t data_size, const uint8_t data[BROTLI_ARRAY_PARAM(data_size)]);
|
|
95
|
+
|
|
96
|
+
#if defined(__cplusplus) || defined(c_plusplus)
|
|
97
|
+
} /* extern "C" */
|
|
98
|
+
#endif
|
|
99
|
+
|
|
100
|
+
#endif /* BROTLI_COMMON_SHARED_DICTIONARY_H_ */
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/* Copyright 2013 Google Inc. All Rights Reserved.
|
|
2
|
+
|
|
3
|
+
Distributed under MIT license.
|
|
4
|
+
See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @file
|
|
9
|
+
* Common types used in decoder and encoder API.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
#ifndef BROTLI_COMMON_TYPES_H_
|
|
13
|
+
#define BROTLI_COMMON_TYPES_H_
|
|
14
|
+
|
|
15
|
+
#include <stddef.h> /* for size_t */
|
|
16
|
+
|
|
17
|
+
#if defined(_MSC_VER) && (_MSC_VER < 1600)
|
|
18
|
+
typedef __int8 int8_t;
|
|
19
|
+
typedef unsigned __int8 uint8_t;
|
|
20
|
+
typedef __int16 int16_t;
|
|
21
|
+
typedef unsigned __int16 uint16_t;
|
|
22
|
+
typedef __int32 int32_t;
|
|
23
|
+
typedef unsigned __int32 uint32_t;
|
|
24
|
+
typedef unsigned __int64 uint64_t;
|
|
25
|
+
typedef __int64 int64_t;
|
|
26
|
+
#else
|
|
27
|
+
#include <stdint.h>
|
|
28
|
+
#endif /* defined(_MSC_VER) && (_MSC_VER < 1600) */
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* A portable @c bool replacement.
|
|
32
|
+
*
|
|
33
|
+
* ::BROTLI_BOOL is a "documentation" type: actually it is @c int, but in API it
|
|
34
|
+
* denotes a type, whose only values are ::BROTLI_TRUE and ::BROTLI_FALSE.
|
|
35
|
+
*
|
|
36
|
+
* ::BROTLI_BOOL values passed to Brotli should either be ::BROTLI_TRUE or
|
|
37
|
+
* ::BROTLI_FALSE, or be a result of ::TO_BROTLI_BOOL macros.
|
|
38
|
+
*
|
|
39
|
+
* ::BROTLI_BOOL values returned by Brotli should not be tested for equality
|
|
40
|
+
* with @c true, @c false, ::BROTLI_TRUE, ::BROTLI_FALSE, but rather should be
|
|
41
|
+
* evaluated, for example: @code{.cpp}
|
|
42
|
+
* if (SomeBrotliFunction(encoder, BROTLI_TRUE) &&
|
|
43
|
+
* !OtherBrotliFunction(decoder, BROTLI_FALSE)) {
|
|
44
|
+
* bool x = !!YetAnotherBrotliFunction(encoder, TO_BROLTI_BOOL(2 * 2 == 4));
|
|
45
|
+
* DoSomething(x);
|
|
46
|
+
* }
|
|
47
|
+
* @endcode
|
|
48
|
+
*/
|
|
49
|
+
#define BROTLI_BOOL int
|
|
50
|
+
/** Portable @c true replacement. */
|
|
51
|
+
#define BROTLI_TRUE 1
|
|
52
|
+
/** Portable @c false replacement. */
|
|
53
|
+
#define BROTLI_FALSE 0
|
|
54
|
+
/** @c bool to ::BROTLI_BOOL conversion macros. */
|
|
55
|
+
#define TO_BROTLI_BOOL(X) (!!(X) ? BROTLI_TRUE : BROTLI_FALSE)
|
|
56
|
+
|
|
57
|
+
#define BROTLI_MAKE_UINT64_T(high, low) ((((uint64_t)(high)) << 32) | low)
|
|
58
|
+
|
|
59
|
+
#define BROTLI_UINT32_MAX (~((uint32_t)0))
|
|
60
|
+
#define BROTLI_SIZE_MAX (~((size_t)0))
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Allocating function pointer type.
|
|
64
|
+
*
|
|
65
|
+
* @param opaque custom memory manager handle provided by client
|
|
66
|
+
* @param size requested memory region size; can not be @c 0
|
|
67
|
+
* @returns @c 0 in the case of failure
|
|
68
|
+
* @returns a valid pointer to a memory region of at least @p size bytes
|
|
69
|
+
* long otherwise
|
|
70
|
+
*/
|
|
71
|
+
typedef void* (*brotli_alloc_func)(void* opaque, size_t size);
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Deallocating function pointer type.
|
|
75
|
+
*
|
|
76
|
+
* This function @b SHOULD do nothing if @p address is @c 0.
|
|
77
|
+
*
|
|
78
|
+
* @param opaque custom memory manager handle provided by client
|
|
79
|
+
* @param address memory region pointer returned by ::brotli_alloc_func, or @c 0
|
|
80
|
+
*/
|
|
81
|
+
typedef void (*brotli_free_func)(void* opaque, void* address);
|
|
82
|
+
|
|
83
|
+
#endif /* BROTLI_COMMON_TYPES_H_ */
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
LZ4 Library
|
|
2
|
+
Copyright (c) 2011-2020, Yann Collet
|
|
3
|
+
All rights reserved.
|
|
4
|
+
|
|
5
|
+
Redistribution and use in source and binary forms, with or without modification,
|
|
6
|
+
are permitted provided that the following conditions are met:
|
|
7
|
+
|
|
8
|
+
* Redistributions of source code must retain the above copyright notice, this
|
|
9
|
+
list of conditions and the following disclaimer.
|
|
10
|
+
|
|
11
|
+
* Redistributions in binary form must reproduce the above copyright notice, this
|
|
12
|
+
list of conditions and the following disclaimer in the documentation and/or
|
|
13
|
+
other materials provided with the distribution.
|
|
14
|
+
|
|
15
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
16
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
17
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
18
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
19
|
+
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
20
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
21
|
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
22
|
+
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
23
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
24
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|