#if DBG\r
\r
// assignment of _level_ is need to to overcome warning C4127\r
+\r
+//\r
+// Code in DBG, has no impact on fre performance\r
+// Hence the 6326 warning suppression\r
+//\r
+\r
#define AL_PRINT( _level_,_flag_,_msg_) \\r
{ \\r
+ __pragma(warning(suppress:6326)) \\r
if( g_al_dbg_level >= (_level_) ) \\r
CL_TRACE( _flag_, g_al_dbg_flags, _msg_ ); \\r
}\r
\r
#define AL_PRINT_EXIT( _level_,_flag_,_msg_) \\r
{ \\r
+ __pragma(warning(suppress:6326)) \\r
if( g_al_dbg_level >= (_level_) ) \\r
CL_TRACE( _flag_, g_al_dbg_flags, _msg_ );\\r
AL_EXIT( _flag_ );\\r
\r
#define AL_ENTER( _flag_) \\r
{ \\r
+ __pragma(warning(suppress:6326)) \\r
if( g_al_dbg_level >= TRACE_LEVEL_VERBOSE ) \\r
CL_ENTER( _flag_, g_al_dbg_flags ); \\r
}\r
\r
#define AL_EXIT( _flag_)\\r
{ \\r
+ __pragma(warning(suppress:6326)) \\r
if( g_al_dbg_level >= TRACE_LEVEL_VERBOSE ) \\r
CL_EXIT( _flag_, g_al_dbg_flags ); \\r
}\r
#define HCA_PRINT_TO_EVENT_LOG(_obj_,_level_,_flag_,_msg_) \\r
{ \\r
NTSTATUS event_id; \\r
+ __pragma(warning(suppress:6326)) \\r
switch (_level_) { \\r
case TRACE_LEVEL_FATAL: case TRACE_LEVEL_ERROR: event_id = EVENT_MTHCA_ANY_ERROR; break; \\r
case TRACE_LEVEL_WARNING: event_id = EVENT_MTHCA_ANY_WARN; break; \\r
* Debug Output, Debug Levels, CL_PRINT, CL_ENTER, CL_EXIT, CL_TRACE_EXIT\r
*********/\r
#define CL_TRACE( DBG_LVL, CHK_LVL, STRING ) \\r
+__pragma(warning(suppress:6326)) \\r
do{ \\r
switch( DBG_LVL & CL_DBG_ERROR ) \\r
{ \\r
* Debug Output, Debug Levels, CL_PRINT, CL_ENTER, CL_EXIT, CL_TRACE\r
*********/\r
#define CL_TRACE_EXIT( DBG_LVL, CHK_LVL, STRING ) \\r
+ __pragma(warning(suppress:6326)) \\r
do{ \\r
CL_TRACE( DBG_LVL, CHK_LVL, STRING ); \\r
CL_EXIT( DBG_LVL, CHK_LVL ); \\r
typedef _W64 unsigned __int3264 uintn_t;\r
typedef volatile __int32 atomic32_t;\r
\r
+#ifdef _PREFAST_\r
+#define CONDITION_ASSUMED(X) __analysis_assume((X))\r
+#else\r
+#define CONDITION_ASSUMED(X) \r
+#endif // _PREFAST_\r
+\r
\r
#ifndef CL_ASSERT\r
+#ifdef _DEBUG_\r
+#define CL_ASSERT(X) ASSERT(X);CONDITION_ASSUMED(X)\r
+#else\r
#define CL_ASSERT ASSERT\r
#endif\r
+#endif\r
\r
\r
#define UNUSED_PARAM UNREFERENCED_PARAMETER\r
/* boolean_t must be intergral sized to avoid a bunch of warnings. */\r
typedef int boolean_t;\r
\r
+#ifdef _PREFAST_\r
+#define CONDITION_ASSUMED(X) __analysis_assume((X))\r
+#else\r
+#define CONDITION_ASSUMED(X) \r
+#endif // _PREFAST_\r
\r
#ifndef CL_ASSERT\r
#ifdef _DEBUG_\r
-#define CL_ASSERT( exp ) (void)(!(exp)?OutputDebugString("Assertion Failed:" #exp "\n"),DebugBreak(),FALSE:TRUE)\r
+#define CL_ASSERT( exp ) (void)(!(exp)?OutputDebugString("Assertion Failed:" #exp "\n"),DebugBreak(),FALSE:TRUE);CONDITION_ASSUMED(exp)\r
#else\r
#define CL_ASSERT( exp )\r
#endif /* _DEBUG_ */\r
// assignment of _level_ is need to to overcome warning C4127\r
#define IPOIB_PRINT(_level_,_flag_,_msg_) \\r
{ \\r
+ __pragma(warning(suppress:6326)) \\r
if( g_ipoib_dbg_level >= (_level_) ) \\r
CL_TRACE( _flag_, g_ipoib_dbg_flags, _msg_ ); \\r
}\r
\r
#define IPOIB_PRINT_EXIT(_level_,_flag_,_msg_) \\r
{ \\r
+ __pragma(warning(suppress:6326)) \\r
if( g_ipoib_dbg_level >= (_level_) ) \\r
CL_TRACE( _flag_, g_ipoib_dbg_flags, _msg_ );\\r
IPOIB_EXIT(_flag_);\\r
\r
#define IPOIB_ENTER(_flag_) \\r
{ \\r
+ __pragma(warning(suppress:6326)) \\r
if( g_ipoib_dbg_level >= TRACE_LEVEL_VERBOSE ) \\r
CL_ENTER( _flag_, g_ipoib_dbg_flags ); \\r
}\r
\r
#define IPOIB_EXIT(_flag_)\\r
{ \\r
+ __pragma(warning(suppress:6326)) \\r
if( g_ipoib_dbg_level >= TRACE_LEVEL_VERBOSE ) \\r
CL_EXIT( _flag_, g_ipoib_dbg_flags ); \\r
}\r
\r
#define IPOIB_TRACE_BYTES( lvl, ptr, len ) \\r
{ \\r
+ __pragma(warning(suppress:6326)) \\r
if( g_ipoib_dbg_level >= (_level_) && \\r
(g_ipoib_dbg_flags & (_flag_)) ) \\r
{ \\r