|
1 | | -/*++ |
| 1 | +#pragma once |
2 | 2 |
|
3 | | -Module Name: |
| 3 | +#define WPP_CONTROL_GUIDS WPP_DEFINE_CONTROL_GUID(DVserverKMDGuid, (DB7C7BAE, 6D56, 4DF0, 8807, 48F2FB30E3D1), \ |
| 4 | + WPP_DEFINE_BIT(verbose) \ |
| 5 | + WPP_DEFINE_BIT(information) \ |
| 6 | + WPP_DEFINE_BIT(error) \ |
| 7 | + WPP_DEFINE_BIT(ftrace) \ |
| 8 | + WPP_DEFINE_BIT(warning)) |
4 | 9 |
|
5 | | - Trace.h |
6 | | -
|
7 | | -Abstract: |
8 | | -
|
9 | | - Header file for the debug tracing related function defintions and macros. |
10 | | -
|
11 | | -Environment: |
12 | | -
|
13 | | - Kernel mode |
14 | | -
|
15 | | ---*/ |
16 | | - |
17 | | -// |
18 | | -// Define the tracing flags. |
19 | | -// |
20 | | -// Tracing GUID - a2893be8-687f-4adc-9b03-46e5114d0a1e |
21 | | -// |
22 | | - |
23 | | -#define WPP_CONTROL_GUIDS \ |
24 | | - WPP_DEFINE_CONTROL_GUID( \ |
25 | | - DVServerKMDTraceGuid, (a2893be8,687f,4adc,9b03,46e5114d0a1e), \ |
26 | | - \ |
27 | | - WPP_DEFINE_BIT(MYDRIVER_ALL_INFO) \ |
28 | | - WPP_DEFINE_BIT(TRACE_DRIVER) \ |
29 | | - WPP_DEFINE_BIT(TRACE_DEVICE) \ |
30 | | - WPP_DEFINE_BIT(TRACE_QUEUE) \ |
31 | | - ) |
32 | | - |
33 | | -#define WPP_FLAG_LEVEL_LOGGER(flag, level) \ |
| 10 | +#define WPP_FLAG_LEVEL_LOGGER(flag, level) \ |
34 | 11 | WPP_LEVEL_LOGGER(flag) |
35 | 12 |
|
36 | | -#define WPP_FLAG_LEVEL_ENABLED(flag, level) \ |
37 | | - (WPP_LEVEL_ENABLED(flag) && \ |
| 13 | +#define WPP_FLAG_LEVEL_ENABLED(flag, level) \ |
| 14 | + (WPP_LEVEL_ENABLED(flag) && \ |
38 | 15 | WPP_CONTROL(WPP_BIT_ ## flag).Level >= level) |
39 | 16 |
|
40 | | -#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags) \ |
| 17 | +#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags) \ |
41 | 18 | WPP_LEVEL_LOGGER(flags) |
42 | | - |
43 | | -#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags) \ |
| 19 | + |
| 20 | +#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags) \ |
44 | 21 | (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ## flags).Level >= lvl) |
45 | 22 |
|
46 | | -// |
47 | | -// WPP orders static parameters before dynamic parameters. To support the Trace function |
48 | | -// defined below which sets FLAGS=MYDRIVER_ALL_INFO, a custom macro must be defined to |
49 | | -// reorder the arguments to what the .tpl configuration file expects. |
50 | | -// |
51 | | -#define WPP_RECORDER_FLAGS_LEVEL_ARGS(flags, lvl) WPP_RECORDER_LEVEL_FLAGS_ARGS(lvl, flags) |
52 | | -#define WPP_RECORDER_FLAGS_LEVEL_FILTER(flags, lvl) WPP_RECORDER_LEVEL_FLAGS_FILTER(lvl, flags) |
| 23 | + |
| 24 | +class tracer { |
| 25 | +private: |
| 26 | + char* m_func_name; |
| 27 | +public: |
| 28 | + tracer(const char* func_name); |
| 29 | + ~tracer(); |
| 30 | +}; |
| 31 | +#define TRACING() tracer trace(__FUNCTION__) |
53 | 32 |
|
54 | 33 | // |
55 | 34 | // This comment block is scanned by the trace preprocessor to define our |
56 | 35 | // Trace function. |
57 | 36 | // |
58 | 37 | // begin_wpp config |
59 | | -// FUNC Trace{FLAGS=MYDRIVER_ALL_INFO}(LEVEL, MSG, ...); |
60 | | -// FUNC TraceEvents(LEVEL, FLAGS, MSG, ...); |
| 38 | +// FUNC ERR{LEVEL=TRACE_LEVEL_ERROR,FLAGS=error}(MSG,...); |
| 39 | +// FUNC WARN{LEVEL=TRACE_LEVEL_WARNING,FLAGS=warning}(MSG,...); |
| 40 | +// FUNC WARNING{LEVEL=TRACE_LEVEL_WARNING,FLAGS=warning}(MSG,...); |
| 41 | +// FUNC INFO{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=information}(MSG,...); |
| 42 | +// FUNC DBGPRINT{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=verbose}(MSG,...); |
| 43 | +// FUNC FuncTrace{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=ftrace}(MSG, ...); |
| 44 | +// USEPREFIX(ERR, "%!STDPREFIX! [%!FUNC!:%!LINE!] [ERR] \t"); |
| 45 | +// USEPREFIX(WARN, "%!STDPREFIX! [%!FUNC!:%!LINE!] [WARN] \t"); |
| 46 | +// USEPREFIX(WARNING, "%!STDPREFIX! [%!FUNC!:%!LINE!] [WARN] \t"); |
| 47 | +// USEPREFIX(DBGPRINT, "%!STDPREFIX! [%!FUNC!:%!LINE!] [DBG] \t"); |
| 48 | +// USEPREFIX(INFO, "%!STDPREFIX! [%!FUNC!:%!LINE!] [INFO] \t"); |
61 | 49 | // end_wpp |
62 | | -// |
| 50 | + |
0 commit comments