#endif\r
#include <ntstrsafe.h>\r
\r
+extern uint32_t g_iou_dbg_level;\r
+extern uint32_t g_iou_dbg_flags;\r
+\r
+#if defined(EVENT_TRACING)\r
+//\r
+// Software Tracing Definitions \r
+//\r
+\r
+#define WPP_CONTROL_GUIDS \\r
+ WPP_DEFINE_CONTROL_GUID(IOUCtlGuid,(A0090FEF,01BB,4617,AF1E,FD02FD5B24ED), \\r
+ WPP_DEFINE_BIT( IOU_DBG_ERROR) \\r
+ WPP_DEFINE_BIT( IOU_DBG_DRV) \\r
+ WPP_DEFINE_BIT( IOU_DBG_PNP) \\r
+ WPP_DEFINE_BIT( IOU_DBG_POWER) \\r
+ WPP_DEFINE_BIT( IOU_DBG_PORT) \\r
+ WPP_DEFINE_BIT( IOU_DBG_IOU))\r
+\r
+\r
+\r
+#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags) (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ## flags).Level >= lvl)\r
+#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags) WPP_LEVEL_LOGGER(flags)\r
+#define WPP_FLAG_ENABLED(flags)(WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ## flags).Level >= TRACE_LEVEL_VERBOSE)\r
+#define WPP_FLAG_LOGGER(flags) WPP_LEVEL_LOGGER(flags)\r
+\r
+\r
+// begin_wpp config\r
+// IOU_ENTER(FLAG);\r
+// IOU_EXIT(FLAG);\r
+// USEPREFIX(IOU_PRINT, "%!STDPREFIX! [IOU] :%!FUNC!() :");\r
+// USESUFFIX(IOU_ENTER, " [IOU] :%!FUNC!():[");\r
+// USESUFFIX(IOU_EXIT, " [IOU] :%!FUNC!():]");\r
+// end_wpp\r
+\r
+\r
+#else\r
+\r
+\r
+#include <evntrace.h>\r
\r
/*\r
- * Main header for IB Bus driver.\r
+ * Debug macros\r
*/\r
\r
-#define IOU_ENTER( lvl ) \\r
- CL_ENTER( lvl, iou_globals.dbg_lvl )\r
\r
-#define IOU_EXIT( lvl ) \\r
- CL_EXIT( lvl, iou_globals.dbg_lvl )\r
+#define IOU_DBG_ERR (1 << 0)\r
+#define IOU_DBG_DRV (1 << 1)\r
+#define IOU_DBG_PNP (1 << 2)\r
+#define IOU_DBG_POWER (1 << 3)\r
+#define IOU_DBG_PORT (1 << 4)\r
+#define IOU_DBG_IOU (1 << 5)\r
+\r
+#define IOU_DBG_ERROR (CL_DBG_ERROR | IOU_DBG_ERR)\r
+#define IOU_DBG_ALL CL_DBG_ALL\r
+\r
+#if DBG\r
+\r
+// assignment of _level_ is need to to overcome warning C4127\r
+#define IOU_PRINT(_level_,_flag_,_msg_) \\r
+ { \\r
+ if( g_iou_dbg_level >= (_level_) ) \\r
+ CL_TRACE( _flag_, g_iou_dbg_flags, _msg_ ); \\r
+ }\r
+\r
+#define IOU_PRINT_EXIT(_level_,_flag_,_msg_) \\r
+ { \\r
+ if( g_iou_dbg_level >= (_level_) ) \\r
+ CL_TRACE( _flag_, g_iou_dbg_flags, _msg_ );\\r
+ IOU_EXIT(_flag_);\\r
+ }\r
\r
-#define IOU_TRACE( lvl, msg ) \\r
- CL_TRACE( lvl, iou_globals.dbg_lvl, msg )\r
+#define IOU_ENTER(_flag_) \\r
+ { \\r
+ if( g_iou_dbg_level >= TRACE_LEVEL_VERBOSE ) \\r
+ CL_ENTER( _flag_, g_iou_dbg_flags ); \\r
+ }\r
\r
-#define IOU_TRACE_EXIT( lvl, msg ) \\r
- CL_TRACE_EXIT( lvl, iou_globals.dbg_lvl, msg )\r
+#define IOU_EXIT(_flag_)\\r
+ { \\r
+ if( g_iou_dbg_level >= TRACE_LEVEL_VERBOSE ) \\r
+ CL_EXIT( _flag_, g_iou_dbg_flags ); \\r
+ }\r
+\r
+\r
+#else\r
+\r
+#define IOU_PRINT(lvl, flags, msg)\r
+\r
+#define IOU_PRINT_EXIT(_level_,_flag_,_msg_)\r
+\r
+#define IOU_ENTER(_flag_)\r
+\r
+#define IOU_EXIT(_flag_)\r
+\r
+\r
+#endif\r
+\r
+\r
+#endif //EVENT_TRACING\r
+\r
+/*\r
+ * Main header for IB Bus driver.\r
+ */\r
\r
-#define IOU_PRINT( lvl, msg ) \\r
- CL_PRINT( lvl, iou_globals.dbl_lvl, msg )\r
\r
-#define IOU_DBG_ERROR CL_DBG_ERROR\r
-#define IOU_DBG_DRV (1 << 0)\r
-#define IOU_DBG_PNP (1 << 1)\r
-#define IOU_DBG_POWER (1 << 2)\r
-#define IOU_DBG_PORT (1 << 3)\r
-#define IOU_DBG_IOU (1 << 4)\r
\r
/*\r
* ALLOC_PRAGMA sections:\r
*/\r
typedef struct _iou_globals\r
{\r
- /* Debug level. */\r
- uint32_t dbg_lvl;\r
-\r
/* Driver object. Used for creating child devices. */\r
DRIVER_OBJECT *p_driver_obj;\r
\r