summaryrefslogtreecommitdiff
path: root/MdePkg/Include/Library/PcdLib.h
AgeCommit message (Collapse)AuthorFilesLines
2026-05-08MdePkg: Fix Spelling Errors in CommentsOliver Smith-Denny1-1/+1
This fixes all non-breaking spelling errors in MdePkg. Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
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-192/+134
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>
2021-12-07MdePkg: Change OPTIONAL keyword usage styleMichael D Kinney1-4/+4
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>
2020-10-13MdePkg: Remove code wrapped by DISABLE_NEW_DEPRECATED_INTERFACESZhang, Shenglei1-520/+0
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2777 Code wrapped by DISABLE_NEW_DEPRECATED_INTERFACES is deprecated. So remove it. Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Liming Gao <liming.gao@intel.com> Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.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-201/+201
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>
2017-01-18MdePkg: Correct comments of macros FixedPcdGetX/PatchPcdXXX in PcdLib.hStar Zeng1-22/+22
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=311 The patch is also to refine comments of macros PcdToken and PcdTokenEx. Cc: Liming Gao <liming.gao@intel.com> Cc: Michael Kinney <michael.d.kinney@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-05-23MdePkg: Follow PI1.4a to fix artificial limitation of SkuId rangeStar Zeng1-6/+1
There is absolutely no reason to artificially limit the SKU range to 1-255. PI1.4a spec fixed the artificial limitation. This patch is to follow PI1.4a spec to remove PCD_MAX_SKU_ID definition, the check to PCD_MAX_SKU_ID and the comments describes the limitation. Cc: Liming Gao <liming.gao@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
2015-08-24MdePkg: Add two PcdApi for Patch VOID* PCD set operation.Liming Gao1-6/+77
Two new APIs LibPatchPcdSetPtrAndSize() and LibPatchPcdSetPtrAndSizeS() are added to catch the size of the updated VOID* PCD value buffer, then PcdGetSize() API can return the actual size. Update three PcdLib instances to implement these two APIs. Contributed-under: TianoCore Contribution Agreement 1.0 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@18269 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-24MdePkg: Add four PcdGetSize() API in PcdLibLiming Gao1-1/+57
Add below four PcdGetSize() API in PcdLib header file. They can be used to get the size of PCD value. FixedPcdGetSize() PatchPcdGetSize() PcdGetSize() PcdGetExSize() Contributed-under: TianoCore Contribution Agreement 1.0 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@18268 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-10MdePkg: Add a set of PcdSetXXS APIs into PcdLib and remove the ASSERT in ↵Star Zeng1-34/+538
original PcdSetXX APIs. And also use DISABLE_NEW_DEPRECATED_INTERFACES macro to include the old PcdSetXX APIs. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17162 6f19259b-4bc3-4df7-8a09-765794883524
2014-01-07MdePkg PcdLib: Except for SizeOfBuffer is greater than the maximum size ↵Star Zeng1-19/+49
supported, align the behavior of LibPcdSetPtr with LibPcdSetN to handle error status returned. Let the comments to be aligned with code behavior for LibPcdSetX APIs. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed by: Liming Gao <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15056 6f19259b-4bc3-4df7-8a09-765794883524
2013-11-20MdePkg and MdeModulePkg Pcd: Add the new EFI_GET_PCD_INFO_PROTOCOL and ↵Star Zeng1-0/+85
EFI_GET_PCD_INFO_PPI support for PI 1.2.1 compliance. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14866 6f19259b-4bc3-4df7-8a09-765794883524
2013-11-18MdePkg and MdeModulePkg Pcd: Implement PCD Driver for External PCD Database ↵Bob C Feng1-14/+27
and SKU enable Feature. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Bob C Feng <bob.c.feng@intel.com> Reviewed-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@14857 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-06-11update codes per MdePkg doxgen review comments.vanjeff1-1/+1
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8526 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-05Update comment for return description for PcdSetX macros.klu21-19/+19
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8474 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-05The return description for LibPcdSetx function is ambiguity. The actual ↵klu21-13/+13
meaning of return value is input parameter, but not the value/pointer exist in PCD database. So this patch use parameter name directly in description for return value. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8472 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-04Second set of changes based on a review of the code comments in the Include ↵pkandel1-22/+22
directory for typos, grammar issues, and language clarity. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8467 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-13Comments checked with specjji41-47/+34
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7524 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-03Add CONST modifier for "Buffer" parameter in LibPcdSetPtr()qhuang81-1/+1
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6823 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-26Synchronize function comment in h filegikidy1-1/+1
with c file instance of this functions in MdePkg. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6732 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-21synchronize the MdePkg/Include/Library/PcdLib.h and the MDE_Library_Spec.Add ↵gikidy1-32/+771
the commit for Macro in the PcdLib.h reference to the Spec. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6664 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-14Synchronization of MDE Library Spec., Mde.dec, and corresponding head files ↵jji41-18/+18
in MdePkg\Include\Library. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6544 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-26Coding style fix.qwang121-1/+1
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6237 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-21synchronize paramter string with comment.klu21-15/+15
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6174 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-21Re-defined PCD_INVALID_TOKEN_NUMBER in header files of PCD Ppi&Protocol, ↵vanjeff1-1/+0
since it will be added into PCD Spec. Removed PCD_INVALID_TOKEN_NUMBER from Pcd Library class, since it wasn't defined in MDE Spec. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6164 6f19259b-4bc3-4df7-8a09-765794883524
2008-09-16follow up code revieweric_tian1-31/+31
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5893 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-18Add PCD_MAX_SKU_ID.klu21-0/+1
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5655 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-14Use doxygen comment style for document entity such as struct, enum, variable ↵klu21-3/+3
that use /// but not // git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5647 6f19259b-4bc3-4df7-8a09-765794883524
2008-07-31remove blank for function typedef, it will break generating doxygen document.klu21-1/+1
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5593 6f19259b-4bc3-4df7-8a09-765794883524
2008-07-21Update function header.klu21-66/+68
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5534 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-22Fix typo in comment.klu21-13/+15
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5108 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-28Updated headers to follow coding standardAJFISH1-3/+0
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2815 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-19Import Library Class from original MDE package. Also I added the ↵yshang11-0/+779
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-779/+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
2007-02-121) Added BIT0, BIT1, …, BIT63 to the Base Defines qwang121-2/+2
2) Added MIN() and MAX() macros to the Base Macros 3) Added StrStr(), StrDecimalToUnitn(), StrDecimalToUint64(), StrHexToUintn(), StrHexToUintn64(), UnicodeToAscii(), AsciiStrStr(), AsciiStrDecimalToUnitn(), AsciiStrDecimalToUint64(), AsciiStrHexToUintn(), AsciiStrHexToUintn64(), and AsciiToUnicode() to the Base Library String Functions 4) Added the Base Library Checksum Functions which include CalculateSum8(), CaclculateCheckSum8(), CalculateSum16(), CalculateChecksum16(), CalculateSum32(), CalculateCheckSum32(), CalculateSum64(), CalculateChecksum64(). 5) Added MMIO Buffer functions to the I/O Library including MmioReadBuffer8(), MmioReadBuffer16(), MmioReadBuffer32(), MmioReadBuffer64(), MmioWriteBuffer8(), MmioWriteBuffer16(), MmioWriteBuffer32(), MmioWriteBuffer64(). 6) Changed the parameter name from SizeOfValue to SizeOfBuffer in PcdSetPtr(), PcdSetPtrEx(), PatchPcdSetPtr(), LibPcdSetPtr(), LibPcdSetPtrEx(), LibPatchPcdSetPtr() 7) Added RADIX_HEX flag to the Print Library to support the conversion of values to hexadecimal strings in UnicodeValueToString() and AsciiValueToString() 8) Added EfiGetCurrentTpl() UEFI Library. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2363 6f19259b-4bc3-4df7-8a09-765794883524
2006-08-24Fix track EDKT106 & EDKT112: map LibPcdSetPtr function for PatchPcdSetPtr ↵klu21-1/+6
macro function defined in PcdLib library class git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1381 6f19259b-4bc3-4df7-8a09-765794883524
2006-07-19Add [in,out] in the @param for PCD header and c file.qwang121-1/+9
Update GetNextToken and GetNextTokenSpaces APIs parameter sequence according to PCD spec. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1040 6f19259b-4bc3-4df7-8a09-765794883524
2006-07-17map FeaturePcdGet(TokenName) to _PCD_GET_MODE_BOOL_##TokenName to follow the ↵qwang121-4/+1
build tool's autogen.h output. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1031 6f19259b-4bc3-4df7-8a09-765794883524
2006-07-04Added LibPatchPcdSetPtr.qwang121-2/+30
Cleaup Pcd Database code generation routine. Fixed a few bugs. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@745 6f19259b-4bc3-4df7-8a09-765794883524
2006-07-03Add PcdDxe and PcdPEIM to all-arch for EdkModulePkg-All-Archs.fpdqwang121-11/+12
Fix a few bugs in PcdDxe and PcdPEIM git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@722 6f19259b-4bc3-4df7-8a09-765794883524
2006-06-231) Add in support to traverse taken spaceqwang121-15/+55
2) Remove unused import in DynamicTokenValue.java. 3) Support Byte Stream input for Pointer type Dynamic PCD entry in FPD file. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@616 6f19259b-4bc3-4df7-8a09-765794883524
2006-06-23Enabling use PcdSetXX macro to set value for PATCHABLE_IN_MODULE, DYNAMIC, ↵klu21-50/+51
DYNAMIC_EX type PCD git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@614 6f19259b-4bc3-4df7-8a09-765794883524
2006-06-231) remove some dead code from WinNtBusDriver.cqwang121-1/+1
2) change PCD_INVALID_TOKEN_NUMBER to 0 as stipulated in MWG spec and PCD spec. 3) support returning a Default Value when a read failure by variable service for PCD entry with Variable Enabled. 4) Remove a lot of unreferenced JAVA import from CollectPCDAction.java, PCDAutoGenAction.java, MemoryDatabaseManager.java, Token.java and UsageInstance.java. 5) Opimized to merge elements in all tables in PCD database for make the code compact. 6) Did a tighter check on how dynamic PCD entry is referenced in each module. 7) Update the PCD driver/PEIM and PCD database generation verion to 2. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@605 6f19259b-4bc3-4df7-8a09-765794883524
2006-06-22In before, FixedPcdGetxx macro was defined as global variable, it is wrong. ↵klu21-7/+7
It should be defined as value directly, and module developer can use it to define length of array. 1) Change macro FixedPcdGetxx to value macro. 2) Change some wrong macro usage in library. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@598 6f19259b-4bc3-4df7-8a09-765794883524
2006-06-20Modify autogen code for DynamicEx type PCD.klu21-12/+12
1) Roll back PcdSetEx/PcdGetEx macro, module developer must input the token space guid explicitly, because in a module maybe two PCD with same CName and token number but in different token space guid. 2) Modify the generated value for _PCD_MODE_xxx for DynamicEx PCD. This macro will be mapped to PcdLibSetEx/PcdLibGetEx directly, and the parameter of token space guid is auto generated. 3) For token space guid array variable autogened, only one copy will be exists in a module's autogen C file for different PCD which are in same token space guid. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@575 6f19259b-4bc3-4df7-8a09-765794883524
2006-06-17Change the macro for dynamicEx type PCD and modify autogen tools to auto ↵klu21-12/+12
generate TokenSpaceGuid. After modification, you can use two method access DynamicPCD, 1) PcdGet8/PcdGet32/... to get a value of DynamicEx PCD, same as PcdSetxx 2) PcdGet8Ex/PcdGet32Ex to get a value of DynamicEx PCD, same as PcdSetxxEx. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@549 6f19259b-4bc3-4df7-8a09-765794883524
2006-06-101) Sync PcdPpi guid with PCD arch spec.qwang121-1/+1
2) Correct macro PatchPcdSetPtr git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@469 6f19259b-4bc3-4df7-8a09-765794883524