Commit Graph

58 Commits

Author SHA1 Message Date
Marvin H?user 001f28caef MdePkg: Add NORETURN attribute and UNREACHABLE() macro.
The NORETURN attribute informs compilers and analyzers that the flagged
function cannot return. This may improve the quality of the optimizations.

The UNREACHABLE() macro informs compilers and analyzers that its position
cannot be reached, for example eliminating implicit returns.
It is recommended to be used together with the NORETURN attribute to prevent
warnings regarding the function flagged as 'noreturn' returning.

The ANALYZER-prefixed versions have the same effects, but exclude compilers.
They may be used to surpress warnings of static analyzers, such as possible
dereferencing of a NULL pointer when dereferencing it after having checked it
via ASSERT().

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Marvin Haeuser <Marvin.Haeuser@outlook.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
2016-06-22 09:37:01 +08:00
Fu Siyuan fed5f44759 MdePkg: Add definition for new warning code EFI_WARN_FILE_SYSTEM.
Add the definition for the new return status code defined in UEFI 2.6.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Samer El-Haj-Mahmoud <elhaj@hpe.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-02-25 09:32:44 +08:00
edk2-devel 62ec4a5ef6 MdePkg: Update Base.h to fix compilation issues with ICC.
Recent versions of the Intel C compiler define the _MSC_EXTENSIONS
constant. Base.h checks if this constant is defined to decide whether
or not to use a pragma intrinsic, which is unsupported by the latest
version of the Intel C compiler. Thus the check has been modified to
only pass in the case __INTEL_COMPILER is not defined.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Marvin Haeuser <Marvin.Haeuser@outlook.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
2016-02-12 10:06:54 -08:00
Zhang Lubo 10a3840ff9 MdePkg:Add a new error status code EFI_HTTP_ERROR.
v2:
*Return the EFI_HTTP_ERROR in the “Status” field in token, instead of
in the status codes returned table of EFI_HTTP_PROTOCOL.Response() interface.

Add a new error status code EFI_HTTP_ERROR in corresponding with
the UEFI 2.6 spec

Cc: Ye Ting <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Zhang Lubo <lubo.zhang@intel.com>
Reviewed-by: Siyuan Fu <siyuan.fu@intel.com>
Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com>
2016-02-03 11:48:33 +08:00
Michael Kinney 7849538e0e MdePkg/Include: Add support for flexible array members
Use pragma to disable warning 4200 for all VS* and DDK* tool chains to support 
data structure declarations where the last field of the data structure is a 
flexible array member.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: lhauch <larry.hauch@intel.com>
Tested-by: Chao Zhang <chao.b.zhang@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17361 6f19259b-4bc3-4df7-8a09-765794883524
2015-05-07 17:19:11 +00:00
Star Zeng 1db55d6a82 MdePkg Base.h: Fix EBC build failure and add comments for RETURN_ADDRESS macro.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16395 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-17 01:53:41 +00:00
Star Zeng dad83a8c12 MdePkg: Add RETURN_ADDRESS macro into Base.h.
Based on compiler intrinsic function.
MSVC: _ReturnAddress
GCC: __builtin_return_address

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16334 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-12 03:18:09 +00:00
Jordan Justen 02eef55311 MdePkg Base.h: Always define ASM_PFX
Some compilers may define __USER_LABEL_PREFIX__ to determine the
prefix used with ASM_PFX. Otherwise, IA32 will use a single underscore
'_' character, and all other architectures will use an empty prefix.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16019 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-01 17:23:10 +00:00
Liming Gao 068a82fc5a 1. Add defines for MAX values for UEFI data types.
2. Remove the #defines and add the extern declarations for gEfiDebugPortVariableGuid and gEfiDebugPortDevicePathGuid.

Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: michael.d.kinney@intel.com
Reviewed-by: Star Zeng <star.zeng@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14465 6f19259b-4bc3-4df7-8a09-765794883524
2013-07-12 02:48:08 +00:00
oliviermartin 7bbc624a7d MdePkg/Include/Base.h: Defined __va_copy macro when not defined by the ARM toolchain
The newer versions of ARM RVCT do not define __va_copy.

