summaryrefslogtreecommitdiff
path: root/MdePkg/Include/Library
diff options
context:
space:
mode:
authorLiming Gao <liming.gao@intel.com>2015-02-06 06:33:29 +0000
committerlgao4 <lgao4@Edk2>2015-02-06 06:33:29 +0000
commit5ea9d0c352ffd7412f60ff7eea30b202ce97956f (patch)
tree307d2b470b7edb9179eb4c1a2b3d8cd340a26abd /MdePkg/Include/Library
parent30aba8d3345455b27f3a16ba4f82bff510c747e4 (diff)
downloadedk2-platforms-5ea9d0c352ffd7412f60ff7eea30b202ce97956f.tar.xz
MdePkg: Add new API DebugPrintLevelEnabled() in DebugLib
This API is applied in _DEBUG_PRINT() macro for build time size optimization. DebugLib library instance should implement this API to return the constant value. DEBUG_PRINT() will base on __VA_ARGS__ for build time size optimization. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16787 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg/Include/Library')
-rw-r--r--MdePkg/Include/Library/DebugLib.h28
1 files changed, 26 insertions, 2 deletions
diff --git a/MdePkg/Include/Library/DebugLib.h b/MdePkg/Include/Library/DebugLib.h
index f969ce2317..402bebe7d3 100644
--- a/MdePkg/Include/Library/DebugLib.h
+++ b/MdePkg/Include/Library/DebugLib.h
@@ -8,7 +8,7 @@
of size reduction when compiler optimization is disabled. If MDEPKG_NDEBUG is
defined, then debug and assert related macros wrapped by it are the NULL implementations.
-Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
The full text of the license may be found at
@@ -220,6 +220,20 @@ DebugClearMemoryEnabled (
VOID
);
+/**
+ Returns TRUE if any one of the bit is set both in ErrorLevel and PcdFixedDebugPrintErrorLevel.
+
+ This function compares the bit mask of ErrorLevel and PcdFixedDebugPrintErrorLevel.
+
+ @retval TRUE Current ErrorLevel is supported.
+ @retval FALSE Current ErrorLevel is not supported.
+
+**/
+BOOLEAN
+EFIAPI
+DebugPrintLevelEnabled (
+ IN CONST UINTN ErrorLevel
+ );
/**
Internal worker macro that calls DebugAssert().
@@ -243,8 +257,18 @@ DebugClearMemoryEnabled (
and a variable argument list based on the format string.
**/
-#define _DEBUG(Expression) DebugPrint Expression
+#if !defined(MDE_CPU_EBC)
+ #define _DEBUG_PRINT(PrintLevel, ...) \
+ do { \
+ if (DebugPrintLevelEnabled (PrintLevel)) { \
+ DebugPrint (PrintLevel, ##__VA_ARGS__); \
+ } \
+ } while (FALSE)
+ #define _DEBUG(Expression) _DEBUG_PRINT Expression
+#else
+#define _DEBUG(Expression) DebugPrint Expression
+#endif
/**
Macro that calls DebugAssert() if an expression evaluates to FALSE.