]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Library/DebugLib.h
MdePkg/ProcessorBind: add defines for page allocation granularity
[mirror_edk2.git] / MdePkg / Include / Library / DebugLib.h
index b38a84724c95f12e80b6291155b0f32fa510ea1f..3a910e6a208b71d57786fa2685aa49d641044cec 100644 (file)
@@ -8,7 +8,7 @@
   of size reduction when compiler optimization is disabled. If MDEPKG_NDEBUG is\r
   defined, then debug and assert related macros wrapped by it are the NULL implementations.\r
 \r
-Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials are licensed and made available under \r
 the terms and conditions of the BSD License that accompanies this distribution.  \r
 The full text of the license may be found at\r
@@ -39,20 +39,21 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #define DEBUG_WARN      0x00000002  // Warnings\r
 #define DEBUG_LOAD      0x00000004  // Load events\r
 #define DEBUG_FS        0x00000008  // EFI File system\r
-#define DEBUG_POOL      0x00000010  // Alloc & Free's\r
-#define DEBUG_PAGE      0x00000020  // Alloc & Free's\r
+#define DEBUG_POOL      0x00000010  // Alloc & Free (pool)\r
+#define DEBUG_PAGE      0x00000020  // Alloc & Free (page)\r
 #define DEBUG_INFO      0x00000040  // Informational debug messages\r
 #define DEBUG_DISPATCH  0x00000080  // PEI/DXE/SMM Dispatchers\r
 #define DEBUG_VARIABLE  0x00000100  // Variable\r
 #define DEBUG_BM        0x00000400  // Boot Manager\r
 #define DEBUG_BLKIO     0x00001000  // BlkIo Driver\r
-#define DEBUG_NET       0x00004000  // SNI Driver\r
+#define DEBUG_NET       0x00004000  // Network Io Driver\r
 #define DEBUG_UNDI      0x00010000  // UNDI Driver\r
-#define DEBUG_LOADFILE  0x00020000  // UNDI Driver\r
+#define DEBUG_LOADFILE  0x00020000  // LoadFile\r
 #define DEBUG_EVENT     0x00080000  // Event messages\r
 #define DEBUG_GCD       0x00100000  // Global Coherency Database changes\r
 #define DEBUG_CACHE     0x00200000  // Memory range cachability changes\r
-#define DEBUG_VERBOSE   0x00400000  // Detailed debug messages that may significantly impact boot performance\r
+#define DEBUG_VERBOSE   0x00400000  // Detailed debug messages that may\r
+                                    // significantly impact boot performance\r
 #define DEBUG_ERROR     0x80000000  // Error\r
 \r
 //\r
@@ -252,7 +253,7 @@ DebugPrintLevelEnabled (
 \r
   This macro calls DebugPrint() passing in the debug error level, a format \r
   string, and a variable argument list.\r
-  __VA_ARGS__ is not supported by ECB compiler, Microsoft Visual Studio .NET 2003\r
+  __VA_ARGS__ is not supported by EBC compiler, Microsoft Visual Studio .NET 2003\r
   and Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830.\r
 \r
   @param  Expression  Expression containing an error level, a format string, \r
@@ -290,6 +291,7 @@ DebugPrintLevelEnabled (
       if (DebugAssertEnabled ()) {  \\r
         if (!(Expression)) {        \\r
           _ASSERT (Expression);     \\r
+          ANALYZER_UNREACHABLE ();  \\r
         }                           \\r
       }                             \\r
     } while (FALSE)\r
@@ -346,6 +348,33 @@ DebugPrintLevelEnabled (
   #define ASSERT_EFI_ERROR(StatusParameter)\r
 #endif\r
 \r
+/**\r
+  Macro that calls DebugAssert() if a RETURN_STATUS evaluates to an error code.\r
+\r
+  If MDEPKG_NDEBUG is not defined and the DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED\r
+  bit of PcdDebugProperyMask is set, then this macro evaluates the\r
+  RETURN_STATUS value specified by StatusParameter.  If StatusParameter is an\r
+  error code, then DebugAssert() is called passing in the source filename,\r
+  source line number, and StatusParameter.\r
+\r
+  @param  StatusParameter  RETURN_STATUS value to evaluate.\r
+\r
+**/\r
+#if !defined(MDEPKG_NDEBUG)\r
+  #define ASSERT_RETURN_ERROR(StatusParameter)                          \\r
+    do {                                                                \\r
+      if (DebugAssertEnabled ()) {                                      \\r
+        if (RETURN_ERROR (StatusParameter)) {                           \\r
+          DEBUG ((DEBUG_ERROR, "\nASSERT_RETURN_ERROR (Status = %r)\n", \\r
+            StatusParameter));                                          \\r
+          _ASSERT (!RETURN_ERROR (StatusParameter));                    \\r
+        }                                                               \\r
+      }                                                                 \\r
+    } while (FALSE)\r
+#else\r
+  #define ASSERT_RETURN_ERROR(StatusParameter)\r
+#endif\r
+\r
 /**  \r
   Macro that calls DebugAssert() if a protocol is already installed in the \r
   handle database.\r