From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id CECE68030F for ; Wed, 22 Mar 2017 19:15:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=intel.com; i=@intel.com; q=dns/txt; s=intel; t=1490235350; x=1521771350; h=from:to:cc:subject:date:message-id:mime-version; bh=hrW25ecKYn1Ov2jJyWk13T7Q1NSbMdO82eD+AxMbbdY=; b=izc5oBJ2zLfDUSp3NZaZb5tNkOJBv8vRQhWxdPQVTEog/lw4ZRX6IRUW 5jyZamaQmzqe2FppU1tvjkuiYuj+rA==; Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 22 Mar 2017 19:15:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.36,207,1486454400"; d="dat'59?scan'59,208,59";a="837609968" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by FMSMGA003.fm.intel.com with ESMTP; 22 Mar 2017 19:15:50 -0700 Received: from fmsmsx120.amr.corp.intel.com (10.18.124.208) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 22 Mar 2017 19:15:50 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by fmsmsx120.amr.corp.intel.com (10.18.124.208) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 22 Mar 2017 19:15:49 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.88]) by SHSMSX103.ccr.corp.intel.com ([10.239.4.69]) with mapi id 14.03.0248.002; Thu, 23 Mar 2017 10:15:47 +0800 From: "Song, BinX" To: "edk2-devel@lists.01.org" CC: "Gao, Liming" Thread-Topic: [PATCH 0/4] MdeModulePkg/BaseTools: Add Brotli algorithm support Thread-Index: AdKje2IGWfmZZMxkSjelhcwoU5rPMQ== Date: Thu, 23 Mar 2017 02:15:46 +0000 Message-ID: <559D2DF22BC9A3468B4FA1AA547F0EF102545F29@shsmsx102.ccr.corp.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: <559D2DF22BC9A3468B4FA1AA547F0EF102545F29@shsmsx102.ccr.corp.intel.com> x-originating-ip: [10.239.127.40] MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.22 Subject: [PATCH 0/4] MdeModulePkg/BaseTools: Add Brotli algorithm support X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Mar 2017 02:15:51 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Brotli algorithm was released on the website https://github.com/google/brot= li. It has a little less compress ratio than Lzma, but has better decompress pe= rformance than it. Add Brotli algorithm support, include Brotli decompression library and tool= set. Tested on: OS: Windows Arch: IA32/X64 Platform: Nt32Pkg ToolChain: VS2015x86 Target: Release OS: Ubuntu Arch: IA32/X64 Platform: OvmfPkgIa32.dsc/OvmfPkgX64.dsc ToolChain: GCC5 Target: Release Cc: Liming Gao Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Bell Song Bell Song (4): MdeModulePkg: Copy Brotli algorithm 3rd party source code for library MdeModulePkg: Add Brotli algorithm decompression library BaseTools: Copy Brotli algorithm 3rd party source code for tool BaseTools: Add Brotli algorithm tool BaseTools/BinWrappers/PosixLike/Brotli | 29 + BaseTools/BinWrappers/PosixLike/BrotliCompress | 42 + BaseTools/Conf/tools_def.template | 6 + .../Source/C/BrotliCompress/BrotliCompress.bat | 48 + BaseTools/Source/C/BrotliCompress/GNUmakefile | 43 + BaseTools/Source/C/BrotliCompress/LICENSE | 19 + BaseTools/Source/C/BrotliCompress/Makefile | 60 + BaseTools/Source/C/BrotliCompress/README.md | 26 + BaseTools/Source/C/BrotliCompress/ReadMe.txt | 2 + .../Source/C/BrotliCompress/common/constants.h | 47 + .../Source/C/BrotliCompress/common/dictionary.c | 9474 +++++++++++++++= + .../Source/C/BrotliCompress/common/dictionary.h | 29 + BaseTools/Source/C/BrotliCompress/common/port.h | 107 + BaseTools/Source/C/BrotliCompress/common/types.h | 58 + BaseTools/Source/C/BrotliCompress/dec/bit_reader.c | 48 + BaseTools/Source/C/BrotliCompress/dec/bit_reader.h | 383 + BaseTools/Source/C/BrotliCompress/dec/context.h | 251 + BaseTools/Source/C/BrotliCompress/dec/decode.c | 2347 ++++ BaseTools/Source/C/BrotliCompress/dec/decode.h | 188 + BaseTools/Source/C/BrotliCompress/dec/huffman.c | 357 + BaseTools/Source/C/BrotliCompress/dec/huffman.h | 68 + BaseTools/Source/C/BrotliCompress/dec/port.h | 159 + BaseTools/Source/C/BrotliCompress/dec/prefix.h | 751 ++ BaseTools/Source/C/BrotliCompress/dec/state.c | 168 + BaseTools/Source/C/BrotliCompress/dec/state.h | 246 + BaseTools/Source/C/BrotliCompress/dec/transform.h | 300 + .../docs/brotli-comparison-study-2015-09-22.pdf | Bin 0 -> 215208 byt= es .../C/BrotliCompress/enc/backward_references.c | 892 ++ .../C/BrotliCompress/enc/backward_references.h | 99 + .../C/BrotliCompress/enc/backward_references_inc.h | 147 + BaseTools/Source/C/BrotliCompress/enc/bit_cost.c | 35 + BaseTools/Source/C/BrotliCompress/enc/bit_cost.h | 63 + .../Source/C/BrotliCompress/enc/bit_cost_inc.h | 127 + .../C/BrotliCompress/enc/block_encoder_inc.h | 33 + .../Source/C/BrotliCompress/enc/block_splitter.c | 197 + .../Source/C/BrotliCompress/enc/block_splitter.h | 51 + .../C/BrotliCompress/enc/block_splitter_inc.h | 432 + .../C/BrotliCompress/enc/brotli_bit_stream.c | 1334 +++ .../C/BrotliCompress/enc/brotli_bit_stream.h | 107 + BaseTools/Source/C/BrotliCompress/enc/cluster.c | 56 + BaseTools/Source/C/BrotliCompress/enc/cluster.h | 48 + .../Source/C/BrotliCompress/enc/cluster_inc.h | 315 + BaseTools/Source/C/BrotliCompress/enc/command.h | 163 + .../C/BrotliCompress/enc/compress_fragment.c | 747 ++ .../C/BrotliCompress/enc/compress_fragment.h | 58 + .../enc/compress_fragment_two_pass.c | 557 + .../enc/compress_fragment_two_pass.h | 51 + BaseTools/Source/C/BrotliCompress/enc/compressor.h | 161 + BaseTools/Source/C/BrotliCompress/enc/context.h | 184 + .../Source/C/BrotliCompress/enc/dictionary_hash.h | 4121 +++++++ BaseTools/Source/C/BrotliCompress/enc/encode.c | 1562 +++ BaseTools/Source/C/BrotliCompress/enc/encode.h | 221 + .../Source/C/BrotliCompress/enc/encode_parallel.h | 27 + .../Source/C/BrotliCompress/enc/entropy_encode.c | 501 + .../Source/C/BrotliCompress/enc/entropy_encode.h | 122 + .../C/BrotliCompress/enc/entropy_encode_static.h | 539 + BaseTools/Source/C/BrotliCompress/enc/fast_log.h | 145 + .../C/BrotliCompress/enc/find_match_length.h | 80 + BaseTools/Source/C/BrotliCompress/enc/hash.h | 717 ++ .../BrotliCompress/enc/hash_forgetful_chain_inc.h | 249 + .../C/BrotliCompress/enc/hash_longest_match_inc.h | 241 + .../enc/hash_longest_match_quickly_inc.h | 230 + BaseTools/Source/C/BrotliCompress/enc/histogram.c | 95 + BaseTools/Source/C/BrotliCompress/enc/histogram.h | 60 + .../Source/C/BrotliCompress/enc/histogram_inc.h | 51 + .../Source/C/BrotliCompress/enc/literal_cost.c | 178 + .../Source/C/BrotliCompress/enc/literal_cost.h | 30 + BaseTools/Source/C/BrotliCompress/enc/memory.c | 181 + BaseTools/Source/C/BrotliCompress/enc/memory.h | 62 + BaseTools/Source/C/BrotliCompress/enc/metablock.c | 515 + BaseTools/Source/C/BrotliCompress/enc/metablock.h | 110 + .../Source/C/BrotliCompress/enc/metablock_inc.h | 183 + BaseTools/Source/C/BrotliCompress/enc/port.h | 168 + BaseTools/Source/C/BrotliCompress/enc/prefix.h | 52 + BaseTools/Source/C/BrotliCompress/enc/quality.h | 130 + BaseTools/Source/C/BrotliCompress/enc/ringbuffer.h | 160 + .../Source/C/BrotliCompress/enc/static_dict.c | 478 + .../Source/C/BrotliCompress/enc/static_dict.h | 37 + .../Source/C/BrotliCompress/enc/static_dict_lut.h | 11241 +++++++++++++++= ++++ BaseTools/Source/C/BrotliCompress/enc/streams.h | 121 + BaseTools/Source/C/BrotliCompress/enc/utf8_util.c | 85 + BaseTools/Source/C/BrotliCompress/enc/utf8_util.h | 32 + BaseTools/Source/C/BrotliCompress/enc/write_bits.h | 90 + BaseTools/Source/C/BrotliCompress/tools/bro.c | 538 + BaseTools/Source/C/BrotliCompress/tools/version.h | 14 + BaseTools/Source/C/GNUmakefile | 1 + BaseTools/Source/C/Makefile | 1 + .../BrotliCustomDecompressLib.inf | 56 + .../BrotliCustomDecompressLib/BrotliDecompress.c | 321 + .../BrotliDecompressLib.uni | 21 + .../BrotliDecompressLibInternal.h | 71 + .../GuidedSectionExtraction.c | 196 + .../Library/BrotliCustomDecompressLib/LICENSE | 19 + .../Library/BrotliCustomDecompressLib/README.md | 26 + .../Library/BrotliCustomDecompressLib/ReadMe.txt | 2 + .../BrotliCustomDecompressLib/common/constants.h | 47 + .../BrotliCustomDecompressLib/common/dictionary.c | 9474 +++++++++++++++= + .../BrotliCustomDecompressLib/common/dictionary.h | 29 + .../BrotliCustomDecompressLib/common/port.h | 107 + .../BrotliCustomDecompressLib/common/types.h | 72 + .../BrotliCustomDecompressLib/dec/bit_reader.c | 48 + .../BrotliCustomDecompressLib/dec/bit_reader.h | 384 + .../BrotliCustomDecompressLib/dec/context.h | 251 + .../Library/BrotliCustomDecompressLib/dec/decode.c | 2348 ++++ .../Library/BrotliCustomDecompressLib/dec/decode.h | 188 + .../BrotliCustomDecompressLib/dec/huffman.c | 357 + .../BrotliCustomDecompressLib/dec/huffman.h | 69 + .../Library/BrotliCustomDecompressLib/dec/port.h | 159 + .../Library/BrotliCustomDecompressLib/dec/prefix.h | 751 ++ .../Library/BrotliCustomDecompressLib/dec/state.c | 169 + .../Library/BrotliCustomDecompressLib/dec/state.h | 246 + .../BrotliCustomDecompressLib/dec/transform.h | 300 + .../docs/brotli-comparison-study-2015-09-22.pdf | Bin 0 -> 215208 byt= es MdeModulePkg/MdeModulePkg.dec | 3 + MdeModulePkg/MdeModulePkg.dsc | 1 + 115 files changed, 60196 insertions(+) create mode 100644 BaseTools/BinWrappers/PosixLike/Brotli create mode 100644 BaseTools/BinWrappers/PosixLike/BrotliCompress create mode 100644 BaseTools/Source/C/BrotliCompress/BrotliCompress.bat create mode 100644 BaseTools/Source/C/BrotliCompress/GNUmakefile create mode 100644 BaseTools/Source/C/BrotliCompress/LICENSE create mode 100644 BaseTools/Source/C/BrotliCompress/Makefile create mode 100644 BaseTools/Source/C/BrotliCompress/README.md create mode 100644 BaseTools/Source/C/BrotliCompress/ReadMe.txt create mode 100644 BaseTools/Source/C/BrotliCompress/common/constants.h create mode 100644 BaseTools/Source/C/BrotliCompress/common/dictionary.c create mode 100644 BaseTools/Source/C/BrotliCompress/common/dictionary.h create mode 100644 BaseTools/Source/C/BrotliCompress/common/port.h create mode 100644 BaseTools/Source/C/BrotliCompress/common/types.h create mode 100644 BaseTools/Source/C/BrotliCompress/dec/bit_reader.c create mode 100644 BaseTools/Source/C/BrotliCompress/dec/bit_reader.h create mode 100644 BaseTools/Source/C/BrotliCompress/dec/context.h create mode 100644 BaseTools/Source/C/BrotliCompress/dec/decode.c create mode 100644 BaseTools/Source/C/BrotliCompress/dec/decode.h create mode 100644 BaseTools/Source/C/BrotliCompress/dec/huffman.c create mode 100644 BaseTools/Source/C/BrotliCompress/dec/huffman.h create mode 100644 BaseTools/Source/C/BrotliCompress/dec/port.h create mode 100644 BaseTools/Source/C/BrotliCompress/dec/prefix.h create mode 100644 BaseTools/Source/C/BrotliCompress/dec/state.c create mode 100644 BaseTools/Source/C/BrotliCompress/dec/state.h create mode 100644 BaseTools/Source/C/BrotliCompress/dec/transform.h create mode 100644 BaseTools/Source/C/BrotliCompress/docs/brotli-compariso= n-study-2015-09-22.pdf create mode 100644 BaseTools/Source/C/BrotliCompress/enc/backward_referenc= es.c create mode 100644 BaseTools/Source/C/BrotliCompress/enc/backward_referenc= es.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/backward_referenc= es_inc.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/bit_cost.c create mode 100644 BaseTools/Source/C/BrotliCompress/enc/bit_cost.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/bit_cost_inc.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/block_encoder_inc= .h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/block_splitter.c create mode 100644 BaseTools/Source/C/BrotliCompress/enc/block_splitter.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/block_splitter_in= c.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/brotli_bit_stream= .c create mode 100644 BaseTools/Source/C/BrotliCompress/enc/brotli_bit_stream= .h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/cluster.c create mode 100644 BaseTools/Source/C/BrotliCompress/enc/cluster.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/cluster_inc.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/command.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/compress_fragment= .c create mode 100644 BaseTools/Source/C/BrotliCompress/enc/compress_fragment= .h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/compress_fragment= _two_pass.c create mode 100644 BaseTools/Source/C/BrotliCompress/enc/compress_fragment= _two_pass.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/compressor.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/context.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/dictionary_hash.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/encode.c create mode 100644 BaseTools/Source/C/BrotliCompress/enc/encode.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/encode_parallel.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/entropy_encode.c create mode 100644 BaseTools/Source/C/BrotliCompress/enc/entropy_encode.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/entropy_encode_st= atic.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/fast_log.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/find_match_length= .h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/hash.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/hash_forgetful_ch= ain_inc.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/hash_longest_matc= h_inc.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/hash_longest_matc= h_quickly_inc.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/histogram.c create mode 100644 BaseTools/Source/C/BrotliCompress/enc/histogram.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/histogram_inc.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/literal_cost.c create mode 100644 BaseTools/Source/C/BrotliCompress/enc/literal_cost.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/memory.c create mode 100644 BaseTools/Source/C/BrotliCompress/enc/memory.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/metablock.c create mode 100644 BaseTools/Source/C/BrotliCompress/enc/metablock.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/metablock_inc.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/port.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/prefix.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/quality.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/ringbuffer.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/static_dict.c create mode 100644 BaseTools/Source/C/BrotliCompress/enc/static_dict.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/static_dict_lut.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/streams.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/utf8_util.c create mode 100644 BaseTools/Source/C/BrotliCompress/enc/utf8_util.h create mode 100644 BaseTools/Source/C/BrotliCompress/enc/write_bits.h create mode 100644 BaseTools/Source/C/BrotliCompress/tools/bro.c create mode 100644 BaseTools/Source/C/BrotliCompress/tools/version.h create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/BrotliCu= stomDecompressLib.inf create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/BrotliDe= compress.c create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/BrotliDe= compressLib.uni create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/BrotliDe= compressLibInternal.h create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/GuidedSe= ctionExtraction.c create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/LICENSE create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/README.m= d create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/ReadMe.t= xt create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/common/c= onstants.h create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/common/d= ictionary.c create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/common/d= ictionary.h create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/common/p= ort.h create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/common/t= ypes.h create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/dec/bit_= reader.c create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/dec/bit_= reader.h create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/dec/cont= ext.h create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/dec/deco= de.c create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/dec/deco= de.h create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/dec/huff= man.c create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/dec/huff= man.h create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/dec/port= .h create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/dec/pref= ix.h create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/dec/stat= e.c create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/dec/stat= e.h create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/dec/tran= sform.h create mode 100644 MdeModulePkg/Library/BrotliCustomDecompressLib/docs/bro= tli-comparison-study-2015-09-22.pdf --=20 2.10.2.windows.1