#ifndef _HCA_DEBUG_H_\r
#define _HCA_DEBUG_H_\r
\r
+#include <ntstrsafe.h>\r
\r
extern uint32_t g_mthca_dbg_level;\r
extern uint32_t g_mthca_dbg_flags;\r
\r
static void _build_str( const char * format, ... )\r
{\r
+ NTSTATUS status;\r
va_list p_arg;\r
va_start(p_arg, format);\r
- vsprintf((char *)g_slog_buf , format , p_arg);\r
- swprintf(g_wlog_buf, L"%S", g_slog_buf);\r
+ status = RtlStringCbVPrintfA((char *)g_slog_buf, sizeof(g_slog_buf), format , p_arg);\r
+ if (status)\r
+ goto end;\r
+\r
+ status = RtlStringCchPrintfW(g_wlog_buf, sizeof(g_wlog_buf)/sizeof(g_wlog_buf[0]), L"%S", g_slog_buf);\r
+ if (status)\r
+ goto end;\r
+\r
+end:\r
va_end(p_arg);\r
}\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
}\r
\r
#define HCA_PRINT_EV_MDEV(_level_,_flag_,_msg_) \\r
- HCA_PRINT_TO_EVENT_LOG(mdev->ext->cl_ext.p_self_do,_level_,_flag_,_msg_)\r
+{\\r
+ if(mdev) {\\r
+ HCA_PRINT_TO_EVENT_LOG(mdev->ext->cl_ext.p_self_do,_level_,_flag_,_msg_)\\r
+ }\\r
+}\\r
\r
\r
#if defined(EVENT_TRACING)\r
int __lvl = _level_; \\r
if (g_mthca_dbg_level >= (_level_) && \\r
(g_mthca_dbg_flags & (_flag_))) { \\r
- DbgPrint ("~%d:[MTHCA] %s() :", KeGetCurrentProcessorNumber(), __FUNCTION__); \\r
- if(__lvl == TRACE_LEVEL_ERROR) DbgPrint ("***ERROR*** "); \\r
- DbgPrint _msg_; \\r
+ cl_dbg_out ("~%d:[MTHCA] %s() :", KeGetCurrentProcessorNumber(), __FUNCTION__); \\r
+ if(__lvl == TRACE_LEVEL_ERROR) cl_dbg_out ("***ERROR*** "); \\r
+ cl_dbg_out _msg_; \\r
} \\r
}\r
\r