Signed-off-by: oliviermartin
Reviewed-by: mdkinney



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13067 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-28 22:49:14 +00:00
rsun3 265fa9fa39 MdePkg: Add a new macro VA_COPY for variable argument support. Fix a bug in the UefiLib instance that there is a non portable assumption that Marker is copied when passed to a function.
Signed-off-by: rsun3
Reviewed-by: mdkinney


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13025 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-22 02:39:57 +00:00
lzeng14 76336e4e2a Add header file for KMS.
Signed-off-by: lzeng14
Reviewed-by: lgao4

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12025 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-19 06:31:58 +00:00
mdkinney 8b157410c1 Add ABS() macro (Absolute Value) to Base.h in MdePkg
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11818 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-13 20:25:36 +00:00
jljusten 818ff8c267 MdePkg: Use builtin offsetof function for GCC 4.0 and newer
GCC 4.0 and newer have a builtin function for implementing
'offsetof' therefore we make use of it for our OFFSET_OF
macro.

References:
http://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/Offsetof.html
http://gcc.gnu.org/onlinedocs/gcc-4.5.1/gcc/Offsetof.html

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10931 6f19259b-4bc3-4df7-8a09-765794883524
2010-10-13 07:08:06 +00:00
hhuan13 a58b9d96b4 Fixed K9 scan issues.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10781 6f19259b-4bc3-4df7-8a09-765794883524
2010-08-09 06:28:01 +00:00
geekboy15a 4e716b677a Made use of GCC built-in functions for variable arguments in procedures dependent on NO_BUILTIN_VA_FUNCS. This is because they do not function correctly in GCC 4.4 when using ms_abi in X64 images. This does not change functionality for other projects.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10440 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-29 01:01:44 +00:00
hhtian 9df063a06a Update the copyright notice format
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10403 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-23 15:46:20 +00:00
qhuang8 6c3fa13c91 Define VERIFY_SIZE_OF macro to verify size of basic UEFI Data types. This should be equivalent with previous implementation.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10283 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-19 00:25:47 +00:00
myronporter a89fa50ccf Clarify @pram b in Base.h. Accepted and edited in Qing Huang changes for @retval EFI_INVALID_PARAMETER lines. 171 & 321.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10248 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-15 17:28:58 +00:00
myronporter af2dc6a70b Grammatical and disclaimer changes (does not follow internal C coding stds.)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10235 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-12 22:19:12 +00:00
geekboy15a 52aa9e136b Updating processor bindings to not use stdint.h. Also added code to verify at compile time that data widths are correct.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10232 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-11 20:52:54 +00:00
mdkinney ab00035d0a GLOBAL_REMOVE_IF_UNREFERENCED must be defined to nothing for EBC
This corrects a bug introduced on August 18, 2009 when ARM support was added


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9342 6f19259b-4bc3-4df7-8a09-765794883524
2009-10-16 00:29:28 +00:00
qhuang8 6f906c3944 Change RETURN_STATUS type to UINTN, thus EFI_STATUS is defined as UINTN to align with recent UEFI 2.3 spec update.
Impaction:
There should be no impact unless code has been written that tests a constant or variable of type EFI_STATUS to be less than 0, or tested it against a negative value. This most likely have not been done.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9324 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-30 06:12:54 +00:00
eric_tian fbf926add9 sync comments on data structure to follow latest UEFI spec.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9309 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-24 08:56:33 +00:00
mdkinney 8992ce066e Fix file headers and a few comments
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9188 6f19259b-4bc3-4df7-8a09-765794883524
2009-08-24 23:37:52 +00:00
mdkinney dda3a6cecc Add ARM VA_LIST related definitions
Move content from CPU specific ProcessorBind.h files into Base.h if the content is the same for all supported CPU architectures.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9096 6f19259b-4bc3-4df7-8a09-765794883524
2009-08-18 20:46:21 +00:00
mdkinney 2229029afc Update BASE_ARG() macro to pass static analysis tools. This change should not cause any changes in behavior
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8707 6f19259b-4bc3-4df7-8a09-765794883524
2009-07-01 18:05:03 +00:00
vanjeff f754f721bf update codes per MdePkg doxgen review comments.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8526 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-11 01:46:51 +00:00
mdkinney 68167fed0e Fix build breaks from comment clean up checkin
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8468 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-04 18:57:44 +00:00
pkandel 1a2f870c9b Second set of changes based on a review of the code comments in the Include 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-06-04 16:16:15 +00:00
mdkinney 2075236eef This checkin addresses the compatibility issue of passing arguments of type VA_LIST between components. The type VA_LIST is mapped onto the compiler specific implementation of varargs. As a result, modules build with different compilers may not use the same VA_LIST structure. The solution to this issue is to define a new type called BASE_LIST that is a compiler independent method of passing varargs between modules.
Add BASE_LIST type to Base.h
Add BAS_ARG() macro to Base.h
Add 4 functions to PrintLib.h that use BASE_LIST.
Change ReportStatsuCodeExtractDebugInfo() from ReportStatusCodeLib.h to take a BASE_LIST argument instead of a VA_LIST argument
Add the 4 new functions to BasePrintLib implementation that use BASE_LIST
Update BaseReportStatusCodeLib implementation of ReportStatsuCodeExtractDebugInfo() to use a BASE_LIST argument instead of a VA_LIST argument



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8404 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-30 23:45:50 +00:00
mdkinney 6ed623e403 Update GCC version of VAR_ARG () to be compatible with non GCC version of VAR_ARG () so it handles TYPE parameters that are smaller than UINTN properly when GCC builtins are used for vararg parsing.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8282 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-10 19:44:21 +00:00
mdkinney 0dcec41170 Clean up comment
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8268 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-08 22:07:42 +00:00
eric_tian 130a2eecc4 The GCC compiler’s behavior is different than the Microsoft compilers for statically linked vararg functions. The GCC compilers do provide __builtin_ functions for accessing varargs. we should use these intrinsic functions with GCC
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8260 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-08 02:27:46 +00:00
mdkinney 262ffea8ec Update macros to make sure all RETURN_STATUS constants are defined to be of type RETURN_STATUS.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7526 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-14 02:14:37 +00:00
mdkinney 2e121e9aaa Add #defines for commonly used Base Address and Sizes.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7497 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-10 19:31:53 +00:00
qhuang8 407310479c detab
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7089 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-22 12:50:45 +00:00
gikidy 727501bb17 Fix Some typo.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7041 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-16 07:01:01 +00:00
qhuang8 80619162e3 Fix typos.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7035 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-15 15:52:14 +00:00
klu2 f7e994abcc Fix a type for undeclared word
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6918 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-08 07:38:56 +00:00
lgao4 c3d4e543f0 Correct the unknown character and update ChangeLog.txt
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6911 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-08 01:42:01 +00:00
mdkinney f4ec40abd6 Add more detailed comments for many of the Base Types
Remove all declarations of UINT8_MAX.  Use BIT8-1 instead.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6909 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-07 23:10:08 +00:00
mdkinney 22ce9dc5b9 Change _CR() to BASE_CR() to follow naming convention
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6886 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-06 01:19:56 +00:00
gikidy 62991af27f Make comments match the Spec.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6876 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-05 09:50:02 +00:00
gikidy 4d24730c55 Modified the #defines for BIT32..BIT63 to match the Spec.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6865 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-05 07:43:51 +00:00
gikidy 3963c4bf44 Add comments for the MACRO follow the Spec, and change some definition not match the Spec.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6852 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-05 02:28:51 +00:00
qhuang8 ee6c452c81 Detab
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6638 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-19 15:14:25 +00:00
vanjeff a7cc3d261c add function header for SIGNATURE_XX, according to MDE Spec, 0.61e-7
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6428 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-07 09:05:44 +00:00
vanjeff 13c310654c added EFI_SIGNATURE_XX in Base.h, and updated the industry header files to use them.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6252 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-27 06:59:25 +00:00
vanjeff 67e66cd55c ECC Clean up.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6206 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-24 04:30:32 +00:00