summaryrefslogtreecommitdiff
path: root/MdePkg/Include/Library/MemoryAllocationLib.h
AgeCommit message (Collapse)AuthorFilesLines
2026-02-24MdePkg: Replace include guards with #pragma onceMichael Kubacki1-4/+1
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>
2021-12-07MdePkg: Apply uncrustify changesMichael Kubacki1-1/+1
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the MdePkg 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>
2019-04-09MdePkg: Replace BSD License with BSD+Patent LicenseMichael D Kinney1-7/+1
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: Liming Gao <liming.gao@intel.com>
2018-06-28MdePkg: Clean up source filesLiming Gao1-38/+38
1. Do not use tab characters 2. No trailing white space in one line 3. All files must end with CRLF Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Liming Gao <liming.gao@intel.com>
2013-12-31Update MemoryAllocationLib.AllocateAlignedPages API comments for memory ↵Liming Gao1-1/+4
overflow ASSERT case. Signed-off-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15033 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-23Update the copyright notice formathhtian1-2/+2
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10403 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-12Minor update the function interface for three re-allocate pool APIs to check ↵qhuang81-6/+6
the conformance of OldBuffer only when the memory allocation succeeds. In this way the assert condition is covered by CopyMem () API in BaseMemoryLib. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8296 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-11Add conformance check for OldBuffer and size even if the memory allocation ↵qhuang81-3/+3
fails. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8294 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-09Clarify that FreePages(), FreeAlignedPages(), and FreePool() may perform n ↵mdkinney1-3/+6
actions if those operations are not possible. For example, the PEI Phase does not provide any services to free allocated pages or allocated pool memory. Update comments in PeiMemoryAllocationLib and UefiMemoryAllocationLib to match updates to MemoryAllocationLib.h. Add ASSERT() statements in PeiMemoryAllocationLib for the FreePages() and FreeAlignedPages() if Pages is 0. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8275 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-05Comments have been checked with specjji41-5/+2
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6873 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-24Fix typos in the Memory Allocation Library commentsmdkinney1-3/+3
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6702 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-22Add ReallocatePool(), ReallocateRuntimePool(), and ReallocateReservedPool() ↵mdkinney1-0/+90
to BaseMemoryLib git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6679 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-21synchronize the MdePkg/Include/Library/MemoryAllocationLib.h,PalLib.h the ↵gikidy1-3/+17
MDE_Library_Spec. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6660 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-14Synchronization of MDE Library Spec., Mde.dec, and corresponding head files ↵jji41-8/+8
in MdePkg\Include\Library. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6544 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-30Remove SafeFreePool from MemoryAllocationLib as this API's name is ↵qwang121-14/+0
misleading. Its implementation only check if a pointer is NULL. If a garbage pointer is passed in, the gBS->FreePool will still ASSERT in debug build and return error code. It is recommended that module writer should keep track how a pointer is allocated and free it after use. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6305 6f19259b-4bc3-4df7-8a09-765794883524
2008-09-08Correct the wrong '?' character to '-', and add check DestinationBuffer == ↵lgao41-3/+3
SourceBuffer for CompareMem functions in all BaseMemory library instances. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5831 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-20Remove allocate aligned pool services.qhuang81-235/+0
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5696 6f19259b-4bc3-4df7-8a09-765794883524
2008-07-21Code Scrub of MdePkg/Inlcude/Libraryyshang11-0/+9
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5533 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-21UEFI HII: Merge UEFI HII support changes from branch.qwang121-0/+6
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4600 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-13Removed MdePkg usage of ModuleName: in file headersAJFISH1-2/+0
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3217 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-19Import Library Class from original MDE package. Also I added the ↵yshang11-0/+622
EFI_PEI_CORE_ENTRY_POINT definition in PiPeiCis.h. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2677 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-01Moved the MdePkg to OldMdePkg so that new code in MdePkg does not break ↵lhauch1-622/+0
existing builds. Also updated the SPD and FPD files UiNames git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2616 6f19259b-4bc3-4df7-8a09-765794883524
2006-11-031. Add the fix for the following Bugs:cwu111-3/+3
i) BMM_FAKE_NV_DATA definition inconsistent in bm.vfr and BootMain.h (EdkNt32Pkg\Dxe\PlatformBdsDxe\Generic\BootMaint\BootMain.h) ii) Change some files’ EOL(end of line) format to DOS. Some file use even mixed style EOL. (EdkModulePkg\Universal\DevicePath\Dxe\DevicePath.c, DevicepathFromText.c, DevicePathUtilities.c; EdkModulePkg\Universal\Disk\DiskIo\Dxe\diskIo.c; MdePkg\Library\UefiLib\UefiNotTiano.c) iii) Change some illegal characters in many files, the problem is mainly connected with people using Chinese Input method to input symbols such as ' " - ?, etc. Multiple files are influenced. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1890 6f19259b-4bc3-4df7-8a09-765794883524
2006-07-23Adjust coding style for MemoryAllocationLib.qhuang81-216/+291
Add function header for an internal function of PciExpressLib Fix a typo in one comment of UefiLib Remove BaseSmbusLib git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1075 6f19259b-4bc3-4df7-8a09-765794883524
2006-06-26• BaseMemoryLib:qhuang81-180/+180
Modify some Aassert()s conditions to sync with MWG 0.56d Modify some defects in function header. • PostCodeLib: Implement PeiDxePostCodeLibReportStatusCode. • Misc Rename BaseDebugLibReportStatusCode to PeiDxeDebugLibReportStatusCode Remove tabs in all .c and .h files in MdePkg. Rename PeiServicesReinstallPpi() to PeiServicesReInstallPpi() Adjust some minor coding style in PeCoffLoaderGetEntryPointerLib() git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@626 6f19259b-4bc3-4df7-8a09-765794883524
2006-04-22Initial import.bbahnsen1-0/+547
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3 6f19259b-4bc3-4df7-8a09-765794883524