summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Library/BrotliCustomDecompressLib
AgeCommit message (Collapse)AuthorFilesLines
2026-02-24MdeModulePkg: Replace include guards with #pragma onceMichael Kubacki2-8/+2
Replace traditional `#ifndef`/`#define`/`#endif` include guards with `#pragma` once. `#pragma once` is a widely supported preprocessor directive that prevents header files from being included multiple times. It is supported by all toolchains used to build edk2: GCC, Clang/LLVM, and MSVC. Compared to macro-based include guards, `#pragma once`: - Eliminates the risk of macro name collisions or copy/paste errors where two headers inadvertently use the same guard macro. - Eliminate inconsistency in the way include guard macros are named (e.g., some files use `__FILE_H__`, others use `FILE_H_`, etc.). - Reduces boilerplate (three lines replaced by one). - Avoids polluting the macro namespace with guard symbols. - Can improve build times as the preprocessor can skip re-opening the file entirely, rather than re-reading it to find the matching `#endif` ("multiple-include optimization"). - Note that some compilers may already optimize traditional include guards, by recognzining the idiomatic pattern. This change is made acknowledging that overall portability of the code will technically be reduced, as `#pragma once` is not part of the C/C++ standards. However, this is considered acceptable given: 1. edk2 already defines a subset of supported compilers in BaseTools/Conf/tools_def.template, all of which have supported `#pragma once` for over two decades. 2. There have been concerns raised to the project about inconsistent include guard naming and potential macro collisions. Approximate compiler support dates: - MSVC: Supported since Visual C++ 4.2 (1996) - GCC: Supported since 3.4 (2004) (http://gnu.ist.utl.pt/software/gcc/gcc-3.4/changes.html) - Clang (LLVM based): Since initial release in 2007 Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
2025-12-24MdeModulePkg/BrotliCustomDecompressLib: Undefine _MSC_VER for GCCMichael D Kinney1-0/+3
Update GCC Family to undefined _MSC_VER to match settings used by other compilers. This addresses clang compatibility issues for host-based unit test builds. Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
2025-11-22MdeModulePkg/BrotliCustomDecompressLib: Correct BrotliDecompressMike Beaton1-8/+3
DestSize should have been received and passed as a pointer in order to successfully pass the output value. The existence of this error was spotted by XCODE5 toolchain, which gave: BrotliDecompress.c:85:18: error: parameter 'DestSize' set but not used As discussed in https://github.com/tianocore/edk2/pull/11729, since the method is in fact internal and only called in one place, and since the DestSize return value is in fact unused, instead of fixing the parameter and method call we instead remove the parameter, also marking the method STATIC and renaming it to ...Internal. Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
2025-11-19MdeModulePkg: Update brotli submoduleedk2-stable202511Dongyan Qian1-0/+0
Update the brotli submodule to the commit (e230f474). to avoid build failures in the IA64/LoongArch architecture's native compiler. The fundamental reason is that GCC does not support the __attribute__((model("small"))). REF:https://github.com/google/brotli/pull/1369 Signed-off-by: Dongyan Qian <qiandongyan@loongson.cn>
2025-11-05MdeModulePkg: Update Brotli Compress to 1.2.0Vineel Kovvuri[MSFT]3-0/+11
# Description Update brotli from v1.0.9 to v1.2.0 https://github.com/google/brotli/releases/tag/v1.2.0 - [ ] Breaking change? - **Breaking change** - Does this PR cause a break in build or boot behavior? - Examples: Does it add a new library class or move a module to a different repo. - [x] Impacts security? - **Security** - Does this PR have a direct security impact? - Fixes CVE-2025-6176 reported in brotli < 1.2.0. - [ ] Includes tests? - **Tests** - Does this PR include any explicit test code? - Examples: Unit tests or integration tests. ## How This Was Tested Verified booting on a virtual platform by compressing/decompressing PEI/DXE sections. ## Integration Instructions NA Signed-off-by: Vineel Kovvuri[MSFT] <vineelko@microsoft.com>
2024-12-11MdeModulePkg/BrotliCustomDecompressLib: Make the library buildablePhil Noh4-1/+33
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4877 Brotli decompression library is supported in EDK2 core. Currently it is not buildable when linking it to DxeIpl driver. The result is also checked on edk2 master branch. It could be related to updating Brotli submodule (v1.0.9) on the previous commit (1193aa2). The update makes the library buildable. It was verified for the functional status. Signed-off-by: Phil Noh <Phil.Noh@amd.com>
2022-02-15MdeModulePkg: update brotli submoduleBob Feng1-0/+0
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3417 Update the brotli submodule to the latest commit (f4153a0) so that the build isn't broken in GCC 11 compilers. Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Hao A Wu <hao.a.wu@intel.com> Cc: Dandan Bi <dandan.bi@intel.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Pedro Falcato <pedro.falcato@gmail.com> Signed-off-by: Bob Feng <bob.c.feng@intel.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2021-12-07MdeModulePkg: Apply uncrustify changesMichael Kubacki5-137/+153
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the MdeModulePkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2021-12-07MdeModulePkg: Change OPTIONAL keyword usage styleMichael D Kinney1-1/+1
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3760 Update all use of ', OPTIONAL' to ' OPTIONAL,' for function params. Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael Kubacki <michael.kubacki@microsoft.com> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2021-01-06MdeModulePkg BrotliCustomDecompressLib: Remove the duplicated functionsgaoliming1-23/+0
The same functions have been defined in BrotliDecUefiSupport.c. Signed-off-by: Liming Gao <gaoliming@byosoft.com.cn> Cc: Hao A Wu <hao.a.wu@intel.com> Cc: Dandan Bi <dandan.bi@intel.com> Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
2020-04-16MdeModulePkg/BrotliCustomDecompressLib: Make brotli a submoduleShenglei Zhang32-12448/+141
Use submodule way to access brotli in MdeModulePkg based on brotli version 666c3280cc11dc433c303d79a83d4ffbdd12cc8d. The newly added BrotliDecUefiSupport.h/.c are used by directory 'brotli'. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2559 Cc: Liming Gao <liming.gao@intel.com> Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Hao A Wu <hao.a.wu@intel.com> Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
2019-11-15MdeModulePkg: Unify the definitions of size_tZhiguang Liu1-5/+1
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2338 Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Hao A Wu <hao.a.wu@intel.com> Signed-off-by: Zhiguang Liu <zhiguang.liu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
2019-04-09MdeModulePkg: Replace BSD License with BSD+Patent LicenseMichael D Kinney5-33/+5
https://bugzilla.tianocore.org/show_bug.cgi?id=1373 Replace BSD 2-Clause License with BSD+Patent License. This change is based on the following emails: https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html RFCs with detailed process for the license change: V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Hao Wu <hao.a.wu@intel.com> Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
2018-10-19MdeModulePkg BrotliDecompressLib: Add the checker to avoid array out of boundLiming Gao1-5/+8
This change is to pass static analysis. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com>
2018-10-09MdeModulePkg: Update Brotli DecompressLib to the latest v1.0.6Liming Gao28-11270/+8642
https://bugzilla.tianocore.org/show_bug.cgi?id=1201 Update Brotli to the latest version 1.0.6 https://github.com/google/brotli Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com>
2018-03-16MdeModulePkg BrotliLib: Rename function with the specific lib nameLiming Gao4-13/+13
This change is to avoid the function conflict. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Liming Gao <liming.gao@intel.com> Cc: Star Zeng <star.zeng@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com>
2017-11-14MdeModulePkg: Fix MSFT C4255 warningSong, BinX1-0/+1
V2: Fix MSFT C4255 warning V1: Enable MSFT C4255 warning. From MSDN: Compiler Warning (level 4) C4255 function' : no function prototype given: converting '()' to '(void)' The compiler did not find an explicit list of arguments to a function. This warning is for the C compiler only. Cc: Liming Gao <liming.gao@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Bell Song <binx.song@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
2017-04-14MdeModulePkg BrotliLib: Fix the regression logic issue in loopLiming Gao1-3/+4
In V2, change logic to avoid use mtf[-1] style to get value. Roll back to previous logic, and use point + offset to get byte value. Cc: Bell Song <binx.song@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Bell Song <binx.song@intel.com>
2017-04-12MdeModulePkg: Fix BrotliCustomDecompressLib potential issueSong, BinX2-4/+9
- Fix BrotliCustomDecompressLib potential issue Cc: Liming Gao <liming.gao@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Bell Song <binx.song@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
2017-03-29MdeModulePkg: Add Brotli algorithm decompression librarySong, BinX13-8/+693
- Add Brotli algorithm decompression library support Cc: Liming Gao <liming.gao@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Bell Song <binx.song@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
2017-03-29MdeModulePkg: Copy Brotli algorithm 3rd party source code for librarySong, BinX20-0/+15026
- Copy Brotli algorithm 3rd party source code for library Cc: Liming Gao <liming.gao@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Bell Song <binx.song@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>